зеркало из https://github.com/mozilla/gecko-dev.git
Refactoring; moved code out of test_service.js and into unit/head.js for use by other tests.
This commit is contained in:
Родитель
6e83ffc460
Коммит
cb0d33d536
|
@ -114,3 +114,72 @@ function makeAsyncTestRunner(generator) {
|
|||
|
||||
return run_test;
|
||||
}
|
||||
|
||||
function FakePrefService(contents) {
|
||||
Cu.import("resource://weave/util.js");
|
||||
this.fakeContents = contents;
|
||||
Utils.__prefs = this;
|
||||
}
|
||||
|
||||
FakePrefService.prototype = {
|
||||
_getPref: function fake__getPref(pref) {
|
||||
Log4Moz.Service.rootLogger.trace("Getting pref: " + pref);
|
||||
return this.fakeContents[pref];
|
||||
},
|
||||
getCharPref: function fake_getCharPref(pref) {
|
||||
return this._getPref(pref);
|
||||
},
|
||||
getBoolPref: function fake_getBoolPref(pref) {
|
||||
return this._getPref(pref);
|
||||
},
|
||||
getIntPref: function fake_getIntPref(pref) {
|
||||
return this._getPref(pref);
|
||||
},
|
||||
addObserver: function fake_addObserver() {}
|
||||
};
|
||||
|
||||
function makeFakeAsyncFunc(retval) {
|
||||
Cu.import("resource://weave/async.js");
|
||||
Function.prototype.async = Async.sugar;
|
||||
|
||||
function fakeAsyncFunc() {
|
||||
let self = yield;
|
||||
|
||||
Utils.makeTimerForCall(self.cb);
|
||||
yield;
|
||||
|
||||
self.done(retval);
|
||||
}
|
||||
|
||||
return fakeAsyncFunc;
|
||||
}
|
||||
|
||||
function FakeDAVService(contents) {
|
||||
Cu.import("resource://weave/dav.js");
|
||||
|
||||
this.fakeContents = contents;
|
||||
DAV.__proto__ = this;
|
||||
this.checkLogin = makeFakeAsyncFunc(true);
|
||||
}
|
||||
|
||||
FakeDAVService.prototype = {
|
||||
GET: function fake_GET(path, onComplete) {
|
||||
Log4Moz.Service.rootLogger.info("Retrieving " + path);
|
||||
var result = {status: 404};
|
||||
if (path in this.fakeContents)
|
||||
result = {status: 200, responseText: this.fakeContents[path]};
|
||||
|
||||
return makeFakeAsyncFunc(result).async(this, onComplete);
|
||||
}
|
||||
};
|
||||
|
||||
function FakePasswordService(contents) {
|
||||
Cu.import("resource://weave/util.js");
|
||||
|
||||
this.fakeContents = contents;
|
||||
let self = this;
|
||||
|
||||
Utils.findPassword = function fake_findPassword(realm, username) {
|
||||
return self.fakeContents[realm][username];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,59 +1,24 @@
|
|||
Cu.import("resource://weave/log4moz.js");
|
||||
Cu.import("resource://weave/wrap.js");
|
||||
Cu.import("resource://weave/async.js");
|
||||
Cu.import("resource://weave/util.js");
|
||||
Cu.import("resource://weave/dav.js");
|
||||
Cu.import("resource://weave/crypto.js");
|
||||
Cu.import("resource://weave/identity.js");
|
||||
|
||||
Function.prototype.async = Async.sugar;
|
||||
|
||||
function makeFakeAsyncFunc(retval) {
|
||||
function fakeAsyncFunc() {
|
||||
let self = yield;
|
||||
|
||||
Utils.makeTimerForCall(self.cb);
|
||||
yield;
|
||||
|
||||
self.done(retval);
|
||||
}
|
||||
|
||||
return fakeAsyncFunc;
|
||||
}
|
||||
|
||||
function FakePrefs() {}
|
||||
|
||||
FakePrefs.prototype = {
|
||||
__contents: {"log.logger.async" : "Debug",
|
||||
"username" : "foo",
|
||||
"serverURL" : "https://example.com/",
|
||||
"encryption" : true,
|
||||
"enabled" : true,
|
||||
"schedule" : 0},
|
||||
_getPref: function fake__getPref(pref) {
|
||||
Log4Moz.Service.rootLogger.trace("Getting pref: " + pref);
|
||||
return this.__contents[pref];
|
||||
},
|
||||
getCharPref: function fake_getCharPref(pref) {
|
||||
return this._getPref(pref);
|
||||
},
|
||||
getBoolPref: function fake_getBoolPref(pref) {
|
||||
return this._getPref(pref);
|
||||
},
|
||||
getIntPref: function fake_getIntPref(pref) {
|
||||
return this._getPref(pref);
|
||||
},
|
||||
addObserver: function fake_addObserver() {}
|
||||
let __fakePrefs = {
|
||||
"log.logger.async" : "Debug",
|
||||
"username" : "foo",
|
||||
"serverURL" : "https://example.com/",
|
||||
"encryption" : true,
|
||||
"enabled" : true,
|
||||
"schedule" : 0
|
||||
};
|
||||
|
||||
Utils.__prefs = new FakePrefs();
|
||||
let __fakeDAVContents = {
|
||||
"meta/version" : "2",
|
||||
"private/privkey" : "fake private key"
|
||||
};
|
||||
|
||||
Utils.findPassword = function fake_findPassword(realm, username) {
|
||||
let contents = {
|
||||
'Mozilla Services Password': {foo: "bar"},
|
||||
'Mozilla Services Encryption Passphrase': {foo: "passphrase"}
|
||||
};
|
||||
return contents[realm][username];
|
||||
let __fakePasswords = {
|
||||
'Mozilla Services Password': {foo: "bar"},
|
||||
'Mozilla Services Encryption Passphrase': {foo: "passphrase"}
|
||||
};
|
||||
|
||||
Crypto.__proto__ = {
|
||||
|
@ -68,22 +33,6 @@ Crypto.__proto__ = {
|
|||
}
|
||||
};
|
||||
|
||||
DAV.__proto__ = {
|
||||
checkLogin: makeFakeAsyncFunc(true),
|
||||
|
||||
__contents: {"meta/version" : "2",
|
||||
"private/privkey" : "fake private key"},
|
||||
|
||||
GET: function fake_GET(path, onComplete) {
|
||||
Log4Moz.Service.rootLogger.info("Retrieving " + path);
|
||||
var result = {status: 404};
|
||||
if (path in this.__contents)
|
||||
result = {status: 200, responseText: this.__contents[path]};
|
||||
|
||||
return makeFakeAsyncFunc(result).async(this, onComplete);
|
||||
}
|
||||
};
|
||||
|
||||
let Service = loadInSandbox("resource://weave/service.js");
|
||||
|
||||
function TestService() {
|
||||
|
@ -99,6 +48,9 @@ TestService.prototype = {
|
|||
TestService.prototype.__proto__ = Service.WeaveSvc.prototype;
|
||||
|
||||
function test_login_works() {
|
||||
var fds = new FakeDAVService(__fakeDAVContents);
|
||||
var fprefs = new FakePrefService(__fakePrefs);
|
||||
var fpasses = new FakePasswordService(__fakePasswords);
|
||||
var fts = new FakeTimerService();
|
||||
var logStats = initTestLogging();
|
||||
var testService = new TestService();
|
||||
|
@ -116,4 +68,5 @@ function test_login_works() {
|
|||
do_check_true(finished);
|
||||
do_check_true(successful);
|
||||
do_check_eq(logStats.errorsLogged, 0);
|
||||
do_check_eq(Async.outstandingGenerators, 0);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче