Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Side by Side Diff: third_party/WebKit/LayoutTests/payments/payment-request-interface.html

Issue 2406713002: PaymentRequest: Ignore shipping options if there are duplicated IDs. (Closed)
Patch Set: presubmit Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 assert_equals('standard', request.shippingOption); 149 assert_equals('standard', request.shippingOption);
150 }, 'Shipping option identifier should default to the selected shipping option.') ; 150 }, 'Shipping option identifier should default to the selected shipping option.') ;
151 151
152 test(function() { 152 test(function() {
153 var shippingOptions = [buildItem({'id': 'standard', 'selected': true}), buil dItem({'id': 'express', 'selected': true})]; 153 var shippingOptions = [buildItem({'id': 'standard', 'selected': true}), buil dItem({'id': 'express', 'selected': true})];
154 var request = new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), 'displayItems': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': true}); 154 var request = new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), 'displayItems': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': true});
155 assert_equals('express', request.shippingOption); 155 assert_equals('express', request.shippingOption);
156 }, 'Shipping option identifier should default to the last selected shipping opti on, if multiple are selected.'); 156 }, 'Shipping option identifier should default to the last selected shipping opti on, if multiple are selected.');
157 157
158 test(function() { 158 test(function() {
159 var shippingOptions = [buildItem({'id': 'express', 'selected': false}), buil dItem({'id': 'express', 'selected': true})];
160 var request = new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), 'displayItems': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': true});
161 assert_equals(null, request.shippingOption);
162 }, 'No shipping option selected for duplicate shipping option identifiers.');
163
164 test(function() {
159 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls(), {'requestShipping': false}); 165 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls(), {'requestShipping': false});
160 assert_equals(null, request.shippingType); 166 assert_equals(null, request.shippingType);
161 }, 'Shipping type should be null if shipping is explicitly not requested.'); 167 }, 'Shipping type should be null if shipping is explicitly not requested.');
162 168
163 test(function() { 169 test(function() {
164 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls(), {'requestShipping': true}); 170 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls(), {'requestShipping': true});
165 assert_equals('shipping', request.shippingType); 171 assert_equals('shipping', request.shippingType);
166 }, 'Shipping type should be \'shipping\' by default if shipping type isn\'t spec ified.'); 172 }, 'Shipping type should be \'shipping\' by default if shipping type isn\'t spec ified.');
167 173
168 test(function() { 174 test(function() {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 }], 264 }],
259 ['Empty supported payment method identifiers should throw TypeError.', null, function() { 265 ['Empty supported payment method identifiers should throw TypeError.', null, function() {
260 new PaymentRequest([{'supportedMethods': []}], buildDetails()) 266 new PaymentRequest([{'supportedMethods': []}], buildDetails())
261 }], 267 }],
262 ['Duplicate supported payment method identifiers should throw TypeError.', n ull, function() { 268 ['Duplicate supported payment method identifiers should throw TypeError.', n ull, function() {
263 new PaymentRequest([{'supportedMethods': ['foo', 'foo']}], buildDetails( ), {}) 269 new PaymentRequest([{'supportedMethods': ['foo', 'foo']}], buildDetails( ), {})
264 }], 270 }],
265 ['Duplicate supported payment method identifiers should throw TypeError.', n ull, function() { 271 ['Duplicate supported payment method identifiers should throw TypeError.', n ull, function() {
266 new PaymentRequest([{'supportedMethods': ['foo']}, {'supportedMethods': ['foo']}], buildDetails(), {}) 272 new PaymentRequest([{'supportedMethods': ['foo']}, {'supportedMethods': ['foo']}], buildDetails(), {})
267 }], 273 }],
268 ['Duplicate shipping option identifiers should throw TypeError.', null, func tion() {
269 var shippingOptions = [buildItem({'id': 'express', 'selected': false}), buildItem({'id': 'express', 'selected': true})];
270 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem( ), 'displayItems': [buildItem()], 'shippingOptions': shippingOptions}, {'request Shipping': true})
271 }],
272 ['Absence of total should throw TypeError.', null, function() { 274 ['Absence of total should throw TypeError.', null, function() {
273 new PaymentRequest([{'supportedMethods': ['foo']}], {'displayItems': [bu ildItem()]}) 275 new PaymentRequest([{'supportedMethods': ['foo']}], {'displayItems': [bu ildItem()]})
274 }], 276 }],
275 ['Negative total value should throw a TypeError.', null, function() { 277 ['Negative total value should throw a TypeError.', null, function() {
276 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total' , {'value': '-0.01'})) 278 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total' , {'value': '-0.01'}))
277 }], 279 }],
278 ['Duplicate supported payment method identifiers in modifiers should throw T ypeError.', null, function() { 280 ['Duplicate supported payment method identifiers in modifiers should throw T ypeError.', null, function() {
279 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem( ), 'modifiers': [{'supportedMethods': ['foo', 'foo']}]}) 281 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem( ), 'modifiers': [{'supportedMethods': ['foo', 'foo']}]})
280 }], 282 }],
281 ['Duplicate supported payment method identifiers in modifiers should throw T ypeError.', null, function() { 283 ['Duplicate supported payment method identifiers in modifiers should throw T ypeError.', null, function() {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 }], 381 }],
380 ['Null amount should throw', null, function() { 382 ['Null amount should throw', null, function() {
381 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': null})) 383 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': null}))
382 }], 384 }],
383 ['Undefined amount should throw', null, function() { 385 ['Undefined amount should throw', null, function() {
384 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': undefined})) 386 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': undefined}))
385 }], 387 }],
386 ]); 388 ]);
387 } 389 }
388 </script> 390 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698