Example #1
0
exports.test2 = function(callback)
{
api_easy.describe('mognoose-resource test2')
    .use('localhost',80)
    .discuss('when using the api')
    .path('/api/')
    .discuss(' , the user resource')
    .path('/users/')
    .discuss(' and index request')
    .get()
    .expect(200,{meta:{offset:0,limit:20,total_count:1},objects:[{username:"******",credits:34}]})
    .undiscuss()
    .unpath()    // /users/
    .undiscuss() // user resource
    .unpath()    // api
    .undiscuss()  // using the api
    .run(callback);
};
Example #2
0
exports.test3 = function(callback)
{
    api_easy.describe('mognoose-resource validation')
        .use('localhost',80)
        .discuss('when using the api again')
        .path('/api/')
        .discuss(' , the user resource')
        .path('/users/')
        .discuss(' and post without permissions')
        .post('',{username:"******",password:"******",credits:-2})
        .expect(400,{credits:'must be equal or greater than 1'})
        .undiscuss() // adding a user
        .unpath()    // /users/
        .undiscuss() // user resource
        .unpath()    // api
        .undiscuss()  // using the api
        .run(callback);
};
Example #3
0
 suite: function(description) {
   var suite = APIeasy.describe(description);
   var port = this.PORT;
   
   suite.url = function(path) {
     return 'http://localhost:' + port + path;
   };
   suite.expectRedirectTo = function(path) {
     var url = this.url(path);
     return this.expect(303)
       .expect('redirects to ' + path, function(err, res) {
         assert.equal(res.headers['location'], url);
       });
   };
   suite._requestFormData = function(method, data) {
     data = data || {};
     if (!('_csrf' in data))
       data._csrf = module.exports.FAKE_UID;
     this.setHeader('Content-Type', 'application/x-www-form-urlencoded')
       [method](data);
     return this;
   };
   suite.delFormData = function(data) {
     return this._requestFormData('del', data);
   };
   suite.postFormData = function(data) {
     return this._requestFormData('post', data);
   };
   suite.postBackpackAuthentication = function(options) {
     options = options || {};
     var csrf = options.csrf || module.exports.FAKE_UID;
     var assertion = options.assertion || module.exports.FAKE_ASSERTION;
     return this.path('/backpack/authenticate')
                .postFormData({'_csrf': csrf, 'assertion': assertion});
   };
   suite.login = function() {
     return this.postBackpackAuthentication()
       .expect('sets a session cookie', function(err, res, body) {
         assert.ok('set-cookie' in res.headers);
       }).next().unpath();
   };
   suite.use('localhost', port).followRedirect(false);
   return suite;
 }
Example #4
0
exports.test1 = function(callback)
{
    var t = api_easy.describe('mognoose-resource test1')
        .use('localhost',80)
        .discuss('when using the api')
        .path('/api/')
        .discuss(' , the user resource')
        .path('/users/')
        .discuss(' and index request before any elements exists')
        .get().expect(200,{meta:{offset:0,limit:20,total_count:0},objects:[]})
        .undiscuss() // index request
        .discuss(' and post without permissions')
        .post('',{username:"******",password:"******",credits:34})
        .expect(201)
        .undiscuss() // adding a user
        .unpath()    // /users/
        .undiscuss() // user resource
        .unpath()    // api
        .undiscuss()  // using the api
        .run(callback);
};
Example #5
0
/*
*
* Copyright (C) 2011, The Locker Project
* All rights reserved.
*
* Please see the LICENSE file for more information.
*
*/

require.paths.push(__dirname + "/../Common/node");
var assert = require('assert');
var vows = require('vows');
var events = require('events');
var RESTeasy = require('api-easy');
var suite = RESTeasy.describe('Locker Search');
var lconfig = require('lconfig');
var lsearch = require('lsearch');
lconfig.load('Config/config.json');

lsearch.setEngine(lsearch.engines.CLucene);
lsearch.setIndexPath(__dirname + "/" + lconfig.me + "/search.index");

