Bug 975144 - Tests for rtcIdentityProvider property, r=gabor draft
authorMartin Thomson <martin.thomson@gmail.com>
Sat, 21 Feb 2015 11:55:36 +1300
changeset 245134 8f6596ddd0b16fdda80ee35a6f25d142eff5e0f2
parent 245133 0395f760a902bc40f5748486f22f9d396f7e7132
child 245135 b13c35b01e254f3ecd86b8e2037ce0458d37b554
push id749
push usermartin.thomson@gmail.com
push dateFri, 20 Feb 2015 23:01:27 +0000
reviewersgabor
bugs975144
milestone38.0a1
Bug 975144 - Tests for rtcIdentityProvider property, r=gabor
js/xpconnect/tests/unit/test_rtcIdentityProvider.js
js/xpconnect/tests/unit/xpcshell.ini
new file mode 100644
--- /dev/null
+++ b/js/xpconnect/tests/unit/test_rtcIdentityProvider.js
@@ -0,0 +1,35 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+function run_test() {
+  let Cu = Components.utils;
+  let sb = new Cu.Sandbox('https://www.example.com',
+                          { wantGlobalProperties: ['rtcIdentityProvider'] });
+
+  function exerciseInterface() {
+    equal(typeof rtcIdentityProvider, 'object');
+    equal(typeof rtcIdentityProvider.register, 'function');
+    rtcIdentityProvider.register({
+      generateAssertion: function(a, b, c) {
+        return Promise.resolve({
+          idp: { domain: 'example.com' },
+          assertion: JSON.stringify([a, b, c])
+        });
+      },
+      validateAssertion: function(d, e) {
+        return Promise.resolve({
+          identity: 'user@example.com',
+          contents: JSON.stringify([d, e])
+        });
+      }
+    });
+  }
+
+  sb.equal = equal;
+  Cu.evalInSandbox('(' + exerciseInterface.toSource() + ')();', sb);
+  ok(sb.rtcIdentityProvider.idp);
+
+  Cu.importGlobalProperties(['rtcIdentityProvider']);
+  exerciseInterface();
+  ok(rtcIdentityProvider.idp);
+}
--- a/js/xpconnect/tests/unit/xpcshell.ini
+++ b/js/xpconnect/tests/unit/xpcshell.ini
@@ -88,16 +88,17 @@ fail-if = os == "android"
 [test_promise.js]
 [test_returncode.js]
 skip-if = os == "android" # native test components aren't available on Android
 [test_textDecoder.js]
 [test_url.js]
 [test_URLSearchParams.js]
 [test_crypto.js]
 [test_css.js]
+[test_rtcIdentityProvider.js]
 [test_sandbox_atob.js]
 [test_isProxy.js]
 [test_getObjectPrincipal.js]
 [test_watchdog_enable.js]
 head = head_watchdog.js
 [test_watchdog_disable.js]
 head = head_watchdog.js
 [test_watchdog_toggle.js]