<!doctype html>
<meta charset="utf8">
<link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentresponse-payername">
<title>
  PaymentResponse.prototype.payerName attribute
</title>
<script src="/js-test-resources/ui-helper.js"></script>
<script src="/resources/payment-request.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/helpers.js"></script>
<ol>
  <li>
    <button id="button1">
      payerName attribute is null when option is undefined.
    </button>
  </li>
  <li>
    <button id="button2">
      payerName attribute is null when requestPayerName is undefined.
    </button>
  </li>
  <li>
    <button id="button3">
      payerName attribute is null when requestPayerName is false.
    </button>
  </li>
  <li>
    <button id="button4">
      payerName attribute is 'web platform test' when requestPayerName is true.
    </button>
  </li>
  <li>
    <button id="button5">
      payerName attribute is 'web platform test' when requestPayerName is truthy.
    </button>
  </li>
</ol>
<script>
    internals.mockPaymentCoordinator.setShippingAddress({ localizedName: 'web platform test' });
    
    async function runTests()
    {
        await runTest(document.getElementById("button1"), undefined, { payerName: null });
        await runTest(document.getElementById("button2"), { requestPayerName: undefined }, { payerName: null });
        await runTest(document.getElementById("button3"), { requestPayerName: false }, { payerName: null });
        await runTest(document.getElementById("button4"), { requestPayerName: true }, { payerName: 'web platform test' });
        await runTest(document.getElementById("button5"), { requestPayerName: 'yep' }, { payerName: 'web platform test' });
        done();
    }
    runTests();
</script>