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 6 kB image not shown  

Quelle  UpdateErrorsChromeScript.js   Sprache: JAVA

 
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */


/* eslint-env mozilla/chrome-script */

"use strict";

const { XPCOMUtils } = ChromeUtils.importESModule(
  "resource://gre/modules/XPCOMUtils.sys.mjs"
);

const paymentSrv = Cc[
  "@mozilla.org/dom/payments/payment-request-service;1"
].getService(Ci.nsIPaymentRequestService);

function emitTestFail(message) {
  sendAsyncMessage("test-fail", message);
}
function emitTestPass(message) {
  sendAsyncMessage("test-pass", message);
}

const shippingAddress = Cc[
  "@mozilla.org/dom/payments/payment-address;1"
].createInstance(Ci.nsIPaymentAddress);
const addressLine = Cc["@mozilla.org/array;1"].createInstance(
  Ci.nsIMutableArray
);
const address = Cc["@mozilla.org/supports-string;1"].createInstance(
  Ci.nsISupportsString
);
address.data = "Easton Ave";
addressLine.appendElement(address);
shippingAddress.init(
  "USA"// country
  addressLine, // address line
  "CA"// region
  "CA"// region code
  "San Bruno"// city
  "Test locality"// dependent locality
  "94066"// postal code
  "123456"// sorting code
  "Testing Org"// organization
  "Bill A. Pacheco"// recipient
  "+1-434-441-3879"
); // phone

function acceptShow(requestId) {
  const responseData = Cc[
    "@mozilla.org/dom/payments/general-response-data;1"
  ].createInstance(Ci.nsIGeneralResponseData);
  responseData.initData({
    paymentToken: "6880281f-0df3-4b8e-916f-66575e2457c1",
  });
  let showResponse = Cc[
    "@mozilla.org/dom/payments/payment-show-action-response;1"
  ].createInstance(Ci.nsIPaymentShowActionResponse);
  showResponse.init(
    requestId,
    Ci.nsIPaymentActionResponse.PAYMENT_ACCEPTED,
    "testing-payment-method"// payment method
    responseData, // payment method data
    "Bill A. Pacheco"// payer name
    ""// payer email
    ""
  ); // payer phone
  paymentSrv.respondPayment(
    showResponse.QueryInterface(Ci.nsIPaymentActionResponse)
  );
}

function rejectShow(requestId) {
  const responseData = Cc[
    "@mozilla.org/dom/payments/general-response-data;1"
  ].createInstance(Ci.nsIGeneralResponseData);
  responseData.initData({});
  const showResponse = Cc[
    "@mozilla.org/dom/payments/payment-show-action-response;1"
  ].createInstance(Ci.nsIPaymentShowActionResponse);
  showResponse.init(
    requestId,
    Ci.nsIPaymentActionResponse.PAYMENT_REJECTED,
    ""// payment method
    responseData, // payment method data
    ""// payer name
    ""// payer email
    ""
  ); // payer phone
  paymentSrv.respondPayment(
    showResponse.QueryInterface(Ci.nsIPaymentActionResponse)
  );
}

function updateShow(requestId) {
  paymentSrv.changeShippingAddress(requestId, shippingAddress);
}

function showRequest(requestId) {
  updateShow(requestId);
}

function abortRequest(requestId) {
  let abortResponse = Cc[
    "@mozilla.org/dom/payments/payment-abort-action-response;1"
  ].createInstance(Ci.nsIPaymentAbortActionResponse);
  abortResponse.init(requestId, Ci.nsIPaymentActionResponse.ABORT_SUCCEEDED);
  paymentSrv.respondPayment(abortResponse);
}

function completeRequest(requestId) {
  let payRequest = paymentSrv.getPaymentRequestById(requestId);
  let completeResponse = Cc[
    "@mozilla.org/dom/payments/payment-complete-action-response;1"
  ].createInstance(Ci.nsIPaymentCompleteActionResponse);
  completeResponse.init(
    requestId,
    Ci.nsIPaymentActionResponse.COMPLETE_SUCCEEDED
  );
  paymentSrv.respondPayment(
    completeResponse.QueryInterface(Ci.nsIPaymentActionResponse)
  );
}

function checkAddressErrors(errors) {
  if (!errors) {
    emitTestFail("Expect non-null shippingAddressErrors, but got null.");
  }
  if (errors.addressLine != "addressLine error") {
    emitTestFail(
      "Expect shippingAddressErrors.addressLine as 'addressLine error', but got" +
        errors.addressLine
    );
  }
  if (errors.city != "city error") {
    emitTestFail(
      "Expect shippingAddressErrors.city as 'city error', but got" + errors.city
    );
  }
  if (errors.dependentLocality != "dependentLocality error") {
    emitTestFail(
      "Expect shippingAddressErrors.dependentLocality as 'dependentLocality error', but got" +
        errors.dependentLocality
    );
  }
  if (errors.organization != "organization error") {
    emitTestFail(
      "Expect shippingAddressErrors.organization as 'organization error', but got" +
        errors.organization
    );
  }
  if (errors.phone != "phone error") {
    emitTestFail(
      "Expect shippingAddressErrors.phone as 'phone error', but got" +
        errors.phone
    );
  }
  if (errors.postalCode != "postalCode error") {
    emitTestFail(
      "Expect shippingAddressErrors.postalCode as 'postalCode error', but got" +
        errors.postalCode
    );
  }
  if (errors.recipient != "recipient error") {
    emitTestFail(
      "Expect shippingAddressErrors.recipient as 'recipient error', but got" +
        errors.recipient
    );
  }
  if (errors.region != "region error") {
    emitTestFail(
      "Expect shippingAddressErrors.region as 'region error', but got" +
        errors.region
    );
  }
  if (errors.regionCode != "regionCode error") {
    emitTestFail(
      "Expect shippingAddressErrors.regionCode as 'regionCode error', but got" +
        errors.region
    );
  }
  if (errors.sortingCode != "sortingCode error") {
    emitTestFail(
      "Expect shippingAddressErrors.sortingCode as 'sortingCode error', but got" +
        errors.sortingCode
    );
  }
}

function updateRequest(requestId) {
  let request = paymentSrv.getPaymentRequestById(requestId);
  const addressErrors = request.paymentDetails.shippingAddressErrors;
  const payerErrors = request.paymentDetails.payerErrors;
  checkAddressErrors(addressErrors);
  rejectShow(requestId);
}

const DummyUIService = {
  showPayment: showRequest,
  abortPayment: abortRequest,
  completePayment: completeRequest,
  updatePayment: updateRequest,
  closePayment(requestId) {},
  QueryInterface: ChromeUtils.generateQI(["nsIPaymentUIService"]),
};

paymentSrv.setTestingUIService(
  DummyUIService.QueryInterface(Ci.nsIPaymentUIService)
);

addMessageListener("teardown"function () {
  paymentSrv.setTestingUIService(null);
  sendAsyncMessage("teardown-complete");
});

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

¤ Dauer der Verarbeitung: 0.12 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.