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

Quelle  BasiccardChromeScript.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", `${DummyUIService.testName}: ${message}`);
}

const billingAddress = 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);
billingAddress.init(
  "USA"// country
  addressLine, // address line
  "CA"// region
  "CA"// region code
  "San Bruno"// city
  ""// dependent locality
  "94066"// postal code
  "123456"// sorting code
  ""// organization
  "Bill A. Pacheco"// recipient
  "+14344413879"
); // phone

const specialAddress = Cc[
  "@mozilla.org/dom/payments/payment-address;1"
].createInstance(Ci.nsIPaymentAddress);
const specialAddressLine = Cc["@mozilla.org/array;1"].createInstance(
  Ci.nsIMutableArray
);
const specialData = Cc["@mozilla.org/supports-string;1"].createInstance(
  Ci.nsISupportsString
);
specialData.data = ":$%@&*";
specialAddressLine.appendElement(specialData);
specialAddress.init(
  "USA"// country
  specialAddressLine, // address line
  "CA"// region
  "CA"// region code
  "San Bruno"// city
  ""// dependent locality
  "94066"// postal code
  "123456"// sorting code
  ""// organization
  "Bill A. Pacheco"// recipient
  "+14344413879"
); // phone

const basiccardResponseData = Cc[
  "@mozilla.org/dom/payments/basiccard-response-data;1"
].createInstance(Ci.nsIBasicCardResponseData);

const basiccardChangeDetails = Cc[
  "@mozilla.org/dom/payments/basiccard-change-details;1"
].createInstance(Ci.nsIBasicCardChangeDetails);

const showResponse = Cc[
  "@mozilla.org/dom/payments/payment-show-action-response;1"
].createInstance(Ci.nsIPaymentShowActionResponse);

function abortPaymentResponse(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.QueryInterface(Ci.nsIPaymentActionResponse)
  );
}

