function testWithSimplestParameters() {
return new Promise((resolve, reject) => {
const payRequest = new PaymentRequest(simplestMethods, simplestDetails);
ok(payRequest, "PaymentRequest should be created");
gScript.addMessageListener("check-complete", function checkCompleteHandler() {
gScript.removeMessageListener("check-complete", checkCompleteHandler);
resolve();
});
gScript.sendAsyncMessage("check-simplest-request");
});
}
function testWithComplexParameters() {
return new Promise((resolve, reject) => {
const payRequest = new PaymentRequest(complexMethods, complexDetails, complexOptions);
ok(payRequest, "PaymentRequest should be created");
gScript.addMessageListener("check-complete", function checkCompleteHandler() {
gScript.removeMessageListener("check-complete", checkCompleteHandler);
resolve();
});
gScript.sendAsyncMessage("check-complex-request");
});
}
function testWithNonBasicCardMethods() {
return new Promise((resolve, reject) => {
const payRequest = new PaymentRequest(nonBasicCardMethods, simplestDetails);
ok(payRequest, "PaymentRequest should be created");
gScript.addMessageListener("check-complete", function checkCompleteHandler() {
gScript.removeMessageListener("check-complete", checkCompleteHandler);
resolve();
});
gScript.sendAsyncMessage("check-nonbasiccard-request");
});
}
function testWithDuplicateShippingOptionsParameters() {
return new Promise((resolve, reject) => {
try {
const payRequest = new PaymentRequest(simplestMethods,
duplicateShippingOptionsDetails,
{requestShipping: true});
ok(false, "Construction should fail with duplicate shippingOption Ids.");
resolve();
} catch (e) {
is(e.name, "TypeError", "Expected 'TypeError' with duplicate shippingOption Ids.");
resolve();
}
});
}
function testShippingOptionAttribute() {
return new Promise((resolve, reject) => {
const details = {
total: { label: "Total",
amount: {
currency: "USD",
value: "1.00",
},
},
shippingOptions: [
{
id: "option1", label: "option1",
amount: {
currency: "USD",
value: "1.00",
},
selected: false,
},
{
id: "option2", label: "option2",
amount: {
currency: "USD",
value: "1.00",
},
selected: false,
},
],
};
const payRequest1 = new PaymentRequest(simplestMethods, details,
{requestShipping: false});
ok(payRequest1, "PaymentRequest should be created");
is(payRequest1.shippingOption, null, "request.shippingOption should be null in default, when options.requestShipping is false"); details.shippingOptions[0].selected = true;
const payRequest2 = new PaymentRequest(simplestMethods, details,
{requestShipping: false});
ok(payRequest2, "PaymentRequest should be created");
is(payRequest2.shippingOption, null, "request.shippingOption should be null in default, when options.requestShipping is false");
const payRequest3 = new PaymentRequest(simplestMethods, details,
{requestShipping: true});
ok(payRequest3, "PaymentRequest should be created");
ok(payRequest3.shippingOption, "request.shippingOption should not be null when both shoppingOtpion.selected and options.requestOptions are true");
is(payRequest3.shippingOption, "option1", "request.shippingOption should be 'option1'"); details.shippingOptions[1].selected = true;
const payRequest4 = new PaymentRequest(simplestMethods, details,
{requestShipping: true});
ok(payRequest4, "PaymentRequest should be created");
ok(payRequest4.shippingOption, "request.shippingOption should not be null when both shoppingOtpion.selected and options.requestOptions are true");
is(payRequest4.shippingOption, "option2", "request.shippingOption should be 'option2' which is the last one selected.");
resolve();
});
}
function testMultipleRequests() {
return new Promise((resolve, reject) => {
const payRequest1 = new PaymentRequest(complexMethods, complexDetails, complexOptions);
const payRequest2 = new PaymentRequest(simplestMethods, simplestDetails);
ok(payRequest1, "PaymentRequest with complex parameters should be created");
ok(payRequest2, "PaymentRequest with simplest parameters should be created");
gScript.addMessageListener("check-complete", function checkCompleteHandler() {
gScript.removeMessageListener("check-complete", checkCompleteHandler);
resolve();
});
gScript.sendAsyncMessage("check-multiple-requests");
});
}
function testCrossOriginTopLevelPrincipal() {
return new Promise((resolve, reject) => { var ifrr = document.createElement('iframe');
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.