Commit cec78774 authored by Tristan Cavelier's avatar Tristan Cavelier

jio tests tools moved to util.js and fakestorage.js, some method name changed

parent 10a9ba26
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define, exports, window, jIO */
(function (dependencies, module) {
"use strict";
if (typeof define === 'function' && define.amd) {
return define(dependencies, module);
}
if (typeof exports === 'object') {
module(exports);
}
if (typeof window === 'object') {
window.fake_storage = {};
module(window.fake_storage);
}
}(['exports'], function (exports) {
"use strict";
var fakestorage = {};
function FakeStorage(spec) {
this._id = spec.id;
if (typeof this._id !== 'string' || this._id.length <= 0) {
throw new TypeError(
"Initialization error: wrong id"
);
}
}
FakeStorage.createNamespace = function (
that,
method,
command,
param,
options
) {
fakestorage[that._id + '/' + method] = {
param: param,
options: options,
success: function () {
var res = command.success.apply(command, arguments);
delete fakestorage[that._id + '/' + method];
return res;
},
error: function () {
var res = command.error.apply(command, arguments);
delete fakestorage[that._id + '/' + method];
return res;
},
retry: function () {
var res = command.retry.apply(command, arguments);
delete fakestorage[that._id + '/' + method];
return res;
},
notify: function () {
return command.notify.apply(command, arguments);
},
storage: function () {
return command.storage.apply(command, arguments);
},
end: function () {
return command.end.apply(command, arguments);
},
commit: function () {
return command.commit.apply(command, arguments);
},
free: function () {
delete fakestorage[that._id + '/' + method];
}
};
};
FakeStorage.makeMethod = function (method) {
return function (command, param, options) {
FakeStorage.createNamespace(this, method, command, param, options);
};
};
FakeStorage.prototype.post = FakeStorage.makeMethod('post');
FakeStorage.prototype.put = FakeStorage.makeMethod('put');
FakeStorage.prototype.get = FakeStorage.makeMethod('get');
FakeStorage.prototype.remove = FakeStorage.makeMethod('remove');
FakeStorage.prototype.putAttachment = FakeStorage.makeMethod('putAttachment');
FakeStorage.prototype.getAttachment = FakeStorage.makeMethod('getAttachment');
FakeStorage.prototype.removeAttachment =
FakeStorage.makeMethod('removeAttachment');
FakeStorage.prototype.check = FakeStorage.makeMethod('check');
FakeStorage.prototype.repair = FakeStorage.makeMethod('repair');
FakeStorage.prototype.allDocs = FakeStorage.makeMethod('allDocs');
jIO.addStorage('fake', FakeStorage);
exports.commands = fakestorage;
}));
/*jslint indent: 2, maxlen: 80, nomen: true */ /*jslint indent: 2, maxlen: 80, nomen: true */
/*global define, window, exports, jIO, ok, module, test, expect, deepEqual, /*global define, window, exports, require, jIO, fake_storage, ok, module, test,
sinon, FileReader, Blob, setTimeout */ expect, deepEqual, sinon, FileReader, Blob, setTimeout, localStorage */
(function (dependencies, module) { (function (dependencies, module) {
"use strict"; "use strict";
...@@ -8,89 +8,12 @@ ...@@ -8,89 +8,12 @@
return define(dependencies, module); return define(dependencies, module);
} }
if (typeof exports === 'object') { if (typeof exports === 'object') {
return module(exports, jIO); return module(require('fakestorage'), require('jio'));
} }
window.jio_tests = {}; module(fake_storage, jIO);
module(window.jio_tests, jIO); }(['fakestorage', 'jio', 'sinon_qunit'], function (fake_storage, jIO) {
}(['exports', 'jio', 'sinon_qunit'], function (exports, jIO) {
"use strict"; "use strict";
var JIO = jIO.JIO, fakestorage = {}; var JIO = jIO.JIO, commands = fake_storage.commands;
//////////////////////////////////////////////////////////////////////////////
// Fake Storage
function FakeStorage(spec) {
this._id = spec.id;
if (typeof this._id !== 'string' || this._id.length <= 0) {
throw new TypeError(
"Initialization error: wrong id"
);
}
}
FakeStorage.createNamespace = function (
that,
method,
command,
param,
options
) {
fakestorage[that._id + '/' + method] = {
param: param,
options: options,
success: function () {
var res = command.success.apply(command, arguments);
delete fakestorage[that._id + '/' + method];
return res;
},
error: function () {
var res = command.error.apply(command, arguments);
delete fakestorage[that._id + '/' + method];
return res;
},
retry: function () {
var res = command.retry.apply(command, arguments);
delete fakestorage[that._id + '/' + method];
return res;
},
notify: function () {
return command.notify.apply(command, arguments);
},
storage: function () {
return command.storage.apply(command, arguments);
},
end: function () {
return command.end.apply(command, arguments);
},
commit: function () {
return command.commit.apply(command, arguments);
},
free: function () {
delete fakestorage[that._id + '/' + method];
}
};
};
FakeStorage.makeMethod = function (method) {
return function (command, param, options) {
FakeStorage.createNamespace(this, method, command, param, options);
};
};
FakeStorage.prototype.post = FakeStorage.makeMethod('post');
FakeStorage.prototype.put = FakeStorage.makeMethod('put');
FakeStorage.prototype.get = FakeStorage.makeMethod('get');
FakeStorage.prototype.remove = FakeStorage.makeMethod('remove');
FakeStorage.prototype.putAttachment = FakeStorage.makeMethod('putAttachment');
FakeStorage.prototype.getAttachment = FakeStorage.makeMethod('getAttachment');
FakeStorage.prototype.removeAttachment =
FakeStorage.makeMethod('removeAttachment');
FakeStorage.prototype.check = FakeStorage.makeMethod('check');
FakeStorage.prototype.repair = FakeStorage.makeMethod('repair');
FakeStorage.prototype.allDocs = FakeStorage.makeMethod('allDocs');
jIO.addStorage('fake', FakeStorage);
exports.fakestorage = fakestorage;
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// Tests // Tests
...@@ -167,15 +90,15 @@ ...@@ -167,15 +90,15 @@
}); });
count += 1; count += 1;
deepEqual(count, 1, "JIO post"); deepEqual(count, 1, "JIO post");
ok(!fakestorage['Asynchrony/post'], "Command not called yet"); ok(!commands['Asynchrony/post'], "Command not called yet");
clock.tick(1); clock.tick(1);
count += 1; count += 1;
deepEqual(count, 2, "Next instructions"); deepEqual(count, 2, "Next instructions");
ok(fakestorage['Asynchrony/post'], "Command called"); ok(commands['Asynchrony/post'], "Command called");
fakestorage['Asynchrony/post'].notify(); commands['Asynchrony/post'].notify();
count += 1; count += 1;
deepEqual(count, 4, "Next timer"); deepEqual(count, 4, "Next timer");
fakestorage['Asynchrony/post'].success({"id": "a"}); commands['Asynchrony/post'].success({"id": "a"});
count += 1; count += 1;
deepEqual(count, 5, "Command success requested"); deepEqual(count, 5, "Command success requested");
clock.tick(1); clock.tick(1);
...@@ -263,7 +186,7 @@ ...@@ -263,7 +186,7 @@
}); });
clock.tick(1); clock.tick(1);
clock.tick(10000); // wait 10 seconds clock.tick(10000); // wait 10 seconds
fakestorage['1 No Respons/post'].free(); commands['1 No Respons/post'].free();
jio = new JIO({ jio = new JIO({
"type": "fake", "type": "fake",
...@@ -289,11 +212,11 @@ ...@@ -289,11 +212,11 @@
}); });
clock.tick(1); clock.tick(1);
clock.tick(4999); // wait 5 seconds clock.tick(4999); // wait 5 seconds
fakestorage['2 No Respons/post'].notify(); commands['2 No Respons/post'].notify();
clock.tick(5000); // wait 5 seconds clock.tick(5000); // wait 5 seconds
deepEqual(state, "Not called yet", "Check callback state."); deepEqual(state, "Not called yet", "Check callback state.");
clock.tick(5000); // wait 5 seconds clock.tick(5000); // wait 5 seconds
fakestorage['2 No Respons/post'].free(); commands['2 No Respons/post'].free();
jio = new JIO({ jio = new JIO({
"type": "fake", "type": "fake",
...@@ -362,7 +285,7 @@ ...@@ -362,7 +285,7 @@
}, "Invalid Post Response"); }, "Invalid Post Response");
}); });
clock.tick(1); clock.tick(1);
fakestorage['1 Invalid Re/post'].success(); commands['1 Invalid Re/post'].success();
clock.tick(1); clock.tick(1);
jio = new JIO({ jio = new JIO({
...@@ -384,7 +307,7 @@ ...@@ -384,7 +307,7 @@
}, "Invalid Post Error Response"); }, "Invalid Post Error Response");
}); });
clock.tick(1); clock.tick(1);
fakestorage['2 Invalid Re/post'].error(); commands['2 Invalid Re/post'].error();
clock.tick(1); clock.tick(1);
}); });
...@@ -420,7 +343,7 @@ ...@@ -420,7 +343,7 @@
}, o.message); }, o.message);
}); });
clock.tick(1); clock.tick(1);
fakestorage['Valid Resp/post'].success({"id": "document id a"}); commands['Valid Resp/post'].success({"id": "document id a"});
clock.tick(1); clock.tick(1);
// Tests post command callbacks post(metadata).done(onSuccess).fail(onError) // Tests post command callbacks post(metadata).done(onSuccess).fail(onError)
...@@ -438,7 +361,7 @@ ...@@ -438,7 +361,7 @@
deepEqual(answer, "Should not fail", o.message); deepEqual(answer, "Should not fail", o.message);
}); });
clock.tick(1); clock.tick(1);
fakestorage['Valid Resp/post'].success({"id": "document id a"}); commands['Valid Resp/post'].success({"id": "document id a"});
clock.tick(1); clock.tick(1);
// Tests post command callbacks post(metadata, onResponse) // Tests post command callbacks post(metadata, onResponse)
...@@ -456,7 +379,7 @@ ...@@ -456,7 +379,7 @@
}, o.message); }, o.message);
}); });
clock.tick(1); clock.tick(1);
fakestorage['Valid Resp/post'].success({"id": "document id a"}); commands['Valid Resp/post'].success({"id": "document id a"});
clock.tick(1); clock.tick(1);
// Tests post command callbacks post(metadata, onSuccess, onError) + error // Tests post command callbacks post(metadata, onSuccess, onError) + error
...@@ -478,7 +401,7 @@ ...@@ -478,7 +401,7 @@
}, o.message); }, o.message);
}); });
clock.tick(1); clock.tick(1);
fakestorage['Valid Resp/post'].error('conflict'); commands['Valid Resp/post'].error('conflict');
clock.tick(1); clock.tick(1);
// Tests getAttachment command string response // Tests getAttachment command string response
...@@ -497,7 +420,7 @@ ...@@ -497,7 +420,7 @@
}); });
}); });
clock.tick(1); clock.tick(1);
fakestorage['Valid Resp/getAttachment'].success("ok", { commands['Valid Resp/getAttachment'].success("ok", {
"data": "document id a" "data": "document id a"
}); });
clock.tick(1); clock.tick(1);
...@@ -510,13 +433,13 @@ ...@@ -510,13 +433,13 @@
}); });
clock.tick(1); clock.tick(1);
o.answer = undefined; o.answer = undefined;
fakestorage['Valid Resp/post'].notify(); commands['Valid Resp/post'].notify();
o.answer = 'hoo'; o.answer = 'hoo';
fakestorage['Valid Resp/post'].notify(o.answer); commands['Valid Resp/post'].notify(o.answer);
o.answer = 'Forbidden!!!'; o.answer = 'Forbidden!!!';
o.message = 'Notification forbidden after success'; o.message = 'Notification forbidden after success';
setTimeout(fakestorage['Valid Resp/post'].notify, 2); setTimeout(commands['Valid Resp/post'].notify, 2);
fakestorage['Valid Resp/post'].success(); commands['Valid Resp/post'].success();
clock.tick(2); clock.tick(2);
}); });
...@@ -571,45 +494,45 @@ ...@@ -571,45 +494,45 @@
jio.post(o.request); jio.post(o.request);
clock.tick(1); clock.tick(1);
deepEqual( deepEqual(
fakestorage["Metadata v/post"].param, commands["Metadata v/post"].param,
o.response, o.response,
"Post" "Post"
); );
fakestorage["Metadata v/post"].success(); commands["Metadata v/post"].success();
clock.tick(1); clock.tick(1);
o.request._id = 'a'; o.request._id = 'a';
o.response._id = 'a'; o.response._id = 'a';
jio.put(o.request); jio.put(o.request);
clock.tick(1); clock.tick(1);
deepEqual(fakestorage["Metadata v/put"].param, o.response, "Put"); deepEqual(commands["Metadata v/put"].param, o.response, "Put");
fakestorage["Metadata v/put"].success(); commands["Metadata v/put"].success();
clock.tick(1); clock.tick(1);
jio.get({ jio.get({
"_id": "a" "_id": "a"
}); });
clock.tick(1); clock.tick(1);
deepEqual(fakestorage["Metadata v/get"].param, { deepEqual(commands["Metadata v/get"].param, {
"_id": "a" "_id": "a"
}, "Get"); }, "Get");
fakestorage["Metadata v/get"].success(); commands["Metadata v/get"].success();
clock.tick(1); clock.tick(1);
jio.remove({ jio.remove({
"_id": "a" "_id": "a"
}); });
clock.tick(1); clock.tick(1);
deepEqual(fakestorage["Metadata v/remove"].param, { deepEqual(commands["Metadata v/remove"].param, {
"_id": "a" "_id": "a"
}, "Remove"); }, "Remove");
fakestorage["Metadata v/remove"].success(); commands["Metadata v/remove"].success();
clock.tick(1); clock.tick(1);
jio.allDocs(); jio.allDocs();
clock.tick(1); clock.tick(1);
deepEqual(fakestorage["Metadata v/allDocs"].param, {}, "AllDocs"); deepEqual(commands["Metadata v/allDocs"].param, {}, "AllDocs");
fakestorage["Metadata v/allDocs"].success(); commands["Metadata v/allDocs"].success();
clock.tick(1); clock.tick(1);
o.request = { o.request = {
...@@ -620,13 +543,13 @@ ...@@ -620,13 +543,13 @@
}; };
jio.putAttachment(o.request); jio.putAttachment(o.request);
clock.tick(1); clock.tick(1);
ok(fakestorage["Metadata v/putAttachment"].param._blob instanceof Blob, ok(commands["Metadata v/putAttachment"].param._blob instanceof Blob,
"Put Attachment + check blob"); "Put Attachment + check blob");
deepEqual([ deepEqual([
fakestorage["Metadata v/putAttachment"].param._id, commands["Metadata v/putAttachment"].param._id,
fakestorage["Metadata v/putAttachment"].param._attachment commands["Metadata v/putAttachment"].param._attachment
], ["a", "body"], "Put Attachment + check ids"); ], ["a", "body"], "Put Attachment + check ids");
fakestorage["Metadata v/putAttachment"].success(); commands["Metadata v/putAttachment"].success();
clock.tick(1); clock.tick(1);
o.request._blob = new Blob(['d'], {"type": "e"}); o.request._blob = new Blob(['d'], {"type": "e"});
...@@ -634,13 +557,13 @@ ...@@ -634,13 +557,13 @@
delete o.request._data; delete o.request._data;
jio.putAttachment(o.request); jio.putAttachment(o.request);
clock.tick(1); clock.tick(1);
ok(fakestorage["Metadata v/putAttachment"].param._blob === o.request._blob, ok(commands["Metadata v/putAttachment"].param._blob === o.request._blob,
"Put Attachment with blob + check blob"); "Put Attachment with blob + check blob");
deepEqual([ deepEqual([
fakestorage["Metadata v/putAttachment"].param._id, commands["Metadata v/putAttachment"].param._id,
fakestorage["Metadata v/putAttachment"].param._attachment commands["Metadata v/putAttachment"].param._attachment
], ["a", "body"], "Put Attachment with blob + check ids"); ], ["a", "body"], "Put Attachment with blob + check ids");
fakestorage["Metadata v/putAttachment"].success(); commands["Metadata v/putAttachment"].success();
clock.tick(1); clock.tick(1);
}); });
...@@ -674,17 +597,17 @@ ...@@ -674,17 +597,17 @@
}, "Error response"); }, "Error response");
}); });
clock.tick(1); clock.tick(1);
fakestorage['1 Job Retry/get'].retry('internal_server_error'); commands['1 Job Retry/get'].retry('internal_server_error');
clock.tick(1); clock.tick(1);
deepEqual(state, "Not called yet", "Check callback state."); deepEqual(state, "Not called yet", "Check callback state.");
clock.tick(1999); clock.tick(1999);
fakestorage['1 Job Retry/get'].retry('internal_server_error'); commands['1 Job Retry/get'].retry('internal_server_error');
clock.tick(1); clock.tick(1);
deepEqual(state, "Not called yet", "Check callback state."); deepEqual(state, "Not called yet", "Check callback state.");
clock.tick(3999); clock.tick(3999);
fakestorage['1 Job Retry/get'].retry('internal_server_error'); commands['1 Job Retry/get'].retry('internal_server_error');
clock.tick(1); clock.tick(1);
deepEqual(state, "Called", "Check callback state."); deepEqual(state, "Called", "Check callback state.");
}); });
...@@ -735,7 +658,7 @@ ...@@ -735,7 +658,7 @@
}, 'Job added, workspace have one job'); }, 'Job added, workspace have one job');
clock.tick(1); // now: 1 ms clock.tick(1); // now: 1 ms
fakestorage["1 Job Manage/get"].success({"data": {"b": "c"}}); commands["1 Job Manage/get"].success({"data": {"b": "c"}});
clock.tick(1); // now: 2 ms clock.tick(1); // now: 2 ms
deepEqual(workspace, {}, 'Job ended, empty workspace'); deepEqual(workspace, {}, 'Job ended, empty workspace');
...@@ -757,7 +680,7 @@ ...@@ -757,7 +680,7 @@
o.job1.created = new Date(); o.job1.created = new Date();
o.job1.modified = new Date(); o.job1.modified = new Date();
clock.tick(1); // now: 3 ms clock.tick(1); // now: 3 ms
fakestorage["1 Job Manage/get"].storage({ commands["1 Job Manage/get"].storage({
"type": "fake", "type": "fake",
"id": "2 Job Manage" "id": "2 Job Manage"
}).get({"_id": "c"}).always(function (answer) { }).get({"_id": "c"}).always(function (answer) {
...@@ -790,14 +713,14 @@ ...@@ -790,14 +713,14 @@
}, 'Job calls another job, workspace have two jobs'); }, 'Job calls another job, workspace have two jobs');
clock.tick(1); clock.tick(1);
fakestorage['1 Job Manage/get'].end(); commands['1 Job Manage/get'].end();
deepEqual(workspace, { deepEqual(workspace, {
"jio/jobs/{\"id\":\"1 Job Manage\",\"type\":\"fake\"}": jIO.util. "jio/jobs/{\"id\":\"1 Job Manage\",\"type\":\"fake\"}": jIO.util.
uniqueJSONStringify([o.job2]) uniqueJSONStringify([o.job2])
}, 'First Job ended, second still there'); }, 'First Job ended, second still there');
fakestorage['1 Job Manage/get'].success({"data": {"c": "d"}}); commands['1 Job Manage/get'].success({"data": {"c": "d"}});
fakestorage['2 Job Manage/get'].success({"data": {"d": "e"}}); commands['2 Job Manage/get'].success({"data": {"d": "e"}});
deepEqual(workspace, {}, 'No more job in the queue'); deepEqual(workspace, {}, 'No more job in the queue');
...@@ -830,7 +753,7 @@ ...@@ -830,7 +753,7 @@
// copy workspace when job is running // copy workspace when job is running
workspace = jIO.util.deepClone(workspace); workspace = jIO.util.deepClone(workspace);
clock.tick(1); // now: 1 ms clock.tick(1); // now: 1 ms
fakestorage['Job Recove/post'].success({"id": "a"}); commands['Job Recove/post'].success({"id": "a"});
// create instance with copied workspace // create instance with copied workspace
jio = new JIO({ jio = new JIO({
...@@ -841,16 +764,16 @@ ...@@ -841,16 +764,16 @@
}); });
clock.tick(19998); // now: 19999 ms clock.tick(19998); // now: 19999 ms
if (fakestorage['Job Recove/post']) { if (commands['Job Recove/post']) {
ok(false, "Command called, job recovered to earlier"); ok(false, "Command called, job recovered to earlier");
} }
clock.tick(1); // now: 20000 ms clock.tick(1); // now: 20000 ms
if (!fakestorage['Job Recove/post']) { if (!commands['Job Recove/post']) {
ok(false, "Command not called, job recovery failed"); ok(false, "Command not called, job recovery failed");
} else { } else {
ok(true, "Command called, job recovery ok"); ok(true, "Command called, job recovery ok");
} }
fakestorage['Job Recove/post'].success({"id": "a"}); commands['Job Recove/post'].success({"id": "a"});
clock.tick(1); // now: 20001 ms clock.tick(1); // now: 20001 ms
deepEqual(workspace, {}, 'No more job in the queue'); deepEqual(workspace, {}, 'No more job in the queue');
...@@ -872,10 +795,10 @@ ...@@ -872,10 +795,10 @@
jio.post({}); jio.post({});
clock.tick(1); // now: 1 ms clock.tick(1); // now: 1 ms
// copy workspace when job is waiting // copy workspace when job is waiting
fakestorage['Job Recove/post'].retry(); commands['Job Recove/post'].retry();
workspace = jIO.util.deepClone(workspace); workspace = jIO.util.deepClone(workspace);
clock.tick(2000); // now: 2001 ms clock.tick(2000); // now: 2001 ms
fakestorage['Job Recove/post'].success({"id": "a"}); commands['Job Recove/post'].success({"id": "a"});
// create instance with copied workspace // create instance with copied workspace
jio = new JIO({ jio = new JIO({
...@@ -886,16 +809,16 @@ ...@@ -886,16 +809,16 @@
}); });
clock.tick(17999); // now: 20000 ms clock.tick(17999); // now: 20000 ms
if (fakestorage['Job Recove/post']) { if (commands['Job Recove/post']) {
ok(false, "Command called, job recovered to earlier"); ok(false, "Command called, job recovered to earlier");
} }
clock.tick(1); // now: 20001 ms clock.tick(1); // now: 20001 ms
if (!fakestorage['Job Recove/post']) { if (!commands['Job Recove/post']) {
ok(false, "Command not called, job recovery failed"); ok(false, "Command not called, job recovery failed");
} else { } else {
ok(true, "Command called, job recovery ok"); ok(true, "Command called, job recovery ok");
} }
fakestorage['Job Recove/post'].success({"id": "a"}); commands['Job Recove/post'].success({"id": "a"});
clock.tick(1); // now: 20002 ms clock.tick(1); // now: 20002 ms
deepEqual(workspace, {}, 'No more job in the queue'); deepEqual(workspace, {}, 'No more job in the queue');
...@@ -930,7 +853,7 @@ ...@@ -930,7 +853,7 @@
}); });
clock.tick(1); clock.tick(1);
o.first_put_command = fakestorage["Job Update/put"]; o.first_put_command = commands["Job Update/put"];
ok(o.first_put_command, "First command called"); ok(o.first_put_command, "First command called");
o.first_put_command.free(); o.first_put_command.free();
...@@ -945,7 +868,7 @@ ...@@ -945,7 +868,7 @@
}); });
clock.tick(1); clock.tick(1);
ok(fakestorage['Job Update/put'] === undefined, ok(commands['Job Update/put'] === undefined,
'Second command not called'); 'Second command not called');
o.first_put_command.success(); o.first_put_command.success();
clock.tick(1); clock.tick(1);
...@@ -978,7 +901,7 @@ ...@@ -978,7 +901,7 @@
}); });
clock.tick(1); clock.tick(1);
o.first_put_command = fakestorage["Job Wait/put"]; o.first_put_command = commands["Job Wait/put"];
ok(o.first_put_command, "First command called"); ok(o.first_put_command, "First command called");
o.first_put_command.free(); o.first_put_command.free();
...@@ -993,12 +916,12 @@ ...@@ -993,12 +916,12 @@
}); });
clock.tick(1); clock.tick(1);
ok(fakestorage['Job Wait/put'] === undefined, ok(commands['Job Wait/put'] === undefined,
'Second command not called yet'); 'Second command not called yet');
o.first_put_command.success(); o.first_put_command.success();
clock.tick(1); clock.tick(1);
ok(fakestorage['Job Wait/put'], 'Second command called'); ok(commands['Job Wait/put'], 'Second command called');
fakestorage['Job Wait/put'].success(); commands['Job Wait/put'].success();
clock.tick(1); clock.tick(1);
deepEqual(o.workspace, {}, 'No job in the queue'); deepEqual(o.workspace, {}, 'No job in the queue');
......
/*jslint indent: 2, maxlen: 80 */
/*global define, exports, window, localStorage, ok, deepEqual, sinon */
(function (dependencies, module) {
"use strict";
if (typeof define === 'function' && define.amd) {
return define(dependencies, module);
}
if (typeof exports === 'object') {
module(exports);
}
if (typeof window === 'object') {
window.test_util = {};
module(window.test_util);
}
}(['exports'], function (exports) {
"use strict";
//////////////////////////////////////////////////////////////////////////////
// Tools
/**
* Test if the string is an Uuid
*
* @param {String} uuid The string to test
* @return {Boolean} true if is uuid, else false
*/
function isUuid(uuid) {
var x = "[0-9a-fA-F]";
if (typeof uuid !== "string") {
return false;
}
return (uuid.match(
"^" + x + "{8}-" + x + "{4}-" +
x + "{4}-" + x + "{4}-" + x + "{12}$"
) === null ? false : true);
}
exports.isUuid = isUuid;
/**
* A useful tool to set/get json object into the localStorage
*/
exports.jsonlocalstorage = {
clear: function () {
return localStorage.clear();
},
getItem: function (item) {
var value = localStorage.getItem(item);
return value === null ? null : JSON.parse(value);
},
setItem: function (item, value) {
return localStorage.setItem(item, JSON.stringify(value));
},
removeItem: function (item) {
return localStorage.removeItem(item);
}
};
//////////////////////////////////////////////////////////////////////////////
// Deprecated
function spyJioCallback(result_type, value, message) {
return function (err, response) {
var val;
switch (result_type) {
case 'value':
val = err || response;
break;
case 'status':
val = (err || {}).status;
break;
case 'jobstatus':
val = (err ? 'fail' : 'done');
break;
default:
ok(false, "Unknown case " + result_type);
break;
}
deepEqual(val, value, message);
};
}
exports.spyJioCallback = spyJioCallback;
function ospy(o, result_type, value, message, function_name) {
function_name = function_name || 'f';
o[function_name] = function (err, response) {
var val;
switch (result_type) {
case 'value':
val = err || response;
break;
case 'status':
val = (err || {}).status;
break;
case 'jobstatus':
val = (err ? 'fail' : 'done');
break;
default:
ok(false, "Unknown case " + result_type);
break;
}
deepEqual(val, value, message);
};
sinon.spy(o, function_name);
}
exports.ospy = ospy;
function otick(o, a, b) {
var tick = 1, function_name = 'f';
if (typeof a === 'number' && !isNaN(a)) {
tick = a;
a = b;
}
if (typeof a === 'string') {
function_name = a;
}
o.clock.tick(tick);
if (!o[function_name].calledOnce) {
if (o[function_name].called) {
ok(false, 'too much results');
} else {
ok(false, 'no response');
}
}
}
exports.otick = otick;
}));
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
<script src="../lib/sinon/sinon.js"></script> <script src="../lib/sinon/sinon.js"></script>
<script src="../lib/sinon/sinon-qunit.js"></script> <script src="../lib/sinon/sinon-qunit.js"></script>
<script src="../jio.js"></script> <script src="../jio.js"></script>
<script src="jio/util.js"></script>
<script src="jio/fakestorage.js"></script>
<script src="jio/tests.js"></script> <script src="jio/tests.js"></script>
</body> </body>
</html> </html>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment