https://github.com/web-platform-tests/wpt
Revision 28c8debd4209bd796cc84032359b566eac9a6838 authored by Darren Shen on 11 April 2018, 06:04:13 UTC, committed by Chromium WPT Sync on 11 April 2018, 06:04:13 UTC
Known failures:
- letter-spacing: a <length> of 0 resolves to "normal", but should
  compute to "0".
- line-break: "anywhere" not supported.
- overflow-wrap & word-wrap: "break-spaces" not supported
- word-spacing: "normal" should compute to "normal" and should be able
  to set word-spacing to a <percentage>.

Bug: 820299
Change-Id: If5bac479521de6f1658a38a295df01de98f433f2
Reviewed-on: https://chromium-review.googlesource.com/1002340
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549783}
1 parent 2e8fa7b
Raw File
Tip revision: 28c8debd4209bd796cc84032359b566eac9a6838 authored by Darren Shen on 11 April 2018, 06:04:13 UTC
[css-typed-om] Support remaining text properties.
Tip revision: 28c8deb
payment-request-shippingOption-attribute.https.html
<!DOCTYPE html>
<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
<meta charset="utf-8">
<title>Test for PaymentRequest shippingOption attribute</title>
<link rel="help" href="https://w3c.github.io/payment-request/#shippingoption-attribute">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
const validMethod = Object.freeze({ supportedMethods: "foo" });
const validMethods = Object.freeze([validMethod]);
const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
const validTotal = Object.freeze({
  label: "label",
  amount: validAmount,
});
const validDetails = Object.freeze({ total: validTotal });
const validShippingOption = Object.freeze({
  id: "valid",
  label: "Valid shipping option",
  amount: validAmount,
  selected: false,
});

const requestShipping = Object.freeze({
  requestShipping: true,
});

test(() => {
  const request = new PaymentRequest(validMethods, validDetails);
  assert_idl_attribute(request, "shippingOption");
}, "Must have a .shippingOption IDL attribute.");

test(() => {
  const request = new PaymentRequest(validMethods, validDetails);
  assert_equals(request.shippingOption, null, "expected null");
}, ".shippingOption attribute must default to null.");

test(() => {
  const detailsWithShippingOptions = Object.assign({}, validDetails, {
    shippingOptions: [validShippingOption],
  });
  const request = new PaymentRequest(
    validMethods,
    detailsWithShippingOptions,
    requestShipping
  );
  assert_equals(request.shippingOption, null, "expected null");
}, "If there is a single shipping option, but selected is false, then .shippingOption must be null.");

test(() => {
  const shippingOption2 = Object.assign({}, validShippingOption, {
    id: "valid2",
  });
  const detailsWithShippingOptions = Object.assign({}, validDetails, {
    shippingOptions: [validShippingOption, shippingOption2],
  });
  const request = new PaymentRequest(
    validMethods,
    detailsWithShippingOptions,
    requestShipping
  );
  assert_equals(request.shippingOption, null, "expected null");
}, "If there are multiple shipping options all with `selected` set to false, then .shippingOption is null.");

test(() => {
  const shippingOption2 = Object.assign({}, validShippingOption, {
    id: "pass",
    selected: true,
  });
  const detailsWithShippingOptions = Object.assign({}, validDetails, {
    shippingOptions: [shippingOption2, validShippingOption],
  });
  const request = new PaymentRequest(
    validMethods,
    detailsWithShippingOptions,
    requestShipping
  );
  assert_equals(request.shippingOption, "pass", "expected 'pass'");
}, "Given multiple shipping options, it must use the selected shipping option for .shippingOption value.");

test(() => {
  const shippingOption1 = Object.assign({}, validShippingOption, {
    id: "fail",
    selected: true,
  });
  const shippingOption2 = Object.assign({}, validShippingOption, {
    id: "pass",
    selected: true,
  });
  const detailsWithShippingOptions = Object.assign({}, validDetails, {
    shippingOptions: [shippingOption1, shippingOption2, validShippingOption],
  });
  const request = new PaymentRequest(
    validMethods,
    detailsWithShippingOptions,
    requestShipping
  );
  assert_equals(request.shippingOption, "pass", "expected 'pass'");
}, "If there are multiple of the shipping options with selected true, then .shippingOption is the last selected shipping option in order.");
</script>
back to top