suite.next().suite.addBatch({
    "Can pick the CLucene engine":{
        topic:function() {
            try {
                var search = lsearch.setEngine(lsearch.engines.CLucene);
                return true;
            } catch(E) {
                return false;
            }
*
*/

var assert = require("assert");
var vows = require("vows");
var RESTeasy = require("api-easy");
var http = require("http");
var request = require('request');
var querystring = require("querystring");
var events = require("events");
var fs = require("fs");
var lconfig = require('../Common/node/lconfig.js');

lconfig.load('Config/config.json');

var tests = RESTeasy.describe("Locker core API");

tests.use(lconfig.lockerHost, lconfig.lockerPort)
    .discuss("Core can")
    .discuss("map existing services with")
        .path("/map")
        .get()
            .expect(200)
            .expect("has an available and installed attribute", function(err, res, body) {
                assert.isNull(err);
                var map = JSON.parse(body);
                assert.include(map, "available");
                assert.include(map, "installed");
                serviceMap = map;
            })
            // These tests don't scale as we develop more parts, test for actual known contents
 * restful-api-test.js: Tests for purely `restful` routes
 *
 * (C) 2012, Nodejitsu Inc.
 *
 */

var vows = require('vows'),
    assert = require('assert'),
    APIeasy = require('api-easy'),
    restful = require('../lib/restful'),
    resourceful = require('resourceful'),
    http = require('http'),
    fixtures = require('./fixtures'),
    macros = require('./macros');

var suite = APIeasy.describe('restful/restful-api-test');

macros.createServer(fixtures.Creature, { strict: true }).listen(8000);

suite.use('localhost', 8000)
  .setHeader('Content-Type', 'application/json')
  .followRedirect(false)
    .next()
      macros.resourceTest('Creature', { _id: null }, suite)
    .next()
      macros.resourceTest('Creature', { _id: 2 }, suite)
    .next()
      macros.resourceTest('Creature', { _id: "bob" }, suite)
    .next()

.export(module);
Example #8
0
var APIeasy = require('api-easy'),
	assert = require('assert'),
	sys = require("sys");

var testContext = {};
var initialDocument =  {"prop1":"asdasdsad","prop3":"88.1","prop2":"88"};
var updateDocumentData = {"prop1":"1111111"};
var updatedDocument = {"prop1":"1111111","prop3":"88.1","prop2":"88"};
var endpoint = "/test-db-crud-flex/test-collection";

var suite = APIeasy.describe('mongodb-rest post test');
suite.discuss('When using mongodb-rest API create/retrieve')
		.use('localhost', 3000)
		.setHeader('Content-Type', 'application/json')
		.post(endpoint, initialDocument)
			.expect(200)
			.expect('should respond with created document containing ID', function(err, res, body){
				var result = JSON.parse(body);
				assert.isObject(result.data);
				assert.isString(result.data._id);
				for(var i in initialDocument)
					assert.equal(initialDocument[i], result.data[i]);
				
				testContext.id = result.data._id;
				suite.before('getID', function(outgoing){
					outgoing.uri += "/"+result.data._id;
					return outgoing;
				});
			})
		.next()
		.get(endpoint)
Example #9
0
var APIeasy = require('api-easy'),
    assert = require('assert');

var suite = APIeasy.describe('localhost:3000/Team');

suite.discuss('When adding points to team')
    .use('localhost', 3000)
    .setHeader('Content-Type', 'application/json')
    .del("/Team").expect(200).next()
    .post("/Team", {_id: "teamID", achievements: [], totalPoints: 0})
        .expect(200).next()
    .get("/Team/teamID")
        .expect(200).next()
    .put("/Team/teamID/points", { points: 100 })
        .expect(200)
        .expect('should respond with points added to the team', function(req, res, body) {
            var response = JSON.parse(body);
            assert.equal(response.data.totalPoints, 100);
        }).next()
.export(module);
Example #10
0
var fakeweb = require(__dirname + '/fakeweb.js');
var photos = require('../Connectors/Flickr/photos');
var contacts = require('../Connectors/Flickr/contacts');
var assert = require("assert");
var RESTeasy = require('api-easy');
var vows = require("vows");
var suite = RESTeasy.describe("Flickr Synclet");
var fs = require('fs');
var curDir = process.cwd();

process.setMaxListeners(0);
process.on('uncaughtException',function(error){
    console.dir(error.stack);
});

var mePath = '/Data/flickr';

var pinfo = JSON.parse(fs.readFileSync(__dirname + mePath + '/me.json'));

suite.next().suite.addBatch({
    "Can get contacts" : {
        topic: function() {
            process.chdir(curDir + mePath);
            fakeweb.allowNetConnect = false;
            fakeweb.registerUri({
                uri : 'http://api.flickr.com:80/services/rest/?api_sig=6094c6b15bb5e02db2d76efe471b2480&api_key=sdf&auth_token=qwert&format=json&method=flickr.contacts.getList&nojsoncallback=1&page=1&per_page=10',
                file : __dirname + '/fixtures/flickr/contacts_1.json' });
            contacts.sync(pinfo, this.callback) },
        "successfully" : function(err, response) {
            assert.isNull(err);
            assert.equal(response.data.contact.length, 3);
var apiEasy = require('api-easy'),
    assert = require('assert');

var bigBlusterApi = apiEasy.describe('http://bigbluster.jit.su/api');

bigBlusterApi.discuss('When using the BigBluster API\'s find operation (GET)')
    .use('bigbluster.jit.su', 80)
    .get('/api/find?userName=grales@gmail.com')
    .expect('should follow the User contract', function (err, res, body) {
        var userObject = JSON.parse(body);
        assert.equal(userObject.userName, '*****@*****.**');
    })
    .export(module);
//@see http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs
var APIeasy = require('api-easy'),
    assert = require('assert');

//
// Create a APIeasy test suite for our API
//
var suite = APIeasy.describe('procrastinator');


// Create a tokenization function so we can use resource ids.
var replacements = new Object;
suite.before('replaceTokens', function (outgoing) {
    for(replacementIndex in replacements) {
      var replacement = replacements[replacementIndex];
      var token = '$' + replacementIndex;
      outgoing.uri = outgoing.uri.replace(token, replacement);
    }
     return outgoing;
   });

//
// Here we will configure our tests to use
// http://127.0.0.1:8000 as the remote address
// and to always send 'Content-Type': 'application/json'
//
suite.use('127.0.0.1', 8000)
     .setHeader('Content-Type', 'application/json')

  .discuss('When using the API')
    .discuss('and posting a new item')
Example #13
0
var fakeweb = require(__dirname + '/fakeweb.js');
var friends = require('../Connectors/Facebook/friends');
var home = require('../Connectors/Facebook/home');
var photos = require('../Connectors/Facebook/photos');
var assert = require("assert");
var RESTeasy = require('api-easy');
var vows = require("vows");
var suite = RESTeasy.describe("Facebook Synclets");
var fs = require('fs');
var curDir = process.cwd();

process.setMaxListeners(0);
process.on('uncaughtException',function(error){
    console.dir(error.stack);
});

var mePath = '/Data/facebook-1';
var pinfo = JSON.parse(fs.readFileSync(__dirname + mePath + '/me.json'));

suite.next().suite.addBatch({
    "Can get users" : {
        topic: function() {
            fakeweb.allowNetConnect = false;
            fakeweb.registerUri({uri : 'https://graph.facebook.com/me/friends?access_token=foo&date_format=U',
                file : __dirname + '/fixtures/facebook/friends2.json' });
            fakeweb.registerUri({uri : 'https://graph.facebook.com/1234?access_token=foo&date_format=U&fields=id,name,first_name,middle_name,last_name,gender,locale,languages,link,username,third_party_id,timezone,updated_time,verified,bio,birthday,education,email,hometown,interested_in,location,political,favorite_athletes,favorite_teams,quotes,relationship_status,religion,significant_other,video_upload_limits,website,work',
                file : __dirname + '/fixtures/facebook/1234.json' });
            fakeweb.registerUri({uri : 'https://graph.facebook.com/1234/picture?access_token=foo',
                file : __dirname + '/fixtures/facebook/1234.jpg',
                contentType : 'image/jpeg' });
            process.chdir("." + mePath);
Example #14
0
/*
 * accept-test.js: Tests for `content-type`-based routing
 *
 * (C) 2012, Nodejitsu Inc.
 * MIT LICENSE
 *
 */

var assert = require('assert'), apiEasy = require('api-easy'), director = require('../../../lib/director'), helpers = require('../helpers'), macros = helpers.macros, handlers = helpers.handlers;

var PORT = 9067;

apiEasy.describe('director/http/accept').addBatch({
  "An instance of `director.http.Router`":{
    "with routes set up":{
      topic:function () {
        var router = new director.http.Router();
        router.get('/json', { accept:'application/json' }, handlers.respondWithOk());
        router.get('/txt', { accept:'text/plain' }, handlers.respondWithOk());
        router.get('/both', { accept:['text/plain', 'application/json'] }, handlers.respondWithOk());
        router.get('/regex', { accept:/.+\/x\-.+/ }, handlers.respondWithOk());

        router.get('/weird', { accept:'application/json' }, function () {
          this.res.writeHead(400);
          this.res.end();
        });

        router.get('/weird', handlers.respondWithOk());

        helpers.createServer(router).listen(PORT, this.callback);
      },
'use strict';

// apieasy usage : http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs

require('../lib/gitification.js');

var APIeasy = require('api-easy');
//assert = require('assert');




var suite = APIeasy.describe('leaderboard');

suite.discuss('When asking our API')
  .discuss('to send us the leaderboard')
    .use('localhost', 8080)
    .setHeader('Content-Type', 'application/json')
    .get('applications/1/leaderboard')
    .expect(200)
    .export(module);
Example #16
0
var APIeasy = require('api-easy'),
	assert = require('assert');

var suite = APIeasy.describe('Badges api validation');

suite.use('localhost', 8888)
	.discuss('When getting all the badges')
		.get('/badges')
			.expect(200)
			.expect([])
	.undiscuss()
	.next()
	.discuss('When adding a badge')
		.setHeader('Content-Type', 'application/json')
		.post('/badges', { name: 'badge1', icon: './icon/badge1.png' })
			.expect(200)
			.expect('should respond the badge itself', function (err, res, body){
				var badge = JSON.parse(body);
				assert.isNotNull(badge._id);
				assert.equal(badge.name, 'badge1');
				assert.equal(badge.icon, './icon/badge1.png');
				assert.equal(badge.url, '/badges/' + badge._id);
			})
	.undiscuss()
	.next()
	.discuss('When getting all the badges')
		.removeHeader('Content-Type', 'application/json')
		.get('/badges')
			.expect(200)
			.expect('should respond with an array of one badge', function(err, res, body){
				var badges = JSON.parse(body);
Example #17
0
 *
 * (C) 2012, Nodejitsu Inc.
 * MIT LICENSE
 *
 */

var assert = require('assert'),
    apiEasy = require('api-easy'),
    director = require('../../../lib/director'),
    helpers = require('../helpers'),
    macros = helpers.macros,
    handlers = helpers.handlers;

var PORT = 9067;

apiEasy.describe('director/http/accept')
  .addBatch({
    "An instance of `director.http.Router`": {
      "with routes set up": {
        topic: function () {
          var router = new director.http.Router();
          router.get('/json', { accept: 'application/json' }, handlers.respondWithOk());
          router.get('/txt', { accept: 'text/plain' }, handlers.respondWithOk());
          router.get('/both', { accept: ['text/plain', 'application/json'] }, handlers.respondWithOk());
          router.get('/regex', { accept: /.+\/x\-.+/ }, handlers.respondWithOk());

          router.get('/weird', { accept: 'application/json' }, function () {
            this.res.writeHead(400);
            this.res.end();
          });
Example #18
0
const PORT = 3000;

// should we use the configured port?
var config = require ('../config.js');

var app = require ('../app.js'),
    assert = require ('assert'),
    APIeasy = require ('api-easy');

app.listen(PORT);

var newId; 

APIeasy.describe('/dwellers')
  .use('localhost', PORT)
  .path('/dwellers')
  .setHeader('Content-Type', 'application/json')
  .discuss('With no dwellers')
    .get().expect(200, {})
    .next()
  .undiscuss()
    .put({'a': {foo: 'bar'}, 'b': {foo: 'baz'}}).expect(200)
    .next()
  .discuss('To verify PUT')
    .get().expect(200, {'a': {foo: 'bar'}, 'b': {foo: 'baz'}})
    .next()
  .undiscuss()
    .post({foo: 'new'}).expect(201).expect('returns id', function(err, req, body){
      newId = JSON.parse(body);
    })
    .next()
// apieasy usage : http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs

var server = require('../lib/gitification.js');

var APIeasy = require('api-easy');
//assert = require('assert');

//////////////////////////////
// TODO tests
//	* delete non-existing
//	* update non-existing
//	* get badges
//	* add messages in replies
//////////////////////////////

var suite = APIeasy.describe('users');

suite.discuss('When asking our API')
	//// GET ////
	.discuss('to send us')
		.discuss('the list of users')
			.use('localhost', 8080)
			.setHeader('Content-Type', 'application/json')
			.get(server.prefix + '/applications/1/users/')
			.expect(200)
			.undiscuss()
		.discuss('the details of an existing user')
			.use('localhost', 8080)
			.setHeader('Content-Type', 'application/json')
			.get(server.prefix + '/applications/1/users/1')
			.expect(200)
'use strict';

// apieasy usage : http://blog.nodejitsu.com/rest-easy-test-any-api-in-nodejs

require('../lib/gitification.js');

var APIeasy = require('api-easy');
//assert = require('assert');




var suite = APIeasy.describe('events');

suite.discuss('When asking our API')
	//// GET ////
  .discuss('to send us')
		.discuss('the list of events')
			.use('localhost', 8080)
			.setHeader('Content-Type', 'application/json')
			.get('applications/1/events')
			.expect(200)
			.undiscuss()
		.discuss('a specific event')
			.use('localhost', 8080)
			.setHeader('Content-Type', 'application/json')
			.get('applications/1/events/1')
			.expect(200)
			.undiscuss()
		.discuss('a specific event but with invalid id value')
			.use('localhost', 8080)
Example #21
0
//tests for IMAP connector

var assert = require('assert');
var vows = require('vows');
var RESTeasy = require('api-easy');
var http = require('http');
var querystring = require('querystring');
var events = require('events');
var fs = require('fs');
var request = require('request');
var lfs = require('../Common/node/lfs.js');
var locker = require('../Common/node/locker.js');
var path = require('path');
var testUtils = require(__dirname + "/test-utils.js");

var suite = RESTeasy.describe('IMAP Connector')

var id = 'imap-test';

//requires that the credentials be stored in a file in tests/Me/imap-auth.json
//in the form of {"username":"******", "password":"******", "server":"imap.gmail.com"}
try {
    var credstr = fs.readFileSync('Me/' + id + '/secrets.json');
    if(credstr)
        var auth = JSON.parse(credstr);
} catch (E) {
    var auth = undefined;
}

if(auth && auth.username && auth.password && auth.server) {
    
Example #22
0
var contacts = require('../Collections/Contacts/sync.js');
var dataStore = require('../Collections/Contacts/dataStore.js');
var assert = require("assert");
var vows = require("vows");
var currentDir = process.cwd();
var fakeweb = require(__dirname + '/fakeweb.js');
var mongoCollections;
var svcId = 'contacts';

var lconfig = require('lconfig');
lconfig.load('config.json');

var request = require('request');

var RESTeasy = require('api-easy');
var suite = RESTeasy.describe("Contacts Collection");

var friend;

var thecollections = ['contacts'];
var lconfig = require('../Common/node/lconfig');
lconfig.load("config.json");

var lmongoclient = require('../Common/node/lmongoclient.js')(lconfig.mongo.host, lconfig.mongo.port, svcId, thecollections);

var events = 0;
var fs = require('fs');
var foursquareEvent1 = fs.readFileSync('fixtures/events/contacts/foursquare_contact_1.json');
var foursquareEvent2 = fs.readFileSync('fixtures/events/contacts/foursquare_contact_2.json');
var foursquareEvent3 = fs.readFileSync('fixtures/events/contacts/foursquare_contact_3.json');
Example #23
0
var
  APIeasy = require('api-easy'),
  assert = require('assert'),

  surveys = require('../../../../fixtures/Surveys').surveys,
  users = require('../../../../fixtures/Users').users,
  surveyKey,

  Configuration = require('../../../../app/helpers/Configuration'),
  loginHelper = require('../../../helpers/login'),

  fixturesLoader = require('../../../helpers/fixturesLoader').addToSuite,
  sendSurveySuite = fixturesLoader(APIeasy.describe('Send Survey Controller'));

function sendSurveyTestsForUser (user) {
  surveyKey = 'surveyToSend_' + user;

  loginHelper.login(sendSurveySuite, user)
    .next()
    .discuss('When ' + user)
      .discuss(' tries to send unpublished survey')
        .post('/sendSurvey/' + surveys[surveyKey]._id, { users: [users.superAdmin._id, users.fieldWorker._id] })
        .expect(204)
        .next()
        .get('/surveys/' + surveys[surveyKey]._id)
        .expect('should make this survey published', function (err, resp, body) {
          var survey = JSON.parse(body);

          assert.equal(survey.published, true);
        })
        .next()
Example #24
0
  fs = require('fs'),
  path = require('path'),

  users = require('../../../../fixtures/Users').users,
  surveys = require('../../../../fixtures/Surveys').surveys,

  loginHelper = require('../../../helpers/login'),

  Configuration = require('../../../../app/helpers/Configuration'),
  JXON = require('../../../../app/helpers/JXON'),

  testXMLPath = '../../../../resources/xml/survey.xml',
  testXML = fs.readFileSync(path.resolve(__dirname + testXMLPath), 'utf8'),

  fixturesLoader = require('../../../helpers/fixturesLoader').addToSuite,
  xmlSuite = fixturesLoader(APIeasy.describe('XML Controller'));

function xmlTestsForUser (user) {
  loginHelper.login(xmlSuite, user)
    .next()
    .discuss('When ' + user)
      .discuss('tries to post survey as xml')
        .post('/xml', { xml: testXML })
        .expect(200)
        .expect('should respond with new survey id', function (err, resp, body) {
          var id = JSON.parse(body).id.toString();

          assert.equal(id.length, 24);

          xmlSuite.before('setSurveyId', function (outgoing) {
            outgoing.uri = outgoing.uri.replace('SURVEY_ID', id);
Example #25
0
var fakeweb = require('node-fakeweb');
var dataStore = require('../Collections/Links/dataStore');
var dataIn = require('../Collections/Links/dataIn');
var util = require('../Collections/Links/util');
var search = require('../Collections/Links/search');
var assert = require("assert");
var RESTeasy = require('api-easy');
var vows = require("vows");
var suite = RESTeasy.describe("Links Collection");
var fs = require('fs');
var request = require('request');
var twitterEvent = JSON.parse(fs.readFileSync('fixtures/events/links/twitter_event_2.json','ascii'));
var facebookEvent = JSON.parse(fs.readFileSync('fixtures/events/links/facebook_event_1.json','ascii'));

process.setMaxListeners(0);
process.on('uncaughtException',function(error){
    console.dir(error.stack);
});

var mePath = '/Data/links';
var pinfo = JSON.parse(fs.readFileSync(__dirname + mePath + '/me.json'));

var thecollections = ['link','encounter','queue'];
var lconfig = require('../Common/node/lconfig');
lconfig.load("Config/config.json");
var locker = {};
locker.event = function(){};
util.expandUrl = function(a,b,c){b(a.url);c();} // fakeweb doesn't support HEAD reqs AFAICT :(

var lmongo = require('../Common/node/lmongo.js');
var lconfig = require('lconfig');
lconfig.load('Config/config.json');
var locker = require('locker');
var assert = require('assert');
var RESTeasy = require('api-easy');
var suite = RESTeasy.describe('Search Collection');
var fakeweb = require(__dirname + '/fakeweb.js');
var lsearch = require('lsearch');
var search = require('../Collections/Search/search');
var fs = require('fs');

search.lockerInfo.lockerUrl = 'http://localhost:8042';
locker.lockerBase = search.lockerInfo.lockerUrl;

var contactAddEvent = JSON.parse(fs.readFileSync('fixtures/events/contacts/contacts_collection_contact_1.json','ascii'));
var contactUpdateEvent = JSON.parse(fs.readFileSync('fixtures/events/contacts/contacts_collection_contact_1_updated.json','ascii'));
var contactAddEvent2 = JSON.parse(fs.readFileSync('fixtures/events/contacts/contacts_collection_contact_2.json','ascii'));
var twitterEvent = JSON.parse(fs.readFileSync('fixtures/events/timeline_twitter/twitter_tweet_1.json','ascii'));

fakeweb.allowNetConnect = false;
fakeweb.registerUri({uri : 'http://localhost:8042/Me/twitter/timeline/4e604465cec3a369b34a3126', body:JSON.stringify(twitterEvent.obj.data), contentType:"application/json"});
fakeweb.registerUri({uri : 'http://localhost:8042/Me/contacts/4e5e9731e4884f5600595b28', body:JSON.stringify(contactAddEvent.obj.data), contentType:"application/json"});
fakeweb.registerUri({uri : 'http://localhost:8042/Me/contacts/4e5e9731e4884f5600595b29', body:JSON.stringify(contactAddEvent.obj.data), contentType:"application/json"});

var req = {};
req.headers = {};
req.headers['content-type'] = 'application/json';
req.params = {};
req.param = function(n) { return this.params[n];};

lsearch.setEngine(lsearch.engines.CLucene);
var mongoCollections;
var currentDir = process.cwd();
var svcId = 'facebook';
var mePath = '/Me/' + svcId;
var thecollections = ['friends', 'newsfeed', 'wall'];
process.on('uncaughtException',function(error){
    sys.puts(error.stack);
});
require.paths.push(__dirname + "/Common/node");

var fakeweb = require(__dirname + '/fakeweb.js');
var sync = require('../Connectors/Facebook/sync');
var dataStore = require('../Common/node/connector/dataStore');
var assert = require('assert');
var RESTeasy = require('api-easy');
var suite = RESTeasy.describe('Facebook Connector');
var vows = require('vows');
var lconfig = require('../Common/node/lconfig');
lconfig.load('config.json');
var utils = require('./test-utils');
var lmongoclient = require('../Common/node/lmongoclient.js')(lconfig.mongo.host, lconfig.mongo.port, svcId, thecollections);
var locker = require('../Common/node/locker');
var levents = require('../Common/node/levents');
var emittedEvents = [];

sync.eventEmitter.on('contact/facebook', function(eventObj) {
    levents.fireEvent('contact/facebook', 'facebook-test', eventObj);
});

sync.eventEmitter.on('link/facebook', function(eventObj) {
    levents.fireEvent('link/facebook', 'facebook-test', eventObj);
Example #28
0
var APIeasy = require('api-easy'),
		assert  = require('assert');

APIeasy
	.describe('application')
  .use('localhost', 8080)
  .discuss('When using the api')
  		.discuss('with no url in the db')
      .get('/url/all').expect(200,{result: true, data: null})
      .get('/url/new')
      	.expect('should return an html form', function(err, res, body){
      		assert.equal(err, null);
      		assert.equal(res.statusCode, 200);
      	})
		  .export(module);
Example #29
0
var APIeasy = require('api-easy');

//
// Create a APIeasy test suite for our API
//
var suite = APIeasy.describe('api');

//
// Add some discussion around the vowsjs tests.
// Not familiar with vows? Checkout:
// http://vowsjs.org 
//
suite.discuss('When using the API')
     .discuss('the Ping resource');

//
// Here we will configure our tests to use 
// http://localhost:8109 as the remote address
// and to always send 'Content-Type': 'application/json'
//

suite.use('localhost', 80).setHeader('Content-Type', 'application/json')
  .discuss('When using the activiti rest api login POST')
  .post('/enricher/login', {"userId": "kermit","password": "******"})
  .expect(200, {"success": true})
  
  .discuss('When querying the user kermit')
  .get('/enricher/user/kermit').expect(200,{"id":"kermit","firstName":"Kermit","lastName":"the Frog","email":"kermit@localhost"})
  .discuss('When querying kermits groups')
  .get('/enricher/user/kermit/groups')
  .expect(200,{"data":[ {"id":"accountancy","name":"Accountancy","type":"assignment"},
var fakeweb = require(__dirname + '/fakeweb.js');
var twitter = require('../Connectors/Twitter/sync');
var dataStore = require('../Common/node/connector/dataStore');
var RESTeasy = require('api-easy');
var assert = require("assert");
var vows = require("vows");
var fs = require("fs");
var currentDir = process.cwd();
var request = require('request');
var locker = require('../Common/node/locker');

var suite = RESTeasy.describe("Twitter Connector")
var utils = require('./test-utils');
process.on('uncaughtException',function(error){
    sys.puts(error.stack);
});

var svcId = "twitter";
var mePath = '/Me/' + svcId;

var thecollections = ['friends', 'followers', 'home_timeline', 'user_timeline', 'mentions'];
var lconfig = require('../Common/node/lconfig');
lconfig.load("config.json");

var lmongoclient = require('../Common/node/lmongoclient.js')(lconfig.mongo.host, lconfig.mongo.port, svcId, thecollections);
var mongoCollections;

var emittedEvents = [];
var levents = require('../Common/node/levents.js');
twitter.eventEmitter.on('contact/twitter', function(eventObj) {
    levents.fireEvent('contact/twitter', 'twitter-test', eventObj);