tenfourfox/webapprt/test/chrome/browser_mozpay.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

106 lines
3.4 KiB
JavaScript

Cu.import("resource://gre/modules/Services.jsm");
var { PaymentManager } = Cu.import("resource://gre/modules/Payment.jsm", {});
Cu.import("resource://webapprt/modules/WebappRT.jsm");
function test() {
waitForExplicitFinish();
let curTest = 0;
let tests = [];
tests.push({
providerUri: "https://example.com:443/webapprtChrome/webapprt/test/chrome/mozpay-success.html?req=",
message: "Success."
});
// tests.push({
// providerUri: "https://example.com:443/webapprtChrome/webapprt/test/chrome/mozpay-failure.html?req=",
// message: "Chocolate rejected."
// });
let jwt = "eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJhdWQiOiAibW9j" +
"a3BheXByb3ZpZGVyLnBocGZvZ2FwcC5jb20iLCAiaXNzIjogIkVudGVyI" +
"HlvdSBhcHAga2V5IGhlcmUhIiwgInJlcXVlc3QiOiB7Im5hbWUiOiAiUG" +
"llY2Ugb2YgQ2FrZSIsICJwcmljZSI6ICIxMC41MCIsICJwcmljZVRpZXI" +
"iOiAxLCAicHJvZHVjdGRhdGEiOiAidHJhbnNhY3Rpb25faWQ9ODYiLCAi" +
"Y3VycmVuY3lDb2RlIjogIlVTRCIsICJkZXNjcmlwdGlvbiI6ICJWaXJ0d" +
"WFsIGNob2NvbGF0ZSBjYWtlIHRvIGZpbGwgeW91ciB2aXJ0dWFsIHR1bW" +
"15In0sICJleHAiOiAxMzUyMjMyNzkyLCAiaWF0IjogMTM1MjIyOTE5Miw" +
"gInR5cCI6ICJtb2NrL3BheW1lbnRzL2luYXBwL3YxIn0.QZxc62USCy4U" +
"IyKIC1TKelVhNklvk-Ou1l_daKntaFI";
PaymentManager.registeredProviders = {};
PaymentManager.registeredProviders["mock/payments/inapp/v1"] = {
name: "mockprovider",
description: "Mock Payment Provider",
uri: tests[curTest].providerUri,
requestMethod: "GET"
};
// Disabled because the mozPay API is disabled, so the provider window
// won't be shown.
//
// let providerWindow;
// let winObserver = function(win, topic) {
// if (topic == "domwindowopened") {
// win.addEventListener("load", function onLoadWindow() {
// win.removeEventListener("load", onLoadWindow, false);
//
// if (win.document.getElementById("content") &&
// win.document.getElementById("content").getAttribute("src") ==
// (tests[curTest].providerUri + jwt)) {
// ok(true, "Payment provider window shown.");
// providerWindow = win;
// }
// }, false);
// }
// }
// Services.ww.registerNotification(winObserver);
let mutObserver = null;
function onLoad() {
let msg = gAppBrowser.contentDocument.getElementById("msg");
mutObserver = new MutationObserver(function(mutations) {
is(msg.textContent, tests[curTest].message, "Got: " + tests[curTest].message);
// if (!providerWindow) {
// ok(false, "Payment provider window shown.");
// } else {
// providerWindow.close();
// providerWindow = null;
// }
runNextTest();
});
mutObserver.observe(msg, { childList: true });
}
loadWebapp("mozpay.webapp", undefined, onLoad);
function runNextTest() {
// providerWindow = null;
if (mutObserver) {
mutObserver.disconnect();
}
curTest++;
if (curTest < tests.length) {
PaymentManager.registeredProviders["mock/payments/inapp/v1"].uri = tests[curTest].providerUri;
gAppBrowser.addEventListener("load", function onLoadH() {
gAppBrowser.removeEventListener("load", onLoadH, true);
onLoad();
}, true);
gAppBrowser.reload();
} else {
finish();
}
}
registerCleanupFunction(function() {
// Services.ww.unregisterNotification(winObserver);
mutObserver.disconnect();
});
}