|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 "use strict"; |
|
5 |
|
6 XPCOMUtils.defineLazyModuleGetter(this, "IDService", |
|
7 "resource://gre/modules/identity/Identity.jsm", |
|
8 "IdentityService"); |
|
9 |
|
10 function test_id_store() { |
|
11 // XXX - this is ugly, peaking in like this into IDService |
|
12 // probably should instantiate our own. |
|
13 var store = get_idstore(); |
|
14 |
|
15 // try adding an identity |
|
16 store.addIdentity(TEST_USER, TEST_PRIVKEY, TEST_CERT); |
|
17 do_check_neq(store.getIdentities()[TEST_USER], null); |
|
18 do_check_eq(store.getIdentities()[TEST_USER].cert, TEST_CERT); |
|
19 |
|
20 // does fetch identity work? |
|
21 do_check_neq(store.fetchIdentity(TEST_USER), null); |
|
22 do_check_eq(store.fetchIdentity(TEST_USER).cert, TEST_CERT); |
|
23 |
|
24 // clear the cert should keep the identity but not the cert |
|
25 store.clearCert(TEST_USER); |
|
26 do_check_neq(store.getIdentities()[TEST_USER], null); |
|
27 do_check_null(store.getIdentities()[TEST_USER].cert); |
|
28 |
|
29 // remove it should remove everything |
|
30 store.removeIdentity(TEST_USER); |
|
31 do_check_eq(store.getIdentities()[TEST_USER], undefined); |
|
32 |
|
33 // act like we're logged in to TEST_URL |
|
34 store.setLoginState(TEST_URL, true, TEST_USER); |
|
35 do_check_neq(store.getLoginState(TEST_URL), null); |
|
36 do_check_true(store.getLoginState(TEST_URL).isLoggedIn); |
|
37 do_check_eq(store.getLoginState(TEST_URL).email, TEST_USER); |
|
38 |
|
39 // log out |
|
40 store.setLoginState(TEST_URL, false, TEST_USER); |
|
41 do_check_neq(store.getLoginState(TEST_URL), null); |
|
42 do_check_false(store.getLoginState(TEST_URL).isLoggedIn); |
|
43 |
|
44 // email is still set |
|
45 do_check_eq(store.getLoginState(TEST_URL).email, TEST_USER); |
|
46 |
|
47 // not logged into other site |
|
48 do_check_null(store.getLoginState(TEST_URL2)); |
|
49 |
|
50 // clear login state |
|
51 store.clearLoginState(TEST_URL); |
|
52 do_check_null(store.getLoginState(TEST_URL)); |
|
53 do_check_null(store.getLoginState(TEST_URL2)); |
|
54 |
|
55 run_next_test(); |
|
56 } |
|
57 |
|
58 let TESTS = [test_id_store,]; |
|
59 |
|
60 TESTS.forEach(add_test); |
|
61 |
|
62 function run_test() { |
|
63 run_next_test(); |
|
64 } |