diff options
Diffstat (limited to 'toolkit/identity/tests/unit/test_relying_party.js')
-rw-r--r-- | toolkit/identity/tests/unit/test_relying_party.js | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/toolkit/identity/tests/unit/test_relying_party.js b/toolkit/identity/tests/unit/test_relying_party.js deleted file mode 100644 index e78d22779..000000000 --- a/toolkit/identity/tests/unit/test_relying_party.js +++ /dev/null @@ -1,255 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -XPCOMUtils.defineLazyModuleGetter(this, "RelyingParty", - "resource://gre/modules/identity/RelyingParty.jsm"); - -function resetState() { - get_idstore().reset(); - RelyingParty.reset(); -} - -function test_watch_loggedin_ready() { - do_test_pending(); - - resetState(); - - let id = TEST_USER; - setup_test_identity(id, TEST_CERT, function() { - let store = get_idstore(); - - // set it up so we're supposed to be logged in to TEST_URL - store.setLoginState(TEST_URL, true, id); - RelyingParty.watch(mock_doc(id, TEST_URL, function(action, params) { - do_check_eq(action, 'ready'); - do_check_eq(params, undefined); - - do_test_finished(); - run_next_test(); - })); - }); -} - -function test_watch_loggedin_login() { - do_test_pending(); - - resetState(); - - let id = TEST_USER; - setup_test_identity(id, TEST_CERT, function() { - let store = get_idstore(); - - // set it up so we're supposed to be logged in to TEST_URL - store.setLoginState(TEST_URL, true, id); - - // check for first a login() call, then a ready() call - RelyingParty.watch(mock_doc(null, TEST_URL, call_sequentially( - function(action, params) { - do_check_eq(action, 'login'); - do_check_neq(params, null); - }, - function(action, params) { - do_check_eq(action, 'ready'); - do_check_null(params); - - do_test_finished(); - run_next_test(); - } - ))); - }); -} - -function test_watch_loggedin_logout() { - do_test_pending(); - - resetState(); - - let id = TEST_USER; - let other_id = "otherid@foo.com"; - setup_test_identity(other_id, TEST_CERT, function() { - setup_test_identity(id, TEST_CERT, function() { - let store = get_idstore(); - - // set it up so we're supposed to be logged in to TEST_URL - // with id, not other_id - store.setLoginState(TEST_URL, true, id); - - // this should cause a login with an assertion for id, - // not for other_id - RelyingParty.watch(mock_doc(other_id, TEST_URL, call_sequentially( - function(action, params) { - do_check_eq(action, 'login'); - do_check_neq(params, null); - }, - function(action, params) { - do_check_eq(action, 'ready'); - do_check_null(params); - - do_test_finished(); - run_next_test(); - } - ))); - }); - }); -} - -function test_watch_notloggedin_ready() { - do_test_pending(); - - resetState(); - - RelyingParty.watch(mock_doc(null, TEST_URL, function(action, params) { - do_check_eq(action, 'ready'); - do_check_eq(params, undefined); - - do_test_finished(); - run_next_test(); - })); -} - -function test_watch_notloggedin_logout() { - do_test_pending(); - - resetState(); - - RelyingParty.watch(mock_doc(TEST_USER, TEST_URL, call_sequentially( - function(action, params) { - do_check_eq(action, 'logout'); - do_check_eq(params, undefined); - - let store = get_idstore(); - do_check_null(store.getLoginState(TEST_URL)); - }, - function(action, params) { - do_check_eq(action, 'ready'); - do_check_eq(params, undefined); - do_test_finished(); - run_next_test(); - } - ))); -} - -function test_request() { - do_test_pending(); - - // set up a watch, to be consistent - let mockedDoc = mock_doc(null, TEST_URL, function(action, params) { - // this isn't going to be called for now - // XXX but it is called - is that bad? - }); - - RelyingParty.watch(mockedDoc); - - // be ready for the UX identity-request notification - makeObserver("identity-request", function (aSubject, aTopic, aData) { - do_check_neq(aSubject, null); - - do_check_eq(aSubject.wrappedJSObject.rpId, mockedDoc.id); - - do_test_finished(); - run_next_test(); - }); - - RelyingParty.request(mockedDoc.id, {}); -} - -/* - * ensure the forceAuthentication param can be passed through - */ -function test_request_forceAuthentication() { - do_test_pending(); - - let mockedDoc = mock_doc(null, TEST_URL, function(action, params) {}); - - RelyingParty.watch(mockedDoc); - - makeObserver("identity-request", function(aSubject, aTopic, aData) { - do_check_eq(aSubject.wrappedJSObject.rpId, mockedDoc.id); - do_check_eq(aSubject.wrappedJSObject.forceAuthentication, true); - do_test_finished(); - run_next_test(); - }); - - RelyingParty.request(mockedDoc.id, {forceAuthentication: true}); -} - -/* - * ensure the issuer can be forced - */ -function test_request_forceIssuer() { - do_test_pending(); - - let mockedDoc = mock_doc(null, TEST_URL, function(action, params) {}); - - RelyingParty.watch(mockedDoc); - - makeObserver("identity-request", function(aSubject, aTopic, aData) { - do_check_eq(aSubject.wrappedJSObject.rpId, mockedDoc.id); - do_check_eq(aSubject.wrappedJSObject.issuer, "https://ozten.co.uk"); - do_test_finished(); - run_next_test(); - }); - - RelyingParty.request(mockedDoc.id, {issuer: "https://ozten.co.uk"}); -} -function test_logout() { - do_test_pending(); - - resetState(); - - let id = TEST_USER; - setup_test_identity(id, TEST_CERT, function() { - let store = get_idstore(); - - // set it up so we're supposed to be logged in to TEST_URL - store.setLoginState(TEST_URL, true, id); - - let doLogout; - let mockedDoc = mock_doc(id, TEST_URL, call_sequentially( - function(action, params) { - do_check_eq(action, 'ready'); - do_check_eq(params, undefined); - - do_timeout(100, doLogout); - }, - function(action, params) { - do_check_eq(action, 'logout'); - do_check_eq(params, undefined); - }, - function(action, params) { - do_check_eq(action, 'ready'); - do_check_eq(params, undefined); - - do_test_finished(); - run_next_test(); - })); - - doLogout = function() { - RelyingParty.logout(mockedDoc.id); - do_check_false(store.getLoginState(TEST_URL).isLoggedIn); - do_check_eq(store.getLoginState(TEST_URL).email, TEST_USER); - }; - - RelyingParty.watch(mockedDoc); - }); -} - -var TESTS = [ - test_watch_loggedin_ready, - test_watch_loggedin_login, - test_watch_loggedin_logout, - test_watch_notloggedin_ready, - test_watch_notloggedin_logout, - test_request, - test_request_forceAuthentication, - test_request_forceIssuer, - test_logout, -]; - -TESTS.forEach(add_test); - -function run_test() { - run_next_test(); -} |