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

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

Issue 2048823004: PaymentRequest.abort() should return a promise. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 test(function() { 174 test(function() {
175 new PaymentRequest(['foo'], buildDetails('displayItems', {'value': '-0.01'}) ); 175 new PaymentRequest(['foo'], buildDetails('displayItems', {'value': '-0.01'}) );
176 }, 'Negative line item value should not throw.'); 176 }, 'Negative line item value should not throw.');
177 177
178 test(function() { 178 test(function() {
179 assert_throws(new TypeError(), function() { 179 assert_throws(new TypeError(), function() {
180 new PaymentRequest(['foo'], {'displayItems': [buildItem()]}); 180 new PaymentRequest(['foo'], {'displayItems': [buildItem()]});
181 }); 181 });
182 }, 'Absence of total should throw TypeError.'); 182 }, 'Absence of total should throw TypeError.');
183 183
184 promise_test(function(t) {
185 return promise_rejects(t, null, new PaymentRequest(['foo'], buildDetails()). abort());
186 }, 'abort() without show() should reject with error');
187
184 generate_tests(assert_throws, [ 188 generate_tests(assert_throws, [
185 ['PaymentRequest constructor should throw for incorrect parameter types.', n ull, function() { 189 ['PaymentRequest constructor should throw for incorrect parameter types.', n ull, function() {
186 new PaymentRequest('', '', '', '') 190 new PaymentRequest('', '', '', '')
187 }], 191 }],
188 ['PaymentRequest constructor should throw for undefined required parameters. ', null, function() { 192 ['PaymentRequest constructor should throw for undefined required parameters. ', null, function() {
189 new PaymentRequest(undefined, undefined) 193 new PaymentRequest(undefined, undefined)
190 }], 194 }],
191 ['PaymentRequest constructor should throw for null required parameter.', nul l, function() { 195 ['PaymentRequest constructor should throw for null required parameter.', nul l, function() {
192 new PaymentRequest(null, null) 196 new PaymentRequest(null, null)
193 }], 197 }],
194 ['Empty list of supported payment method identifiers should throw TypeError. ', new TypeError(), function() { 198 ['Empty list of supported payment method identifiers should throw TypeError. ', new TypeError(), function() {
195 new PaymentRequest([], buildDetails()) 199 new PaymentRequest([], buildDetails())
196 }], 200 }],
197 ['Keys in payment method specific data object should match accepted method i dentifiers.', null, function() { 201 ['Keys in payment method specific data object should match accepted method i dentifiers.', null, function() {
198 new PaymentRequest(['foo'], buildDetails(), {}, {'bar': {'gateway': 'baz '}}) 202 new PaymentRequest(['foo'], buildDetails(), {}, {'bar': {'gateway': 'baz '}})
199 }], 203 }],
200 ['Empty details should throw', null, function() { 204 ['Empty details should throw', null, function() {
201 new PaymentRequest(['foo'], {}) 205 new PaymentRequest(['foo'], {})
202 }], 206 }],
203 ['Null items should throw', new TypeError(), function() { 207 ['Null items should throw', new TypeError(), function() {
204 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': null} ); 208 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': null} );
205 }], 209 }],
206 ['Null shipping options should throw', new TypeError(), function() { 210 ['Null shipping options should throw', new TypeError(), function() {
207 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': [buil dItem()], 'shippingOptions': null}); 211 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': [buil dItem()], 'shippingOptions': null});
208 }], 212 }],
209 ['Aborting before showing should throw.', null, function() {
210 new PaymentRequest(['foo'], buildDetails()).abort()
211 }],
212 213
213 // Payment method specific data should be a JSON-serializable object. 214 // Payment method specific data should be a JSON-serializable object.
214 ['Array value for payment method specific data parameter should throw', null , function() { 215 ['Array value for payment method specific data parameter should throw', null , function() {
215 new PaymentRequest(['foo'], buildDetails(), {}, []) 216 new PaymentRequest(['foo'], buildDetails(), {}, [])
216 }], 217 }],
217 ['String value for payment method specific data parameter should throw', nul l, function() { 218 ['String value for payment method specific data parameter should throw', nul l, function() {
218 new PaymentRequest(['foo'], buildDetails(), {}, 'foo') 219 new PaymentRequest(['foo'], buildDetails(), {}, 'foo')
219 }], 220 }],
220 ['Numeric value for payment method specific data parameter should throw', nu ll, function() { 221 ['Numeric value for payment method specific data parameter should throw', nu ll, function() {
221 new PaymentRequest(['foo'], buildDetails(), {}, 42) 222 new PaymentRequest(['foo'], buildDetails(), {}, 42)
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 }], 304 }],
304 ['Null amount should throw', null, function() { 305 ['Null amount should throw', null, function() {
305 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': n ull})) 306 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': n ull}))
306 }], 307 }],
307 ['Undefined amount should throw', null, function() { 308 ['Undefined amount should throw', null, function() {
308 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': u ndefined})) 309 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': u ndefined}))
309 }], 310 }],
310 ]); 311 ]);
311 } 312 }
312 </script> 313 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698