Commit b45474eb authored by amrani's avatar amrani

added callback to all storage and major change to crypto stoarge

parent 549b3ed8
This diff is collapsed.
...@@ -76,11 +76,12 @@ ...@@ -76,11 +76,12 @@
* @class DavStorage * @class DavStorage
* @constructor * @constructor
*/ */
function DavStorage(spec) { function DavStorage(spec, utils) {
if (typeof spec.url !== 'string') { if (typeof spec.url !== 'string') {
throw new TypeError("DavStorage 'url' is not of type string"); throw new TypeError("DavStorage 'url' is not of type string");
} }
this._url = spec.url; this._url = spec.url;
this._utils = utils;
// XXX digest login // XXX digest login
if (typeof spec.basic_login === 'string') { if (typeof spec.basic_login === 'string') {
this._authorization = "Basic " + spec.basic_login; this._authorization = "Basic " + spec.basic_login;
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
* @class DocumentStorage * @class DocumentStorage
* @constructor * @constructor
*/ */
function DocumentStorage(spec) { function DocumentStorage(spec, utils) {
this._sub_storage = jIO.createJIO(spec.sub_storage); this._utils = utils;
this._sub_storage = jIO.createJIO(spec.sub_storage, utils);
this._document_id = spec.document_id; this._document_id = spec.document_id;
this._repair_attachment = spec.repair_attachment || false; this._repair_attachment = spec.repair_attachment || false;
} }
......
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
* @class FileSystemBridgeStorage * @class FileSystemBridgeStorage
* @constructor * @constructor
*/ */
function FileSystemBridgeStorage(spec) { function FileSystemBridgeStorage(spec, utils) {
this._sub_storage = jIO.createJIO(spec.sub_storage); this._utils = utils;
this._sub_storage = jIO.createJIO(spec.sub_storage, utils);
} }
var DOCUMENT_EXTENSION = ".json", var DOCUMENT_EXTENSION = ".json",
DOCUMENT_KEY = "/.jio_documents/", DOCUMENT_KEY = "/.jio_documents/",
......
...@@ -105,11 +105,12 @@ ...@@ -105,11 +105,12 @@
* @class DropboxStorage * @class DropboxStorage
* @constructor * @constructor
*/ */
function DropboxStorage(spec) { function DropboxStorage(spec, utils) {
if (typeof spec.access_token !== 'string' || !spec.access_token) { if (typeof spec.access_token !== 'string' || !spec.access_token) {
throw new TypeError("Access Token' must be a string " + throw new TypeError("Access Token' must be a string " +
"which contains more than one character."); "which contains more than one character.");
} }
this._utils = utils;
this._access_token = spec.access_token; this._access_token = spec.access_token;
} }
...@@ -255,15 +256,12 @@ ...@@ -255,15 +256,12 @@
}) })
.push(function (evt) { .push(function (evt) {
if (evt.target.response instanceof Blob) { if (evt.target.response instanceof Blob) {
//create a new blob with type AES-GCM to decrypt back return evt.target.response;
var cryptblob = new Blob([evt.target.response],
{type: "application/x-jio-aes-gcm-encryption"});
return cryptblob;
} }
return new Blob( return new Blob(
[evt.target.responseText], [evt.target.responseText],
{"type": "application/x-jio-aes-gcm-encryption"} {"type": evt.target.getResponseHeader('Content-Type') ||
// evt.target.getResponseHeader('Content-Type') || "application/octet-stream"}
); );
}, function (error) { }, function (error) {
if (error.target !== undefined && error.target.status === 409) { if (error.target !== undefined && error.target.status === 409) {
......
...@@ -142,12 +142,13 @@ ...@@ -142,12 +142,13 @@
} }
// XXX docstring // XXX docstring
function ERP5Storage(spec) { function ERP5Storage(spec, utils) {
if (typeof spec.url !== "string" || !spec.url) { if (typeof spec.url !== "string" || !spec.url) {
throw new TypeError("ERP5 'url' must be a string " + throw new TypeError("ERP5 'url' must be a string " +
"which contains more than one character."); "which contains more than one character.");
} }
this._url = spec.url; this._url = spec.url;
this._utils = utils;
this._default_view_reference = spec.default_view_reference; this._default_view_reference = spec.default_view_reference;
} }
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
"{+access_token}", "{+access_token}",
get_feed_template = UriTemplate.parse(GET_FEED_URL); get_feed_template = UriTemplate.parse(GET_FEED_URL);
function FBStorage(spec) { function FBStorage(spec, utils) {
if (typeof spec.access_token !== 'string' || !spec.access_token) { if (typeof spec.access_token !== 'string' || !spec.access_token) {
throw new TypeError("Access Token must be a string " + throw new TypeError("Access Token must be a string " +
"which contains more than one character."); "which contains more than one character.");
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
throw new TypeError("User ID must be a string " + throw new TypeError("User ID must be a string " +
"which contains more than one character."); "which contains more than one character.");
} }
this._utils = utils;
this._access_token = spec.access_token; this._access_token = spec.access_token;
this._user_id = spec.user_id; this._user_id = spec.user_id;
this._default_field_list = spec.default_field_list || []; this._default_field_list = spec.default_field_list || [];
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
* @class GdriveStorage * @class GdriveStorage
* @constructor * @constructor
*/ */
function GdriveStorage(spec) { function GdriveStorage(spec, utils) {
if (spec === undefined || spec.access_token === undefined || if (spec === undefined || spec.access_token === undefined ||
typeof spec.access_token !== 'string') { typeof spec.access_token !== 'string') {
throw new TypeError("Access Token must be a string " + throw new TypeError("Access Token must be a string " +
...@@ -83,6 +83,7 @@ ...@@ -83,6 +83,7 @@
throw new TypeError("trashing parameter" + throw new TypeError("trashing parameter" +
" must be a boolean (true or false)"); " must be a boolean (true or false)");
} }
this._utils = utils;
this._trashing = spec.trashing || true; this._trashing = spec.trashing || true;
this._access_token = spec.access_token; this._access_token = spec.access_token;
return; return;
......
...@@ -283,8 +283,9 @@ ...@@ -283,8 +283,9 @@
* *
* @class GidStorage * @class GidStorage
*/ */
function GidStorage(spec) { function GidStorage(spec, utils) {
var that = this, priv = {}; var that = this, priv = {};
this._utils = utils;
priv.sub_storage = spec.sub_storage; priv.sub_storage = spec.sub_storage;
priv.constraints = spec.constraints || { priv.constraints = spec.constraints || {
......
...@@ -3,13 +3,14 @@ ...@@ -3,13 +3,14 @@
(function (jIO, RSVP, Blob) { (function (jIO, RSVP, Blob) {
"use strict"; "use strict";
function HttpStorage(spec) { function HttpStorage(spec, utils) {
if (spec.hasOwnProperty('catch_error')) { if (spec.hasOwnProperty('catch_error')) {
this._catch_error = spec.catch_error; this._catch_error = spec.catch_error;
} else { } else {
this._catch_error = false; this._catch_error = false;
} }
// If timeout not set, use 0 for no timeout value // If timeout not set, use 0 for no timeout value
this._utils = utils;
this._timeout = spec.timeout || 0; this._timeout = spec.timeout || 0;
} }
......
...@@ -38,12 +38,13 @@ ...@@ -38,12 +38,13 @@
// Read only as changing it can lead to data corruption // Read only as changing it can lead to data corruption
var UNITE = 2000000; var UNITE = 2000000;
function IndexedDBStorage(description) { function IndexedDBStorage(description, utils) {
if (typeof description.database !== "string" || if (typeof description.database !== "string" ||
description.database === "") { description.database === "") {
throw new TypeError("IndexedDBStorage 'database' description property " + throw new TypeError("IndexedDBStorage 'database' description property " +
"must be a non-empty string"); "must be a non-empty string");
} }
this._utils = utils;
this._database_name = "jio:" + description.database; this._database_name = "jio:" + description.database;
} }
......
...@@ -427,7 +427,7 @@ ...@@ -427,7 +427,7 @@
* @class IndexStorage * @class IndexStorage
* @constructor * @constructor
*/ */
function IndexStorage(spec) { function IndexStorage(spec, utils) {
var i; var i;
if (!Array.isArray(spec.indices)) { if (!Array.isArray(spec.indices)) {
throw new TypeError("IndexStorage 'indices' must be an array of " + throw new TypeError("IndexStorage 'indices' must be an array of " +
...@@ -451,6 +451,7 @@ ...@@ -451,6 +451,7 @@
"'indices[x].index' must be a string array"); "'indices[x].index' must be a string array");
} }
} }
this._utils = utils;
this._sub_storage = spec.sub_storage; this._sub_storage = spec.sub_storage;
} }
......
...@@ -24,7 +24,8 @@ ...@@ -24,7 +24,8 @@
(function (jIO, sessionStorage, localStorage, RSVP) { (function (jIO, sessionStorage, localStorage, RSVP) {
"use strict"; "use strict";
function LocalStorage(spec) { function LocalStorage(spec, utils) {
this._utils = utils;
if (spec.sessiononly === true) { if (spec.sessiononly === true) {
this._storage = sessionStorage; this._storage = sessionStorage;
} else { } else {
......
...@@ -29,8 +29,10 @@ ...@@ -29,8 +29,10 @@
* @class MemoryStorage * @class MemoryStorage
* @constructor * @constructor
*/ */
function MemoryStorage() { function MemoryStorage(spec, utils) {
this._spec = spec; //not used just for compatibility issue
this._database = {}; this._database = {};
this._utils = utils;
} }
MemoryStorage.prototype.put = function (id, metadata) { MemoryStorage.prototype.put = function (id, metadata) {
......
...@@ -205,8 +205,9 @@ ...@@ -205,8 +205,9 @@
* *
* @class MultiSplitStorage * @class MultiSplitStorage
*/ */
function MultiSplitStorage(spec) { function MultiSplitStorage(spec, utils) {
var that = this, priv = {}; var that = this, priv = {};
this._utils = utils;
/** /**
* The list of sub storages we want to use to store part of documents. * The list of sub storages we want to use to store part of documents.
......
...@@ -238,11 +238,12 @@ ...@@ -238,11 +238,12 @@
///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////
// Storage // Storage
///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////
function ParserStorage(spec) { function ParserStorage(spec, utils) {
this._utils = utils;
this._attachment_id = spec.attachment_id; this._attachment_id = spec.attachment_id;
this._document_id = spec.document_id; this._document_id = spec.document_id;
this._parser_name = spec.parser; this._parser_name = spec.parser;
this._sub_storage = jIO.createJIO(spec.sub_storage); this._sub_storage = jIO.createJIO(spec.sub_storage, utils);
} }
ParserStorage.prototype.hasCapacity = function (capacity) { ParserStorage.prototype.hasCapacity = function (capacity) {
......
...@@ -71,7 +71,8 @@ ...@@ -71,7 +71,8 @@
* @class QiniuStorage * @class QiniuStorage
* @constructor * @constructor
*/ */
function QiniuStorage(spec) { function QiniuStorage(spec, utils) {
this._utils = utils;
if (typeof spec.bucket !== 'string' && !spec.bucket) { if (typeof spec.bucket !== 'string' && !spec.bucket) {
throw new TypeError("Qiniu 'bucket' must be a string " + throw new TypeError("Qiniu 'bucket' must be a string " +
"which contains more than one character."); "which contains more than one character.");
......
...@@ -36,8 +36,9 @@ ...@@ -36,8 +36,9 @@
* @class QueryStorage * @class QueryStorage
* @constructor * @constructor
*/ */
function QueryStorage(spec) { function QueryStorage(spec, utils) {
this._sub_storage = jIO.createJIO(spec.sub_storage); this._utils = utils;
this._sub_storage = jIO.createJIO(spec.sub_storage, utils);
this._key_schema = {key_set: {}, cast_lookup: {}}; this._key_schema = {key_set: {}, cast_lookup: {}};
initKeySchema(this, spec); initKeySchema(this, spec);
} }
......
...@@ -53,18 +53,20 @@ ...@@ -53,18 +53,20 @@
return rusha.digestFromArrayBuffer(content); return rusha.digestFromArrayBuffer(content);
} }
function ReplicateStorage(spec) { function ReplicateStorage(spec, utils) {
this._utils = utils;
this._query_options = spec.query || {}; this._query_options = spec.query || {};
if (spec.signature_hash_key !== undefined) { if (spec.signature_hash_key !== undefined) {
this._query_options.select_list = [spec.signature_hash_key]; this._query_options.select_list = [spec.signature_hash_key];
} }
this._signature_hash_key = spec.signature_hash_key; this._signature_hash_key = spec.signature_hash_key;
this._local_sub_storage = jIO.createJIO(spec.local_sub_storage); this._local_sub_storage = jIO.createJIO(spec.local_sub_storage, utils);
this._remote_sub_storage = jIO.createJIO(spec.remote_sub_storage); this._remote_sub_storage = jIO.createJIO(spec.remote_sub_storage, utils);
if (spec.hasOwnProperty('signature_sub_storage')) { if (spec.hasOwnProperty('signature_sub_storage')) {
this._signature_sub_storage = jIO.createJIO(spec.signature_sub_storage); this._signature_sub_storage = jIO.createJIO(spec.signature_sub_storage,
utils);
this._custom_signature_sub_storage = true; this._custom_signature_sub_storage = true;
} else { } else {
this._signature_hash = "_replicate_" + generateHash( this._signature_hash = "_replicate_" + generateHash(
......
...@@ -16,8 +16,9 @@ ...@@ -16,8 +16,9 @@
var rusha = new Rusha(); var rusha = new Rusha();
function ShaStorage(spec) { function ShaStorage(spec, utils) {
this._sub_storage = jIO.createJIO(spec.sub_storage); this._utils = utils;
this._sub_storage = jIO.createJIO(spec.sub_storage, utils);
} }
ShaStorage.prototype.post = function (param) { ShaStorage.prototype.post = function (param) {
......
...@@ -32,14 +32,15 @@ ...@@ -32,14 +32,15 @@
* @class UnionStorage * @class UnionStorage
* @constructor * @constructor
*/ */
function UnionStorage(spec) { function UnionStorage(spec, utils) {
this._utils = utils;
if (!Array.isArray(spec.storage_list)) { if (!Array.isArray(spec.storage_list)) {
throw new jIO.util.jIOError("storage_list is not an Array", 400); throw new jIO.util.jIOError("storage_list is not an Array", 400);
} }
var i; var i;
this._storage_list = []; this._storage_list = [];
for (i = 0; i < spec.storage_list.length; i += 1) { for (i = 0; i < spec.storage_list.length; i += 1) {
this._storage_list.push(jIO.createJIO(spec.storage_list[i])); this._storage_list.push(jIO.createJIO(spec.storage_list[i], utils));
} }
} }
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
* @class UUIDStorage * @class UUIDStorage
* @constructor * @constructor
*/ */
function UUIDStorage(spec) { function UUIDStorage(spec, utils) {
this._sub_storage = jIO.createJIO(spec.sub_storage); this._utils = utils;
this._sub_storage = jIO.createJIO(spec.sub_storage, utils);
} }
UUIDStorage.prototype.get = function () { UUIDStorage.prototype.get = function () {
......
...@@ -69,7 +69,8 @@ ...@@ -69,7 +69,8 @@
}); });
} }
function WebSQLStorage(spec) { function WebSQLStorage(spec, utils) {
this._utils = utils;
if (typeof spec.database !== 'string' || !spec.database) { if (typeof spec.database !== 'string' || !spec.database) {
throw new TypeError("database must be a string " + throw new TypeError("database must be a string " +
"which contains more than one character."); "which contains more than one character.");
......
...@@ -12,8 +12,9 @@ ...@@ -12,8 +12,9 @@
var MIME_TYPE = "application/x-jio-utf16_lz_string"; var MIME_TYPE = "application/x-jio-utf16_lz_string";
function ZipStorage(spec) { function ZipStorage(spec, utils) {
this._sub_storage = jIO.createJIO(spec.sub_storage); this._utils = utils;
this._sub_storage = jIO.createJIO(spec.sub_storage, utils);
} }
ZipStorage.prototype.get = function () { ZipStorage.prototype.get = function () {
......
This diff is collapsed.
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
domain = "https://example.org", domain = "https://example.org",
basic_login = "login:passwd"; basic_login = "login:passwd",
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// davStorage constructor // davStorage constructor
...@@ -30,6 +31,15 @@ ...@@ -30,6 +31,15 @@
deepEqual(jio.__storage._with_credentials, undefined); deepEqual(jio.__storage._with_credentials, undefined);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "dav",
url: domain
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
test("Storage store basic login", function () { test("Storage store basic login", function () {
var jio = jIO.createJIO({ var jio = jIO.createJIO({
type: "dav", type: "dav",
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
expect = QUnit.expect, expect = QUnit.expect,
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module; module = QUnit.module,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom test substorage definition // Custom test substorage definition
...@@ -19,6 +20,13 @@ ...@@ -19,6 +20,13 @@
} }
jIO.addStorage('documentstorage200', Storage200); jIO.addStorage('documentstorage200', Storage200);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('documentstoragecallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// documentStorage.constructor // documentStorage.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -38,6 +46,19 @@ ...@@ -38,6 +46,19 @@
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "document",
sub_storage: {
type: "documentstoragecallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._sub_storage.__storage._utils.callback(), true);
});
test("accept parameters", function () { test("accept parameters", function () {
var jio = jIO.createJIO({ var jio = jIO.createJIO({
type: "document", type: "document",
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
expect = QUnit.expect, expect = QUnit.expect,
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module; module = QUnit.module,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom test substorage definition // Custom test substorage definition
...@@ -19,6 +20,13 @@ ...@@ -19,6 +20,13 @@
} }
jIO.addStorage('drivetojiomapping200', Storage200); jIO.addStorage('drivetojiomapping200', Storage200);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('drivetojiomappingcallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// driveToJioMapping.constructor // driveToJioMapping.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -36,6 +44,19 @@ ...@@ -36,6 +44,19 @@
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "drivetojiomapping",
sub_storage: {
type: "drivetojiomappingcallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._sub_storage.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// driveToJioMapping.get // driveToJioMapping.get
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
token = "sample_token"; token = "sample_token",
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// DropboxStorage constructor // DropboxStorage constructor
...@@ -26,6 +27,15 @@ ...@@ -26,6 +27,15 @@
deepEqual(jio.__storage._access_token, token); deepEqual(jio.__storage._access_token, token);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "dropbox",
access_token: token
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// DropboxStorage.put // DropboxStorage.put
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
domain = "https://example.org", domain = "https://example.org",
utils = {callback: function () {return true; }},
traverse_template = domain + "?mode=traverse{&relative_url,view}", traverse_template = domain + "?mode=traverse{&relative_url,view}",
search_template = domain + "?mode=search{&query,select_list*,limit*," + search_template = domain + "?mode=search{&query,select_list*,limit*," +
"sort_on*,local_roles*,selection_domain*}", "sort_on*,local_roles*,selection_domain*}",
...@@ -50,6 +51,15 @@ ...@@ -50,6 +51,15 @@
deepEqual(jio.__storage._default_view_reference, "bar_view"); deepEqual(jio.__storage._default_view_reference, "bar_view");
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "erp5",
url: domain
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// erp5Storage.get // erp5Storage.get
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
module = QUnit.module, module = QUnit.module,
throws = QUnit.throws, throws = QUnit.throws,
token = "sample_token", token = "sample_token",
user_id = "sample_user_id"; user_id = "sample_user_id",
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Facebook Storage constructor // Facebook Storage constructor
...@@ -31,6 +32,16 @@ ...@@ -31,6 +32,16 @@
deepEqual(jio.__storage._user_id, user_id); deepEqual(jio.__storage._user_id, user_id);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "facebook",
access_token: token,
user_id: user_id
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
test("reject non string token", function () { test("reject non string token", function () {
throws( throws(
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
module = QUnit.module, module = QUnit.module,
throws = QUnit.throws, throws = QUnit.throws,
token = "sample_token", token = "sample_token",
utils = {callback: function () {return true; }},
domain = "https://www.googleapis.com", domain = "https://www.googleapis.com",
boundary = "---------314159265358979323846", boundary = "---------314159265358979323846",
list_url = domain + "/drive/v2/files" + list_url = domain + "/drive/v2/files" +
...@@ -58,6 +59,15 @@ ...@@ -58,6 +59,15 @@
deepEqual(jio.__storage._access_token, token); deepEqual(jio.__storage._access_token, token);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "gdrive",
access_token: token
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
test("reject invalid trashing parameter", function () { test("reject invalid trashing parameter", function () {
throws( throws(
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
domain = "https://example.org"; domain = "https://example.org",
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// davStorage constructor // davStorage constructor
...@@ -27,6 +28,14 @@ ...@@ -27,6 +28,14 @@
deepEqual(jio.__storage._timeout, 0); deepEqual(jio.__storage._timeout, 0);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "http"
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
test("Storage store catch_error", function () { test("Storage store catch_error", function () {
var jio = jIO.createJIO({ var jio = jIO.createJIO({
type: "http", type: "http",
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
big_string = "", big_string = "",
utils = {callback: function () {return true; }},
j; j;
for (j = 0; j < 3000000; j += 1) { for (j = 0; j < 3000000; j += 1) {
...@@ -48,6 +49,15 @@ ...@@ -48,6 +49,15 @@
deepEqual(jio.__storage._database_name, "jio:qunit"); deepEqual(jio.__storage._database_name, "jio:qunit");
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "indexeddb",
database: "qunit"
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// documentStorage.hasCapacity // documentStorage.hasCapacity
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
expect = QUnit.expect, expect = QUnit.expect,
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module; module = QUnit.module,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// localStorage.constructor // localStorage.constructor
...@@ -26,6 +27,14 @@ ...@@ -26,6 +27,14 @@
equal(jio.__storage._storage, localStorage); equal(jio.__storage._storage, localStorage);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "local"
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
test("sessiononly", function () { test("sessiononly", function () {
var jio = jIO.createJIO({ var jio = jIO.createJIO({
type: "local", type: "local",
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
expect = QUnit.expect, expect = QUnit.expect,
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module; module = QUnit.module,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// memoryStorage constructor // memoryStorage constructor
...@@ -25,6 +26,14 @@ ...@@ -25,6 +26,14 @@
deepEqual(jio.__storage._database, {}); deepEqual(jio.__storage._database, {});
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "memory"
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
test("Storage's memory database is not shared", function () { test("Storage's memory database is not shared", function () {
var jio = jIO.createJIO({ var jio = jIO.createJIO({
"type": "memory" "type": "memory"
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
expect = QUnit.expect, expect = QUnit.expect,
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module; module = QUnit.module,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom RSS test substorage definition // Custom RSS test substorage definition
...@@ -51,6 +52,18 @@ ...@@ -51,6 +52,18 @@
}; };
jIO.addStorage('rssstorage200', RSSStorage200); jIO.addStorage('rssstorage200', RSSStorage200);
/////////////////////////////////////////////////////////////////
// Custom callback test substorage definition
/////////////////////////////////////////////////////////////////
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('parsestoragecallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom atom test substorage definition // Custom atom test substorage definition
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -174,6 +187,19 @@ ...@@ -174,6 +187,19 @@
equal(jio.__storage._parser, undefined); equal(jio.__storage._parser, undefined);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "parser",
sub_storage: {
type: "parsestoragecallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._sub_storage.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// ParserStorage.allDocs // ParserStorage.allDocs
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
bucket: bucket, bucket: bucket,
access_key: access_key, access_key: access_key,
secret_key: secret_key secret_key: secret_key
}; },
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// qiniuStorage constructor // qiniuStorage constructor
...@@ -34,6 +35,14 @@ ...@@ -34,6 +35,14 @@
deepEqual(jio.__storage._secret_key, qiniu_spec.secret_key); deepEqual(jio.__storage._secret_key, qiniu_spec.secret_key);
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "qiniu"
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// qiniuStorage.get // qiniuStorage.get
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
throws = QUnit.throws; throws = QUnit.throws,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom test substorage definition // Custom test substorage definition
...@@ -20,6 +21,13 @@ ...@@ -20,6 +21,13 @@
} }
jIO.addStorage('querystorage200', Storage200); jIO.addStorage('querystorage200', Storage200);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('querystoragecallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// queryStorage.constructor // queryStorage.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -45,6 +53,19 @@ ...@@ -45,6 +53,19 @@
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "query",
sub_storage: {
type: "querystoragecallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._sub_storage.__storage._utils.callback(), true);
});
test("failed on wrond schema", function () { test("failed on wrond schema", function () {
throws( throws(
function () { function () {
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
module = QUnit.module, module = QUnit.module,
throws = QUnit.throws, throws = QUnit.throws,
big_string = "", big_string = "",
utils = {callback: function () {return true; }},
j; j;
for (j = 0; j < 30; j += 1) { for (j = 0; j < 30; j += 1) {
...@@ -36,6 +37,27 @@ ...@@ -36,6 +37,27 @@
} }
jIO.addStorage('signaturestorage2713', Storage2713); jIO.addStorage('signaturestorage2713', Storage2713);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('localcallback', Storagecallback);
function Storagecallback1(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('replicatecallback', Storagecallback1);
function Storagecallback2(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('signaturecallback', Storagecallback2);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// replicateStorage.constructor // replicateStorage.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -103,6 +125,30 @@ ...@@ -103,6 +125,30 @@
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "replicate",
local_sub_storage: {
type: "localcallback"
},
remote_sub_storage: {
type: "replicatecallback"
},
signature_sub_storage: {
type: "signaturecallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._local_sub_storage.__storage.
_utils.callback(), true);
deepEqual(jio.__storage._remote_sub_storage.__storage.
_utils.callback(), true);
deepEqual(jio.__storage._signature_sub_storage.__storage.
_utils.callback(), true);
});
test("accept parameters", function () { test("accept parameters", function () {
var jio = jIO.createJIO({ var jio = jIO.createJIO({
type: "replicate", type: "replicate",
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
throws = QUnit.throws; throws = QUnit.throws,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom test substorage definition // Custom test substorage definition
...@@ -20,6 +21,13 @@ ...@@ -20,6 +21,13 @@
} }
jIO.addStorage('shastorage200', Storage200); jIO.addStorage('shastorage200', Storage200);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('shastoragecallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// shaStorage.constructor // shaStorage.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -37,6 +45,19 @@ ...@@ -37,6 +45,19 @@
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "document",
sub_storage: {
type: "shastoragecallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._sub_storage.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// shaStorage.get // shaStorage.get
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
throws = QUnit.throws, throws = QUnit.throws,
frozen_blob = new Blob(["foobar"]); frozen_blob = new Blob(["foobar"]),
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom test substorage definition // Custom test substorage definition
...@@ -115,6 +116,13 @@ ...@@ -115,6 +116,13 @@
Storage500.prototype.repair = generateError; Storage500.prototype.repair = generateError;
jIO.addStorage('unionstorage500', Storage500); jIO.addStorage('unionstorage500', Storage500);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('unioncallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// unionStorage.constructor // unionStorage.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -145,6 +153,20 @@ ...@@ -145,6 +153,20 @@
equal(jio.__storage._storage_list[1].__type, "unionstorage200"); equal(jio.__storage._storage_list[1].__type, "unionstorage200");
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "union",
storage_list: [{
type: "unioncallback"
}]
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._storage_list["0"].
__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// unionStorage.get // unionStorage.get
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
module = QUnit.module, module = QUnit.module,
throws = QUnit.throws; throws = QUnit.throws,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom test substorage definition // Custom test substorage definition
...@@ -20,6 +21,13 @@ ...@@ -20,6 +21,13 @@
} }
jIO.addStorage('uuidstorage200', Storage200); jIO.addStorage('uuidstorage200', Storage200);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('uuidcallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// uuidStorage.constructor // uuidStorage.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -37,6 +45,19 @@ ...@@ -37,6 +45,19 @@
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "uuid",
sub_storage: {
type: "uuidcallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._sub_storage.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// uuidStorage.get // uuidStorage.get
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
deepEqual = QUnit.deepEqual, deepEqual = QUnit.deepEqual,
equal = QUnit.equal, equal = QUnit.equal,
throws = QUnit.throws, throws = QUnit.throws,
module = QUnit.module; module = QUnit.module,
utils = {callback: function () {return true; }};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Custom test substorage definition // Custom test substorage definition
...@@ -20,6 +21,13 @@ ...@@ -20,6 +21,13 @@
} }
jIO.addStorage('zipstorage200', Storage200); jIO.addStorage('zipstorage200', Storage200);
function Storagecallback(spec, utils) {
this._spec = spec;
this._utils = utils;
return this;
}
jIO.addStorage('zipstoragecallback', Storagecallback);
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// ZipStorage.constructor // ZipStorage.constructor
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -33,6 +41,19 @@ ...@@ -33,6 +41,19 @@
equal(jio.__storage._sub_storage.__type, "zipstorage200"); equal(jio.__storage._sub_storage.__type, "zipstorage200");
}); });
test("Test callback", function () {
var jio = jIO.createJIO({
type: "document",
sub_storage: {
type: "zipstoragecallback"
}
}, utils);
deepEqual(jio.__storage._utils.callback(), true);
deepEqual(jio.__storage._sub_storage.__storage._utils.callback(), true);
});
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// ZipStorage.get // ZipStorage.get
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
......
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