2008-06-16 18:08:37 -07:00
|
|
|
Cu.import("resource://weave/log4moz.js");
|
|
|
|
Cu.import("resource://weave/async.js");
|
|
|
|
Cu.import("resource://weave/crypto.js");
|
|
|
|
|
2008-06-18 16:51:54 -07:00
|
|
|
let __fakePrefs = {
|
|
|
|
"log.logger.async" : "Debug",
|
|
|
|
"username" : "foo",
|
|
|
|
"serverURL" : "https://example.com/",
|
2008-06-18 17:33:44 -07:00
|
|
|
"encryption" : "aes-256-cbc",
|
2008-06-18 16:51:54 -07:00
|
|
|
"enabled" : true,
|
|
|
|
"schedule" : 0
|
2008-06-17 11:45:13 -07:00
|
|
|
};
|
|
|
|
|
2008-06-18 16:51:54 -07:00
|
|
|
let __fakeDAVContents = {
|
|
|
|
"meta/version" : "2",
|
|
|
|
"private/privkey" : "fake private key"
|
|
|
|
};
|
2008-06-17 11:45:13 -07:00
|
|
|
|
2008-06-18 16:51:54 -07:00
|
|
|
let __fakePasswords = {
|
|
|
|
'Mozilla Services Password': {foo: "bar"},
|
|
|
|
'Mozilla Services Encryption Passphrase': {foo: "passphrase"}
|
2008-06-17 19:54:09 -07:00
|
|
|
};
|
|
|
|
|
2008-06-16 18:08:37 -07:00
|
|
|
Crypto.__proto__ = {
|
|
|
|
RSAkeydecrypt: function fake_RSAkeydecrypt(identity) {
|
|
|
|
let self = yield;
|
|
|
|
|
|
|
|
if (identity.password == "passphrase" &&
|
|
|
|
identity.privkey == "fake private key")
|
|
|
|
self.done("fake public key");
|
|
|
|
else
|
|
|
|
throw new Error("Unexpected identity information.");
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
let Service = loadInSandbox("resource://weave/service.js");
|
|
|
|
|
|
|
|
function TestService() {
|
2008-06-17 19:54:09 -07:00
|
|
|
this.__superclassConstructor = Service.WeaveSvc;
|
|
|
|
this.__superclassConstructor([]);
|
2008-06-16 18:08:37 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
TestService.prototype = {
|
2008-06-17 19:54:09 -07:00
|
|
|
_initLogs: function TS__initLogs() {
|
|
|
|
this._log = Log4Moz.Service.getLogger("Service.Main");
|
|
|
|
}
|
2008-06-16 18:08:37 -07:00
|
|
|
};
|
|
|
|
TestService.prototype.__proto__ = Service.WeaveSvc.prototype;
|
|
|
|
|
|
|
|
function test_login_works() {
|
2008-06-18 16:51:54 -07:00
|
|
|
var fds = new FakeDAVService(__fakeDAVContents);
|
|
|
|
var fprefs = new FakePrefService(__fakePrefs);
|
|
|
|
var fpasses = new FakePasswordService(__fakePasswords);
|
2008-06-16 18:08:37 -07:00
|
|
|
var fts = new FakeTimerService();
|
|
|
|
var logStats = initTestLogging();
|
|
|
|
var testService = new TestService();
|
|
|
|
var finished = false;
|
|
|
|
var successful = false;
|
|
|
|
var onComplete = function(result) {
|
|
|
|
finished = true;
|
|
|
|
successful = result;
|
|
|
|
};
|
|
|
|
|
|
|
|
testService.login(onComplete);
|
|
|
|
|
|
|
|
while (fts.processCallback()) {}
|
|
|
|
|
|
|
|
do_check_true(finished);
|
|
|
|
do_check_true(successful);
|
|
|
|
do_check_eq(logStats.errorsLogged, 0);
|
2008-06-20 13:58:56 -07:00
|
|
|
do_check_eq(Async.outstandingGenerators.length, 0);
|
2008-06-16 18:08:37 -07:00
|
|
|
}
|