diff --git a/caps/moz.build b/caps/moz.build index 978390671e0d..c50409655d50 100644 --- a/caps/moz.build +++ b/caps/moz.build @@ -6,6 +6,8 @@ TEST_DIRS += ['tests/mochitest'] +XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini'] + XPIDL_SOURCES += [ 'nsIDomainPolicy.idl', 'nsIPrincipal.idl', diff --git a/caps/tests/unit/test_origin.js b/caps/tests/unit/test_origin.js new file mode 100644 index 000000000000..666f84f3ed5f --- /dev/null +++ b/caps/tests/unit/test_origin.js @@ -0,0 +1,14 @@ +var Cu = Components.utils; +function run_test() { + do_check_eq(Cu.getObjectPrincipal({}).origin, '[System Principal]'); + var exampleOrg = Cu.getObjectPrincipal(new Cu.Sandbox('http://example.org')); + do_check_eq(exampleOrg.origin, 'http://example.org'); + var exampleCom = Cu.getObjectPrincipal(new Cu.Sandbox('https://www.example.com:123')); + do_check_eq(exampleCom.origin, 'https://www.example.com:123'); + var nullPrin = Cu.getObjectPrincipal(new Cu.Sandbox(null)); + do_check_true(/^moz-nullprincipal:\{([0-9]|[a-z]|\-){36}\}$/.test(nullPrin.origin)); + var ep = Cu.getObjectPrincipal(new Cu.Sandbox([exampleCom, nullPrin, exampleOrg])); + + // Origins should be in lexical order. + do_check_eq(ep.origin, `[Expanded Principal [${exampleOrg.origin}, ${exampleCom.origin}, ${nullPrin.origin}]]`); +} diff --git a/caps/tests/unit/xpcshell.ini b/caps/tests/unit/xpcshell.ini new file mode 100644 index 000000000000..c06a6b4e92be --- /dev/null +++ b/caps/tests/unit/xpcshell.ini @@ -0,0 +1,5 @@ +[DEFAULT] +head = +tail = + +[test_origin.js]