Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/payments/test/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 8 kB image not shown  

Quelle  test_shippingOptions.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/dom/payments/test/test_shippingOptions.html


<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1440041
https://bugzilla.mozilla.org/show_bug.cgi?id=1443914
-->

<head>
  <meta charset="utf-8">
  <title>Test for shippingOptions related bugs</title>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script type="application/javascript" src="./DefaultData.js"></script>
  <script type="application/javascript">

  "use strict";
  SimpleTest.waitForExplicitFinish();

  var gUrl = SimpleTest.getTestFileURL('ShippingOptionsChromeScript.js');
  var gScript = SpecialPowers.loadChromeScript(gUrl);

  function testFailHandler(message) {
    ok(false, message);
  }
  function testPassHandler(message) {
    ok(true, message);
  }
  gScript.addMessageListener("test-fail", testFailHandler);
  gScript.addMessageListener("test-pass", testPassHandler);

  let shippingOptions = [{
    id: "NormalShipping",
    label"NormalShipping",
    amount: {
      currency: "USD",
      value: "10.00",
    },
    selected: true,
  },{
    id: "FastShipping",
    label"FastShipping",
    amount: {
      currency: "USD",
      value: "5.00",
    },
    selected: false,
  }]

  // testing function main body
  function testShippingOptionsTemplate(initDetails,
           optionUpdateDetails,
                                       expectedRequestOption,
           expectedOptionChangeOption,
           expectedResponseOption) {
    const expectedResults = {requestResult: expectedRequestOption,
                             changeOptionResult: expectedOptionChangeOption,
                             responseResult: expectedResponseOption,};
    gScript.sendAsyncMessage("set-expected-results", expectedResults);
    return new Promise((resolve, reject) => {
      const request = new PaymentRequest(defaultMethods, initDetails, defaultOptions);
      const handler = SpecialPowers.getDOMWindowUtils(window).setHandlingUserInput(true);
      is(request.shippingOption, expectedRequestOption,
         "request.shippingOption should be " + expectedRequestOption +
  " after created, but got " + request.shippingOption + ".");
      if (optionUpdateDetails) {
 request.addEventListener("shippingoptionchange", event => {
   is(request.shippingOption, expectedOptionChangeOption,
             "request.shippingOption should be " + expectedOptionChangeOption +
      " in shippingoptionchange event, but got " + request.shippingOption + ".");
          event.updateWith(optionUpdateDetails);
 });
      }
      request.show().then(response => {
        is(response.shippingOption, expectedResponseOption,
 "response.shippingOption should be " + expectedResponseOption +
  ", but got " + response.shippingOption + ".");
 response.complete("success").then(() => {
   resolve();
 }).catch(error => {
   ok(false, "Unexpected error: " + error.name);
   resolve();
 })
      }, response => {
      }).catch(error => {
        ok(false, "Unexpected error: " + error.name);
 resolve();
      }).finally(handler.destruct);
    });
  }

  // test no selected shipping option in default
  function testNoSelectedShippingOptions() {
    return testShippingOptionsTemplate(defaultDetails,   // initial details
           null,             // update details for optionchange
           null,             // expected request.shippintOption after create
           null,             // expected request.shippingOption after optionchange
           null);            // expected response.shippingOption
  }

  // test select one shipping option in default
  function testSelectedOneShippingOption() {
    let details = Object.assign({}, defaultDetails);
    details.shippingOptions = shippingOptions;
    details.shippingOptions[0].selected = true;
    details.shippingOptions[1].selected = false;
    const expectedOption = details.shippingOptions[0].id;
    return testShippingOptionsTemplate(details,          // initial details
           null,             // update details for optionchange
           expectedOption,   // expected request.shippintOption after create
           null,             // expected request.shippingOption after optionchange
           expectedOption);  // expected response.shippingOption
  }

  // test select multiple shipping options in default
  function testMultiSelectedShippingOptions() {
    let details = Object.assign({}, defaultDetails);
    details.shippingOptions = shippingOptions;
    details.shippingOptions[0].selected = true;
    details.shippingOptions[1].selected = true;
    const expectedOption = details.shippingOptions[1].id;
    return testShippingOptionsTemplate(details,          // initial details
           null,             // update details for optionchange
           expectedOption,   // expected request.shippintOption after create
           null,             // expected request.shippingOption after optionchange
           expectedOption);  // expected response.shippingOption
  }

  // test no selected shipping option in default, but selected by user
  function testSelectedByUser() {
    let updateDetails = Object.assign({}, defaultDetails);
    updateDetails.shippingOptions = shippingOptions;
    updateDetails.shippingOptions[0].selected = true;
    updateDetails.shippingOptions[1].selected = false;
    const expectedOption = updateDetails.shippingOptions[0].id;
    return testShippingOptionsTemplate(defaultDetails,   // initial details
           updateDetails,    // update details for optionchange
           null,             // expected request.shippintOption after create
           expectedOption,   // expected request.shippingOption after optionchange
           expectedOption);  // expected response.shippingOption
  }

  // test no selected shipping option in default, but selected by user then updated
  // by merchant to the other.
  function testUpdateSelectedByMerchant() {
    let updateDetails = Object.assign({}, defaultDetails);
    updateDetails.shippingOptions = shippingOptions;
    updateDetails.shippingOptions[0].selected = false;
    updateDetails.shippingOptions[1].selected = true;
    const expectedOption = updateDetails.shippingOptions[0].id;
    const expectedResponse = updateDetails.shippingOptions[1].id;
    return testShippingOptionsTemplate(defaultDetails,   // initial details
           updateDetails,    // update details for optionchange
           null,             // expected request.shippintOption after create
           expectedOption,   // expected request.shippingOption after optionchange
           expectedResponse);// expected response.shippingOption
  }

  // test update shipping options to null
  function testUpdateShippingOptionsToNull() {
    let updateDetails = Object.assign({}, defaultDetails);
    delete updateDetails.shippingOptions;
    const expectedOption = defaultDetails.shippingOptions[0].id;
    return testShippingOptionsTemplate(defaultDetails,   // initial details
           updateDetails,    // update details for optionchange
           null,             // expected request.shippintOption after create
           expectedOption,   // expected request.shippingOption after optionchange
           null);            // expected response.shippingOption
  }

  function teardown() {
    gScript.addMessageListener("teardown-complete", function teardownCompleteHandler() {
      gScript.removeMessageListener("teardown-complete", teardownCompleteHandler);
      gScript.removeMessageListener("test-fail", testFailHandler);
      gScript.removeMessageListener("test-pass", testPassHandler);
      gScript.destroy();
      SimpleTest.finish();
    });
    gScript.sendAsyncMessage("teardown");
  }

  function runTests() {
    testNoSelectedShippingOptions()
    .then(testSelectedOneShippingOption)
    .then(testMultiSelectedShippingOptions)
    .then(testSelectedByUser)
    .then(testUpdateSelectedByMerchant)
    .then(testUpdateShippingOptionsToNull)
    .then(teardown)
    .catch( e => {
      ok(false, "Unexpected error: " + e.name);
      SimpleTest.finish();
    });
  }

  window.addEventListener('load', function() {
    SpecialPowers.pushPrefEnv({
      'set': [
        ['dom.payments.request.enabled', true],
      ]
    }, runTests);
  });

  </script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1440041">Mozilla Bug 1440041</a>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1443914">Mozilla Bug 1443914</a>
</body>
</html>

Messung V0.5
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.26 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.