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

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

Issue 2020883002: PaymentRequest: Introduce PaymentMethodData. (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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 } else { 54 } else {
55 details[detailNames[i]] = [buildItem()]; 55 details[detailNames[i]] = [buildItem()];
56 } 56 }
57 } 57 }
58 } 58 }
59 59
60 return details; 60 return details;
61 } 61 }
62 62
63 test(function() { 63 test(function() {
64 new PaymentRequest(['foo'], buildDetails(), {}, {}); 64 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(), {});
65 }, 'Creating a PaymentRequest with empty parameters should not throw or crash.') ; 65 }, 'Creating a PaymentRequest with empty parameters should not throw or crash.') ;
66 66
67 test(function() { 67 test(function() {
68 new PaymentRequest(['foo'], buildDetails(), {}, {}, ''); 68 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(), {}, '');
69 }, 'Creating a PaymentRequest with extra parameters should not throw or crash.') ; 69 }, 'Creating a PaymentRequest with extra parameters should not throw or crash.') ;
70 70
71 test(function() { 71 test(function() {
72 new PaymentRequest(['foo'], buildDetails()); 72 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails());
73 }, 'Creating a PaymentRequest with omitted optional parameters should not throw or crash.'); 73 }, 'Creating a PaymentRequest with omitted optional parameters should not throw or crash.');
74 74
75 test(function() { 75 test(function() {
76 new PaymentRequest(['foo'], buildDetails(), undefined, undefined); 76 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(), undefine d);
77 }, 'Creating a PaymentRequest with undefined optional parameters should not thro w or crash.'); 77 }, 'Creating a PaymentRequest with undefined optional parameters should not thro w or crash.');
78 78
79 test(function() { 79 test(function() {
80 new PaymentRequest(['foo'], buildDetails(), null, null); 80 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(), null);
81 }, 'Creating a PaymentRequest with null optional parameters should not throw or crash.'); 81 }, 'Creating a PaymentRequest with null optional parameters should not throw or crash.');
82 82
83 test(function() { 83 test(function() {
84 var request = new PaymentRequest(['foo'], buildDetails()); 84 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls());
85 assert_readonly(request, 'shippingAddress', 'PaymentRequest should have a re adonly shippingAddress property.'); 85 assert_readonly(request, 'shippingAddress', 'PaymentRequest should have a re adonly shippingAddress property.');
86 assert_readonly(request, 'shippingOption', 'PaymentRequest should have a rea donly shippingOption property.'); 86 assert_readonly(request, 'shippingOption', 'PaymentRequest should have a rea donly shippingOption property.');
87 }, 'PaymentRequest should have readonly shippingAddress and shippingOption prope rties.'); 87 }, 'PaymentRequest should have readonly shippingAddress and shippingOption prope rties.');
88 88
89 test(function() { 89 test(function() {
90 var request = new PaymentRequest(['foo'], buildDetails()); 90 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls());
91 assert_not_equals(request.onshippingaddresschange, undefined, 'PaymentReques t should have onShippingAddressChange event.'); 91 assert_not_equals(request.onshippingaddresschange, undefined, 'PaymentReques t should have onShippingAddressChange event.');
92 assert_not_equals(request.onshippingoptionchange, undefined, 'PaymentRequest should have onShippingOptionChange event.'); 92 assert_not_equals(request.onshippingoptionchange, undefined, 'PaymentRequest should have onShippingOptionChange event.');
93 }, 'PaymentRequest should have onShippingAddressChange and onShippingOptionChang e events.'); 93 }, 'PaymentRequest should have onShippingAddressChange and onShippingOptionChang e events.');
94 94
95 test(function() { 95 test(function() {
96 var request = new PaymentRequest(['foo'], buildDetails()); 96 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls());
97 assert_not_equals(request.abort, undefined, 'PaymentRequest should have abor t() method.'); 97 assert_not_equals(request.abort, undefined, 'PaymentRequest should have abor t() method.');
98 assert_not_equals(request.show, undefined, 'PaymentRequest should have show( ) method.'); 98 assert_not_equals(request.show, undefined, 'PaymentRequest should have show( ) method.');
99 }, 'PaymentRequest should have methods abort() and show().'); 99 }, 'PaymentRequest should have methods abort() and show().');
100 100
101 test(function() { 101 test(function() {
102 var request = new PaymentRequest(['foo'], buildDetails()); 102 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls());
103 request.show(); 103 request.show();
104 request.abort(); 104 request.abort();
105 }, 'PaymentRequest.abort() and PaymentRequest.show() should take no parameters.' ); 105 }, 'PaymentRequest.abort() and PaymentRequest.show() should take no parameters.' );
106 106
107 test(function() { 107 test(function() {
108 var request = new PaymentRequest(['foo'], buildDetails(), {'requestShipping' : true}, {'foo': {'gateway': 'bar'}}); 108 var request = new PaymentRequest([{'supportedMethods': ['foo'], 'data': {'fo o': {'gateway': 'bar'}}}], buildDetails(), {'requestShipping': true});
109 request.show(); 109 request.show();
110 request.abort(); 110 request.abort();
111 }, 'Valid data causes no errors.'); 111 }, 'Valid data causes no errors.');
112 112
113 test(function() { 113 test(function() {
114 var request = new PaymentRequest(['foo'], buildDetails('shippingOptions', {' id': 'standard'})); 114 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls('shippingOptions', {'id': 'standard'}));
115 assert_equals(null, request.shippingOption); 115 assert_equals(null, request.shippingOption);
116 }, 'Shipping option identifier should be null if shipping request is omitted.'); 116 }, 'Shipping option identifier should be null if shipping request is omitted.');
117 117
118 test(function() { 118 test(function() {
119 var request = new PaymentRequest(['foo'], buildDetails('shippingOptions', {' id': 'standard'}), {'requestShipping': false}); 119 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls('shippingOptions', {'id': 'standard'}), {'requestShipping': false});
120 assert_equals(null, request.shippingOption); 120 assert_equals(null, request.shippingOption);
121 }, 'Shipping option identifier should be null if shipping is explicitly not requ ested.'); 121 }, 'Shipping option identifier should be null if shipping is explicitly not requ ested.');
122 122
123 test(function() { 123 test(function() {
124 var request = new PaymentRequest(['foo'], {'total': buildItem(), 'displayIte ms': [buildItem()]}, {'requestShipping': true}); 124 var request = new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), 'displayItems': [buildItem()]}, {'requestShipping': true});
125 assert_equals(null, request.shippingOption); 125 assert_equals(null, request.shippingOption);
126 }, 'Shipping option identifier should be null if no shipping options are provide d.'); 126 }, 'Shipping option identifier should be null if no shipping options are provide d.');
127 127
128 test(function() { 128 test(function() {
129 var request = new PaymentRequest(['foo'], buildDetails('shippingOptions', {' selected': false}), {'requestShipping': true}); 129 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls('shippingOptions', {'selected': false}), {'requestShipping': true});
130 assert_equals(null, request.shippingOption); 130 assert_equals(null, request.shippingOption);
131 }, 'Shipping option identifier should be null if the single provided option is n ot selected.'); 131 }, 'Shipping option identifier should be null if the single provided option is n ot selected.');
132 132
133 test(function() { 133 test(function() {
134 var request = new PaymentRequest(['foo'], buildDetails('shippingOptions', {' id': 'standard', 'selected': true}), {'requestShipping': true}); 134 var request = new PaymentRequest([{'supportedMethods': ['foo']}], buildDetai ls('shippingOptions', {'id': 'standard', 'selected': true}), {'requestShipping': true});
135 assert_equals('standard', request.shippingOption); 135 assert_equals('standard', request.shippingOption);
136 }, 'Shipping option identifier should default to the single provided option if i t is selected.'); 136 }, 'Shipping option identifier should default to the single provided option if i t is selected.');
137 137
138 test(function() { 138 test(function() {
139 var shippingOptions = [buildItem({'id': 'standard'}), buildItem({'id': 'expr ess'})]; 139 var shippingOptions = [buildItem({'id': 'standard'}), buildItem({'id': 'expr ess'})];
140 var request = new PaymentRequest(['foo'], {'total': buildItem(), 'displayIte ms': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': tru e}); 140 var request = new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), 'displayItems': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': true});
141 assert_equals(null, request.shippingOption); 141 assert_equals(null, request.shippingOption);
142 }, 'Shipping option identifier should be null if multiple unselected shipping op tions are provided.'); 142 }, 'Shipping option identifier should be null if multiple unselected shipping op tions are provided.');
143 143
144 test(function() { 144 test(function() {
145 var shippingOptions = [buildItem({'id': 'standard', 'selected': true}), buil dItem({'id': 'express'})]; 145 var shippingOptions = [buildItem({'id': 'standard', 'selected': true}), buil dItem({'id': 'express'})];
146 var request = new PaymentRequest(['foo'], {'total': buildItem(), 'displayIte ms': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': tru e}); 146 var request = new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), 'displayItems': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': true});
147 assert_equals('standard', request.shippingOption); 147 assert_equals('standard', request.shippingOption);
148 }, 'Shipping option identifier should default to the selected shipping option.') ; 148 }, 'Shipping option identifier should default to the selected shipping option.') ;
149 149
150 test(function() { 150 test(function() {
151 var shippingOptions = [buildItem({'id': 'standard', 'selected': true}), buil dItem({'id': 'express', 'selected': true})]; 151 var shippingOptions = [buildItem({'id': 'standard', 'selected': true}), buil dItem({'id': 'express', 'selected': true})];
152 var request = new PaymentRequest(['foo'], {'total': buildItem(), 'displayIte ms': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': tru e}); 152 var request = new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), 'displayItems': [buildItem()], 'shippingOptions': shippingOptions}, {'requestShipping': true});
153 assert_equals('express', request.shippingOption); 153 assert_equals('express', request.shippingOption);
154 }, 'Shipping option identifier should default to the last selected shipping opti on, if multiple are selected.'); 154 }, 'Shipping option identifier should default to the last selected shipping opti on, if multiple are selected.');
155 155
156 test(function() { 156 test(function() {
157 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': undefined }); 157 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), ' displayItems': undefined});
158 }, 'Undefined display items should not throw.'); 158 }, 'Undefined display items should not throw.');
159 159
160 test(function() { 160 test(function() {
161 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': []}); 161 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), ' displayItems': []});
162 }, 'Empty display items should not throw.'); 162 }, 'Empty display items should not throw.');
163 163
164 test(function() { 164 test(function() {
165 new PaymentRequest(['foo'], buildDetails('total', {'value': '0'})); 165 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total', {' value': '0'}));
166 }, 'Non-negative total value should not throw.'); 166 }, 'Non-negative total value should not throw.');
167 167
168 test(function() { 168 test(function() {
169 assert_throws(new TypeError(), function() { 169 assert_throws(new TypeError(), function() {
170 new PaymentRequest(['foo'], buildDetails('total', {'value': '-0.01'})); 170 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total' , {'value': '-0.01'}));
171 }); 171 });
172 }, 'Negative total value should throw a TypeError.'); 172 }, 'Negative total value should throw a TypeError.');
173 173
174 test(function() { 174 test(function() {
175 new PaymentRequest(['foo'], buildDetails('displayItems', {'value': '-0.01'}) ); 175 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('displayIte ms', {'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([{'supportedMethods': ['foo']}], {'displayItems': [bu ildItem()]});
181 }); 181 });
182 }, 'Absence of total should throw TypeError.'); 182 }, 'Absence of total should throw TypeError.');
183 183
184 generate_tests(assert_throws, [ 184 generate_tests(assert_throws, [
185 ['PaymentRequest constructor should throw for incorrect parameter types.', n ull, function() { 185 ['PaymentRequest constructor should throw for incorrect parameter types.', n ull, function() {
186 new PaymentRequest('', '', '', '') 186 new PaymentRequest('', '', '')
187 }], 187 }],
188 ['PaymentRequest constructor should throw for undefined required parameters. ', null, function() { 188 ['PaymentRequest constructor should throw for undefined required parameters. ', null, function() {
189 new PaymentRequest(undefined, undefined) 189 new PaymentRequest(undefined, undefined)
190 }], 190 }],
191 ['PaymentRequest constructor should throw for null required parameter.', nul l, function() { 191 ['PaymentRequest constructor should throw for null required parameter.', nul l, function() {
192 new PaymentRequest(null, null) 192 new PaymentRequest(null, null)
193 }], 193 }],
194 ['Empty list of supported payment method identifiers should throw TypeError. ', new TypeError(), function() { 194 ['Empty list of supported payment method identifiers should throw TypeError. ', new TypeError(), function() {
195 new PaymentRequest([], buildDetails()) 195 new PaymentRequest([], buildDetails())
196 }], 196 }],
197 ['Keys in payment method specific data object should match accepted method i dentifiers.', null, function() {
198 new PaymentRequest(['foo'], buildDetails(), {}, {'bar': {'gateway': 'baz '}})
199 }],
200 ['Empty details should throw', null, function() { 197 ['Empty details should throw', null, function() {
201 new PaymentRequest(['foo'], {}) 198 new PaymentRequest([{'supportedMethods': ['foo']}], {})
202 }], 199 }],
203 ['Null items should throw', new TypeError(), function() { 200 ['Null items should throw', new TypeError(), function() {
204 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': null} ); 201 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem( ), 'displayItems': null});
205 }], 202 }],
206 ['Null shipping options should throw', new TypeError(), function() { 203 ['Null shipping options should throw', new TypeError(), function() {
207 new PaymentRequest(['foo'], {'total': buildItem(), 'displayItems': [buil dItem()], 'shippingOptions': null}); 204 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem( ), 'displayItems': [buildItem()], 'shippingOptions': null});
208 }], 205 }],
209 ['Aborting before showing should throw.', null, function() { 206 ['Aborting before showing should throw.', null, function() {
210 new PaymentRequest(['foo'], buildDetails()).abort() 207 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails()).abor t()
211 }], 208 }],
212 209
213 // Payment method specific data should be a JSON-serializable object. 210 // Payment method specific data should be a JSON-serializable object.
214 ['Array value for payment method specific data parameter should throw', null , function() { 211 ['Array value for payment method specific data parameter should throw', null , function() {
215 new PaymentRequest(['foo'], buildDetails(), {}, []) 212 new PaymentRequest([{'supportedMethods': ['foo'], 'data': []}], buildDet ails(), {})
216 }], 213 }],
217 ['String value for payment method specific data parameter should throw', nul l, function() { 214 ['String value for payment method specific data parameter should throw', nul l, function() {
218 new PaymentRequest(['foo'], buildDetails(), {}, 'foo') 215 new PaymentRequest([{'supportedMethods': ['foo'], 'data': 'foo'}], build Details(), {})
219 }], 216 }],
220 ['Numeric value for payment method specific data parameter should throw', nu ll, function() { 217 ['Numeric value for payment method specific data parameter should throw', nu ll, function() {
221 new PaymentRequest(['foo'], buildDetails(), {}, 42) 218 new PaymentRequest([{'supportedMethods': ['foo'], 'data': 42}], buildDet ails(), {})
222 }], 219 }],
223 ['Infinite JSON value for one of the payment method specific data pieces sho uld throw', null, function() { 220 ['Infinite JSON value for one of the payment method specific data pieces sho uld throw', null, function() {
224 var infiniteData = {'foo': {}}; 221 var infiniteData = {'foo': {}};
225 infiniteData.foo = infiniteData; 222 infiniteData.foo = infiniteData;
226 new PaymentRequest(['foo'], buildDetails(), {}, infiniteData) 223 new PaymentRequest([{'supportedMethods': ['foo'], 'data': infiniteData}] , buildDetails())
227 }], 224 }],
228 225 ['Null for payment method specific data parameter should throw', null, funct ion() {
229 // Values in payment method specific data object should be JSON-serializable objects. 226 new PaymentRequest([{'supportedMethods': ['foo'], 'data': null}], buildD etails())
230 ['Array value for one of the payment method specific data pieces should thro w', null, function() {
231 new PaymentRequest(['foo'], buildDetails(), {}, {'foo': []})
232 }], 227 }],
233 ['String value for one of the payment method specific data pieces should thr ow', null, function() { 228 ['Empty string for payment method specific data parameter should throw', nul l, function() {
234 new PaymentRequest(['foo'], buildDetails(), {}, {'foo': 'bar'}) 229 new PaymentRequest([{'supportedMethods': ['foo'], 'data': ''}], buildDet ails())
235 }], 230 }]
236 ['Numeric value for one of the payment method specific data pieces should th row', null, function() {
237 new PaymentRequest(['foo'], buildDetails(), {}, {'foo': 42})
238 }],
239 ]); 231 ]);
240 232
241 var detailNames = ['total', 'displayItems', 'shippingOptions']; 233 var detailNames = ['total', 'displayItems', 'shippingOptions'];
242 for (var i in detailNames) { 234 for (var i in detailNames) {
243 generate_tests(assert_throws, [ 235 generate_tests(assert_throws, [
244 // Invalid currency code formats. 236 // Invalid currency code formats.
245 ['Invalid currency code US1 should throw', null, function() { 237 ['Invalid currency code US1 should throw', null, function() {
246 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'currency' : 'US1'})) 238 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'currency': 'US1'}))
247 }], 239 }],
248 ['Invalid currency code US should throw', null, function() { 240 ['Invalid currency code US should throw', null, function() {
249 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'currency' : 'US'})) 241 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'currency': 'US'}))
250 }], 242 }],
251 ['Invalid currency code USDO should throw', null, function() { 243 ['Invalid currency code USDO should throw', null, function() {
252 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'currency' : 'USDO'})) 244 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'currency': 'USDO'}))
253 }], 245 }],
254 ['Invalid currency code usd should throw', null, function() { 246 ['Invalid currency code usd should throw', null, function() {
255 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'currency' : 'usd'})) 247 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'currency': 'usd'}))
256 }], 248 }],
257 ['Empty currency code should throw', null, function() { 249 ['Empty currency code should throw', null, function() {
258 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'currency' : ''})) 250 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'currency': ''}))
259 }], 251 }],
260 ['Null currency code should throw', null, function() { 252 ['Null currency code should throw', null, function() {
261 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'currency' : null})) 253 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'currency': null}))
262 }], 254 }],
263 ['Undefined currency code should throw', null, function() { 255 ['Undefined currency code should throw', null, function() {
264 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'currency' : undefined})) 256 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'currency': undefined}))
265 }], 257 }],
266 258
267 // Invalid amount formats. 259 // Invalid amount formats.
268 ['Invalid amount "-" should throw', null, function() { 260 ['Invalid amount "-" should throw', null, function() {
269 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' -'})) 261 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '-'}))
270 }], 262 }],
271 ['Invalid amount "notdigits" should throw', null, function() { 263 ['Invalid amount "notdigits" should throw', null, function() {
272 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' notdigits'})) 264 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': 'notdigits'}))
273 }], 265 }],
274 ['Invalid amount "ALSONOTDIGITS" should throw', null, function() { 266 ['Invalid amount "ALSONOTDIGITS" should throw', null, function() {
275 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' ALSONOTDIGITS'})) 267 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': 'ALSONOTDIGITS'}))
276 }], 268 }],
277 ['Invalid amount "10." should throw', null, function() { 269 ['Invalid amount "10." should throw', null, function() {
278 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' 10.'})) 270 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '10.'}))
279 }], 271 }],
280 ['Invalid amount ".99" should throw', null, function() { 272 ['Invalid amount ".99" should throw', null, function() {
281 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' .99'})) 273 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '.99'}))
282 }], 274 }],
283 ['Invalid amount "-10." should throw', null, function() { 275 ['Invalid amount "-10." should throw', null, function() {
284 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' -10.'})) 276 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '-10.'}))
285 }], 277 }],
286 ['Invalid amount "-.99" should throw', null, function() { 278 ['Invalid amount "-.99" should throw', null, function() {
287 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' -.99'})) 279 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '-.99'}))
288 }], 280 }],
289 ['Invalid amount "10-" should throw', null, function() { 281 ['Invalid amount "10-" should throw', null, function() {
290 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' 10-'})) 282 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '10-'}))
291 }], 283 }],
292 ['Invalid amount "1-0" should throw', null, function() { 284 ['Invalid amount "1-0" should throw', null, function() {
293 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' 1-0'})) 285 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '1-0'}))
294 }], 286 }],
295 ['Invalid amount "1.0.0" should throw', null, function() { 287 ['Invalid amount "1.0.0" should throw', null, function() {
296 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' 1.0.0'})) 288 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '1.0.0'}))
297 }], 289 }],
298 ['Invalid amount "1/3" should throw', null, function() { 290 ['Invalid amount "1/3" should throw', null, function() {
299 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' 1/3'})) 291 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': '1/3'}))
300 }], 292 }],
301 ['Empty amount should throw', null, function() { 293 ['Empty amount should throw', null, function() {
302 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': ' '})) 294 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': ''}))
303 }], 295 }],
304 ['Null amount should throw', null, function() { 296 ['Null amount should throw', null, function() {
305 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': n ull})) 297 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': null}))
306 }], 298 }],
307 ['Undefined amount should throw', null, function() { 299 ['Undefined amount should throw', null, function() {
308 new PaymentRequest(['foo'], buildDetails(detailNames[i], {'value': u ndefined})) 300 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det ailNames[i], {'value': undefined}))
309 }], 301 }],
310 ]); 302 ]);
311 } 303 }
312 </script> 304 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698