mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-25 09:57:32 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
223
toolkit/identity/tests/unit/test_minimalidentity.js
Normal file
223
toolkit/identity/tests/unit/test_minimalidentity.js
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "MinimalIDService",
|
||||
"resource://gre/modules/identity/MinimalIdentity.jsm",
|
||||
"IdentityService");
|
||||
|
||||
Cu.import("resource://gre/modules/identity/LogUtils.jsm");
|
||||
Cu.import("resource://gre/modules/DOMIdentity.jsm");
|
||||
|
||||
function log(...aMessageArgs) {
|
||||
Logger.log.apply(Logger, ["test_minimalidentity"].concat(aMessageArgs));
|
||||
}
|
||||
|
||||
function test_overall() {
|
||||
do_check_neq(MinimalIDService, null);
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
function test_mock_doc() {
|
||||
do_test_pending();
|
||||
let mockedDoc = mock_doc(null, TEST_URL, function(action, params) {
|
||||
do_check_eq(action, 'coffee');
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
mockedDoc.doCoffee();
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that the "identity-controller-watch" signal is emitted correctly
|
||||
*/
|
||||
function test_watch() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
makeObserver("identity-controller-watch", function (aSubject, aTopic, aData) {
|
||||
do_check_eq(aSubject.wrappedJSObject.id, mockedDoc.id);
|
||||
do_check_eq(aSubject.wrappedJSObject.origin, TEST_URL);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
MinimalIDService.RP.watch(mockedDoc);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that the "identity-controller-request" signal is emitted correctly
|
||||
*/
|
||||
function test_request() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
makeObserver("identity-controller-request", function (aSubject, aTopic, aData) {
|
||||
do_check_eq(aSubject.wrappedJSObject.id, mockedDoc.id);
|
||||
do_check_eq(aSubject.wrappedJSObject.origin, TEST_URL);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
MinimalIDService.RP.watch(mockedDoc);
|
||||
MinimalIDService.RP.request(mockedDoc.id, {});
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that the forceAuthentication flag can be sent
|
||||
*/
|
||||
function test_request_forceAuthentication() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
makeObserver("identity-controller-request", function (aSubject, aTopic, aData) {
|
||||
do_check_eq(aSubject.wrappedJSObject.id, mockedDoc.id);
|
||||
do_check_eq(aSubject.wrappedJSObject.origin, TEST_URL);
|
||||
do_check_eq(aSubject.wrappedJSObject.forceAuthentication, true);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
MinimalIDService.RP.watch(mockedDoc);
|
||||
MinimalIDService.RP.request(mockedDoc.id, {forceAuthentication: true});
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that the issuer can be forced
|
||||
*/
|
||||
function test_request_forceIssuer() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
makeObserver("identity-controller-request", function (aSubject, aTopic, aData) {
|
||||
do_check_eq(aSubject.wrappedJSObject.id, mockedDoc.id);
|
||||
do_check_eq(aSubject.wrappedJSObject.origin, TEST_URL);
|
||||
do_check_eq(aSubject.wrappedJSObject.issuer, "https://jed.gov");
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
MinimalIDService.RP.watch(mockedDoc);
|
||||
MinimalIDService.RP.request(mockedDoc.id, {issuer: "https://jed.gov"});
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that the "identity-controller-logout" signal is emitted correctly
|
||||
*/
|
||||
function test_logout() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
makeObserver("identity-controller-logout", function (aSubject, aTopic, aData) {
|
||||
do_check_eq(aSubject.wrappedJSObject.id, mockedDoc.id);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
MinimalIDService.RP.watch(mockedDoc);
|
||||
MinimalIDService.RP.logout(mockedDoc.id, {});
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that logout() before watch() fails gently
|
||||
*/
|
||||
|
||||
function test_logoutBeforeWatch() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
makeObserver("identity-controller-logout", function() {
|
||||
do_throw("How can we logout when watch was not called?");
|
||||
});
|
||||
|
||||
MinimalIDService.RP.logout(mockedDoc.id, {});
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that request() before watch() fails gently
|
||||
*/
|
||||
|
||||
function test_requestBeforeWatch() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
makeObserver("identity-controller-request", function() {
|
||||
do_throw("How can we request when watch was not called?");
|
||||
});
|
||||
|
||||
MinimalIDService.RP.request(mockedDoc.id, {});
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that internal unwatch() before watch() fails gently
|
||||
*/
|
||||
|
||||
function test_unwatchBeforeWatch() {
|
||||
do_test_pending();
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL);
|
||||
|
||||
MinimalIDService.RP.unwatch(mockedDoc.id, {});
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that the RP flow is cleaned up on child process shutdown
|
||||
*/
|
||||
|
||||
function test_childProcessShutdown() {
|
||||
do_test_pending();
|
||||
let UNIQUE_MESSAGE_MANAGER = "i am a beautiful snowflake";
|
||||
let initialRPCount = Object.keys(MinimalIDService.RP._rpFlows).length;
|
||||
|
||||
let mockedDoc = mock_doc(null, TEST_URL, (action, params) => {
|
||||
if (action == "child-process-shutdown") {
|
||||
// since there's no actual dom window connection, we have to
|
||||
// do this bit manually here.
|
||||
MinimalIDService.RP.childProcessShutdown(UNIQUE_MESSAGE_MANAGER);
|
||||
}
|
||||
});
|
||||
mockedDoc._mm = UNIQUE_MESSAGE_MANAGER;
|
||||
|
||||
makeObserver("identity-controller-watch", function (aSubject, aTopic, aData) {
|
||||
DOMIdentity._childProcessShutdown(UNIQUE_MESSAGE_MANAGER);
|
||||
});
|
||||
|
||||
makeObserver("identity-child-process-shutdown", (aTopic, aSubject, aData) => {
|
||||
do_check_eq(Object.keys(MinimalIDService.RP._rpFlows).length, initialRPCount);
|
||||
do_test_finished();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
// fake a dom window context
|
||||
DOMIdentity.newContext(mockedDoc, UNIQUE_MESSAGE_MANAGER);
|
||||
|
||||
MinimalIDService.RP.watch(mockedDoc);
|
||||
}
|
||||
|
||||
var TESTS = [
|
||||
test_overall,
|
||||
test_mock_doc,
|
||||
test_watch,
|
||||
test_request,
|
||||
test_request_forceAuthentication,
|
||||
test_request_forceIssuer,
|
||||
test_logout,
|
||||
test_logoutBeforeWatch,
|
||||
test_requestBeforeWatch,
|
||||
test_unwatchBeforeWatch,
|
||||
test_childProcessShutdown,
|
||||
];
|
||||
|
||||
TESTS.forEach(add_test);
|
||||
|
||||
function run_test() {
|
||||
run_next_test();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue