UNPKG

gaf-mobile

Version:

GAF mobile Web site

72 lines (59 loc) 1.9 kB
'use strict'; /** * This file contains a so-called 'page object' that is used * by Protractor to run end-to-end tests against profile page. * It's just a way to keep code clean and readable: we could do * all this directly in our spec files but it would easily * become a mess. */ /* global protractor */ function Facebook() { var request = require('request'); var response; function handleResponse(error, message, defer) { if (error || message.statusCode >= 400) { // Some strange bug where reject is throwing an error // will fulfill the promise for now response = JSON.parse(message.body); defer.fulfill(response); } else { response = JSON.parse(message.body); defer.fulfill(response); } } function get(url) { var defer = protractor.promise.defer(); request.get(url, function(error, message) { handleResponse(error, message, defer); }); return defer.promise; } function del(url, params) { var defer = protractor.promise.defer(); request.del({ url: url, form: params }, function(error, message) { handleResponse(error, message, defer); }); return defer.promise; } function createNewFacebookAccount() { return get('https://graph.facebook.com/120131118061981/accounts/' + 'test-users?installed=true&name=mobile2etest&permissions=read_stream' + '&method=post&access_token=120131118061981|' + 'K9wFGJCkZ7xu2LQkUkNx2JuQ7bo'); } function deleteFacebookAccount() { return del('https://graph.facebook.com/' + response.id, {access_token : response.access_token}); } var flow = protractor.promise.controlFlow(); this.getNewUser = function() { return flow.execute(createNewFacebookAccount); }; this.deleteFbUser = function() { return flow.execute(deleteFacebookAccount); }; } module.exports = Facebook;