| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <meta charset="utf-8"> | 2 <meta charset="utf-8"> |
| 3 <title>Tests for PaymentRequest interface</title> | 3 <title>Tests for PaymentRequest interface</title> |
| 4 <script src="../resources/testharness.js"></script> | 4 <script src="../resources/testharness.js"></script> |
| 5 <script src="../resources/testharnessreport.js"></script> | 5 <script src="../resources/testharnessreport.js"></script> |
| 6 <script> | 6 <script> |
| 7 function substitute(originalObject, substituteKeyValuePairs) { | 7 function substitute(originalObject, substituteKeyValuePairs) { |
| 8 for (var key in originalObject) { | 8 for (var key in originalObject) { |
| 9 if (originalObject.hasOwnProperty(key) && substituteKeyValuePairs.hasOwn
Property(key)) { | 9 if (originalObject.hasOwnProperty(key) && substituteKeyValuePairs.hasOwn
Property(key)) { |
| 10 originalObject[key] = substituteKeyValuePairs[key]; | 10 originalObject[key] = substituteKeyValuePairs[key]; |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 }, 'Android Pay parameters for network token without environment key should not
throw.'); | 265 }, 'Android Pay parameters for network token without environment key should not
throw.'); |
| 266 | 266 |
| 267 test(function() { | 267 test(function() { |
| 268 new PaymentRequest([{'supportedMethods': ['https://bobpay.com'], 'data': {'a
llowedCardNetworks': 0}}], buildDetails()); | 268 new PaymentRequest([{'supportedMethods': ['https://bobpay.com'], 'data': {'a
llowedCardNetworks': 0}}], buildDetails()); |
| 269 }, 'Invalid Android Pay parameters should not throw when method name is not "htt
ps://android.com/pay".'); | 269 }, 'Invalid Android Pay parameters should not throw when method name is not "htt
ps://android.com/pay".'); |
| 270 | 270 |
| 271 test(function() { | 271 test(function() { |
| 272 new PaymentRequest([{'supportedMethods': ['https://android.com/pay'], 'data'
: {'allowedCardNetworks': 0}}], buildDetails()); | 272 new PaymentRequest([{'supportedMethods': ['https://android.com/pay'], 'data'
: {'allowedCardNetworks': 0}}], buildDetails()); |
| 273 }, 'Invalid Android Pay parameters should not throw even when method name is "ht
tps://android.com/pay".'); | 273 }, 'Invalid Android Pay parameters should not throw even when method name is "ht
tps://android.com/pay".'); |
| 274 | 274 |
| 275 test(function() { |
| 276 new PaymentRequest([{'supportedMethods': ['foo'], 'data': []}], buildDetails
()); |
| 277 }, 'Array value for payment method specific data parameter should not throw'); |
| 278 |
| 275 promise_test(function(t) { | 279 promise_test(function(t) { |
| 276 return promise_rejects(t, null, new PaymentRequest([{'supportedMethods': ['f
oo']}], buildDetails()).abort()); | 280 return promise_rejects(t, null, new PaymentRequest([{'supportedMethods': ['f
oo']}], buildDetails()).abort()); |
| 277 }, 'abort() without show() should reject with error'); | 281 }, 'abort() without show() should reject with error'); |
| 278 | 282 |
| 279 generate_tests(assert_throws, [ | 283 generate_tests(assert_throws, [ |
| 280 ['PaymentRequest constructor should throw for incorrect parameter types.', n
ull, function() { | 284 ['PaymentRequest constructor should throw for incorrect parameter types.', n
ull, function() { |
| 281 new PaymentRequest('', '', '') | 285 new PaymentRequest('', '', '') |
| 282 }], | 286 }], |
| 283 ['PaymentRequest constructor should throw for undefined required parameters.
', null, function() { | 287 ['PaymentRequest constructor should throw for undefined required parameters.
', null, function() { |
| 284 new PaymentRequest(undefined, undefined) | 288 new PaymentRequest(undefined, undefined) |
| (...skipping 21 matching lines...) Expand all Loading... |
| 306 }], | 310 }], |
| 307 ['Undefined supportedMethods in modifiers should throw TypeError.', null, fu
nction() { | 311 ['Undefined supportedMethods in modifiers should throw TypeError.', null, fu
nction() { |
| 308 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': undefined}]}) | 312 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': undefined}]}) |
| 309 }], | 313 }], |
| 310 ['Empty supportedMethods in modifiers should throw TypeError.', null, functi
on() { | 314 ['Empty supportedMethods in modifiers should throw TypeError.', null, functi
on() { |
| 311 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': []}]}) | 315 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': []}]}) |
| 312 }], | 316 }], |
| 313 ['Absence of supportedMethods in modifiers should throw TypeError.', null, f
unction() { | 317 ['Absence of supportedMethods in modifiers should throw TypeError.', null, f
unction() { |
| 314 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'total': buildItem()}]}) | 318 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'total': buildItem()}]}) |
| 315 }], | 319 }], |
| 316 ['Empty modifiers should throw TypeError.', null, function() { | |
| 317 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': []}) | |
| 318 }], | |
| 319 ['Empty details should throw', null, function() { | 320 ['Empty details should throw', null, function() { |
| 320 new PaymentRequest([{'supportedMethods': ['foo']}], {}) | 321 new PaymentRequest([{'supportedMethods': ['foo']}], {}) |
| 321 }], | 322 }], |
| 322 ['Null items should throw', new TypeError(), function() { | 323 ['Null items should throw', new TypeError(), function() { |
| 323 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': null}); | 324 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': null}); |
| 324 }], | 325 }], |
| 325 ['Null shipping options should throw', new TypeError(), function() { | 326 ['Null shipping options should throw', new TypeError(), function() { |
| 326 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': [buildItem()], 'shippingOptions': null}); | 327 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': [buildItem()], 'shippingOptions': null}); |
| 327 }], | 328 }], |
| 328 ['Undefined PaymentShippingType value for shppingType should throw a TypeErr
or', new TypeError(), function() { | 329 ['Undefined PaymentShippingType value for shppingType should throw a TypeErr
or', new TypeError(), function() { |
| 329 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': 'invalid'}); | 330 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': 'invalid'}); |
| 330 }], | 331 }], |
| 331 ['Null for shppingType should throw a TypeError', new TypeError(), function(
) { | 332 ['Null for shppingType should throw a TypeError', new TypeError(), function(
) { |
| 332 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': null}); | 333 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': null}); |
| 333 }], | 334 }], |
| 334 ['Array value for shppingType should throw a TypeError', new TypeError(), fu
nction() { | 335 ['Array value for shppingType should throw a TypeError', new TypeError(), fu
nction() { |
| 335 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': []}); | 336 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': []}); |
| 336 }], | 337 }], |
| 337 ['Object value for shppingType should throw a TypeError', new TypeError(), f
unction() { | 338 ['Object value for shppingType should throw a TypeError', new TypeError(), f
unction() { |
| 338 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': {}}); | 339 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': {}}); |
| 339 }], | 340 }], |
| 340 ['Numeric value for shppingType should throw a TypeError', new TypeError(),
function() { | 341 ['Numeric value for shppingType should throw a TypeError', new TypeError(),
function() { |
| 341 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': 0}); | 342 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildD
etails(), {'requestShipping': true, 'shippingType': 0}); |
| 342 }], | 343 }], |
| 343 | 344 |
| 344 // Payment method specific data should be a JSON-serializable object. | 345 // Payment method specific data should be a JSON-serializable object. |
| 345 ['Array value for payment method specific data parameter should throw', null
, function() { | |
| 346 new PaymentRequest([{'supportedMethods': ['foo'], 'data': []}], buildDet
ails(), {}) | |
| 347 }], | |
| 348 ['String value for payment method specific data parameter should throw', nul
l, function() { | 346 ['String value for payment method specific data parameter should throw', nul
l, function() { |
| 349 new PaymentRequest([{'supportedMethods': ['foo'], 'data': 'foo'}], build
Details(), {}) | 347 new PaymentRequest([{'supportedMethods': ['foo'], 'data': 'foo'}], build
Details(), {}) |
| 350 }], | 348 }], |
| 351 ['Numeric value for payment method specific data parameter should throw', nu
ll, function() { | 349 ['Numeric value for payment method specific data parameter should throw', nu
ll, function() { |
| 352 new PaymentRequest([{'supportedMethods': ['foo'], 'data': 42}], buildDet
ails(), {}) | 350 new PaymentRequest([{'supportedMethods': ['foo'], 'data': 42}], buildDet
ails(), {}) |
| 353 }], | 351 }], |
| 354 ['Infinite JSON value for one of the payment method specific data pieces sho
uld throw', null, function() { | 352 ['Infinite JSON value for one of the payment method specific data pieces sho
uld throw', null, function() { |
| 355 var infiniteData = {'foo': {}}; | 353 var infiniteData = {'foo': {}}; |
| 356 infiniteData.foo = infiniteData; | 354 infiniteData.foo = infiniteData; |
| 357 new PaymentRequest([{'supportedMethods': ['foo'], 'data': infiniteData}]
, buildDetails()) | 355 new PaymentRequest([{'supportedMethods': ['foo'], 'data': infiniteData}]
, buildDetails()) |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 }], | 409 }], |
| 412 ['Null amount in ' + detailNames[i] + ' should throw', null, function()
{ | 410 ['Null amount in ' + detailNames[i] + ' should throw', null, function()
{ |
| 413 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': null}), {requestShipping: true}) | 411 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': null}), {requestShipping: true}) |
| 414 }], | 412 }], |
| 415 ['Undefined amount in ' + detailNames[i] + ' should throw', null, functi
on() { | 413 ['Undefined amount in ' + detailNames[i] + ' should throw', null, functi
on() { |
| 416 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': undefined}), {requestShipping: true}) | 414 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': undefined}), {requestShipping: true}) |
| 417 }], | 415 }], |
| 418 ]); | 416 ]); |
| 419 } | 417 } |
| 420 </script> | 418 </script> |
| OLD | NEW |