function completePaymentResponse(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 showRequest(requestId) {
  if (DummyUIService.showAction === "payment-method-change") {
    basiccardChangeDetails.initData(billingAddress);
    try {
      paymentSrv.changePaymentMethod(
        requestId,
        "basic-card",
        basiccardChangeDetails.QueryInterface(Ci.nsIMethodChangeDetails)
      );
    } catch (error) {
      emitTestFail(
        `Unexpected error (${error.name}) when calling PaymentRequestService::changePaymentMethod`
      );
    }
    return;
  }
  if (DummyUIService.showAction === "detailBasicCardResponse") {
    try {
      basiccardResponseData.initData(
        "Bill A. Pacheco"// cardholderName
        "4916855166538720"// cardNumber
        "01"// expiryMonth
        "2024"// expiryYear
        "180"// cardSecurityCode
        billingAddress
      ); // billingAddress
    } catch (e) {
      emitTestFail("Fail to initialize basic card response data.");
    }
  }
  if (DummyUIService.showAction === "simpleBasicCardResponse") {
    try {
      basiccardResponseData.initData(
        ""// cardholderName
        "4916855166538720"// cardNumber
        ""// expiryMonth
        ""// expiryYear
        ""// cardSecurityCode
        null
      ); // billingAddress
    } catch (e) {
      emitTestFail("Fail to initialize basic card response data.");
    }
  }
  if (DummyUIService.showAction === "specialAddressResponse") {
    try {
      basiccardResponseData.initData(
        "Bill A. Pacheco"// cardholderName
        "4916855166538720"// cardNumber
        "01"// expiryMonth
        "2024"// expiryYear
        "180"// cardSecurityCode
        specialAddress
      ); // billingAddress
    } catch (e) {
      emitTestFail("Fail to initialize basic card response data.");
    }
  }
  showResponse.init(
    requestId,
    Ci.nsIPaymentActionResponse.PAYMENT_ACCEPTED,
    "basic-card"// payment method
    basiccardResponseData, // payment method data
    "Bill A. Pacheco"// payer name
    ""// payer email
    ""
  ); // payer phone
  paymentSrv.respondPayment(
    showResponse.QueryInterface(Ci.nsIPaymentActionResponse)
  );
}

const DummyUIService = {
  testName: "",
  showAction: "",
  showPayment: showRequest,
  abortPayment: abortPaymentResponse,
  completePayment: completePaymentResponse,
  updatePayment: requestId => {
    try {
      basiccardResponseData.initData(
        "Bill A. Pacheco"// cardholderName
        "4916855166538720"// cardNumber
        "01"// expiryMonth
        "2024"// expiryYear
        "180"// cardSecurityCode
        billingAddress
      ); // billingAddress
    } catch (e) {
      emitTestFail("Fail to initialize basic card response data.");
    }
    showResponse.init(
      requestId,
      Ci.nsIPaymentActionResponse.PAYMENT_ACCEPTED,
      "basic-card"// payment method
      basiccardResponseData, // payment method data
      "Bill A. Pacheco"// payer name
      ""// payer email
      ""
    ); // payer phone
    paymentSrv.respondPayment(
      showResponse.QueryInterface(Ci.nsIPaymentActionResponse)
    );
  },
  closePayment: requestId => {},
  QueryInterface: ChromeUtils.generateQI(["nsIPaymentUIService"]),
};

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

addMessageListener("set-detailed-ui-service"function (testName) {
  DummyUIService.testName = testName;
  DummyUIService.showAction = "detailBasicCardResponse";
  sendAsyncMessage("set-detailed-ui-service-complete");
});

addMessageListener("set-simple-ui-service"function (testName) {
  DummyUIService.testName = testName;
  DummyUIService.showAction = "simpleBasicCardResponse";
  sendAsyncMessage("set-simple-ui-service-complete");
});

addMessageListener("set-special-address-ui-service"function (testName) {
  DummyUIService.testName = testName;
  DummyUIService.showAction = "specialAddressResponse";
  sendAsyncMessage("set-special-address-ui-service-complete");
});

addMessageListener("method-change-to-basic-card"function (testName) {
  DummyUIService.testName = testName;
  DummyUIService.showAction = "payment-method-change";
  sendAsyncMessage("method-change-to-basic-card-complete");
});

addMessageListener("error-response-test"function (testName) {
  // test empty cardNumber
  try {
    basiccardResponseData.initData(""""""""""null);
    emitTestFail(
      "BasicCardResponse should not be initialized with empty cardNumber."
    );
  } catch (e) {
    if (e.name != "NS_ERROR_FAILURE") {
      emitTestFail(
        "Empty cardNumber expected 'NS_ERROR_FAILURE', but got " + e.name + "."
      );
    }
  }

  // test invalid expiryMonth 123
  try {
    basiccardResponseData.initData("""4916855166538720""123"""""null);
    emitTestFail(
      "BasicCardResponse should not be initialized with invalid expiryMonth '123'."
    );
  } catch (e) {
    if (e.name != "NS_ERROR_FAILURE") {
      emitTestFail(
        "expiryMonth 123 expected 'NS_ERROR_FAILURE', but got " + e.name + "."
      );
    }
  }
  // test invalid expiryMonth 99
  try {
    basiccardResponseData.initData("""4916855166538720""99"""""null);
    emitTestFail(
      "BasicCardResponse should not be initialized with invalid expiryMonth '99'."
    );
  } catch (e) {
    if (e.name != "NS_ERROR_FAILURE") {
      emitTestFail(
        "expiryMonth 99 xpected 'NS_ERROR_FAILURE', but got " + e.name + "."
      );
    }
  }
  // test invalid expiryMonth ab
  try {
    basiccardResponseData.initData("""4916855166538720""ab"""""null);
    emitTestFail(
      "BasicCardResponse should not be initialized with invalid expiryMonth 'ab'."
    );
  } catch (e) {
    if (e.name != "NS_ERROR_FAILURE") {
      emitTestFail(
        "expiryMonth ab expected 'NS_ERROR_FAILURE', but got " + e.name + "."
      );
    }
  }
  // test invalid expiryYear abcd
  try {
    basiccardResponseData.initData(
      "",
      "4916855166538720",
      "",
      "abcd",
      "",
      null
    );
    emitTestFail(
      "BasicCardResponse should not be initialized with invalid expiryYear 'abcd'."
    );
  } catch (e) {
    if (e.name != "NS_ERROR_FAILURE") {
      emitTestFail(
        "expiryYear abcd expected 'NS_ERROR_FAILURE', but got " + e.name + "."
      );
    }
  }
  // test invalid expiryYear 11111
  try {
    basiccardResponseData.initData(
      "",
      "4916855166538720",
      "",
      "11111",
      "",
      null
    );
    emitTestFail(
      "BasicCardResponse should not be initialized with invalid expiryYear '11111'."
    );
  } catch (e) {
    if (e.name != "NS_ERROR_FAILURE") {
      emitTestFail(
        "expiryYear 11111 expected 'NS_ERROR_FAILURE', but got " + e.name + "."
      );
    }
  }

  const responseData = Cc[
    "@mozilla.org/dom/payments/general-response-data;1"
  ].createInstance(Ci.nsIGeneralResponseData);
  try {
    responseData.initData({});
  } catch (e) {
    emitTestFail("Fail to initialize response data with empty object.");
  }

  try {
    showResponse.init(
      "testid",
      Ci.nsIPaymentActionResponse.PAYMENT_ACCEPTED,
      "basic-card"// payment method
      responseData, // payment method data
      "Bill A. Pacheco"// payer name
      ""// payer email
      ""
    ); // payer phone
    emitTestFail(
      "nsIPaymentShowActionResponse should not be initialized with basic-card method and nsIGeneralResponseData."
    );
  } catch (e) {
    if (e.name != "NS_ERROR_FAILURE") {
      emitTestFail(
        "ShowResponse init expected 'NS_ERROR_FAILURE', but got " + e.name + "."
      );
    }
  }
  sendAsyncMessage("error-response-test-complete");
});

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

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

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