| 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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 | 160 |
| 161 test(function() { | 161 test(function() { |
| 162 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), '
displayItems': []}); | 162 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), '
displayItems': []}); |
| 163 }, 'Empty display items should not throw.'); | 163 }, 'Empty display items should not throw.'); |
| 164 | 164 |
| 165 test(function() { | 165 test(function() { |
| 166 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total', {'
value': '0'})); | 166 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total', {'
value': '0'})); |
| 167 }, 'Non-negative total value should not throw.'); | 167 }, 'Non-negative total value should not throw.'); |
| 168 | 168 |
| 169 test(function() { | 169 test(function() { |
| 170 assert_throws(new TypeError(), function() { | |
| 171 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total'
, {'value': '-0.01'})); | |
| 172 }); | |
| 173 }, 'Negative total value should throw a TypeError.'); | |
| 174 | |
| 175 test(function() { | |
| 176 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('displayIte
ms.0', {'value': '-0.01'})); | 170 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('displayIte
ms.0', {'value': '-0.01'})); |
| 177 }, 'Negative line item value should not throw.'); | 171 }, 'Negative line item value should not throw.'); |
| 178 | 172 |
| 179 test(function() { | 173 test(function() { |
| 180 assert_throws(new TypeError(), function() { | |
| 181 new PaymentRequest([{'supportedMethods': ['foo']}], {'displayItems': [bu
ildItem()]}); | |
| 182 }); | |
| 183 }, 'Absence of total should throw TypeError.'); | |
| 184 | |
| 185 test(function() { | |
| 186 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), '
modifiers': undefined}); | 174 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), '
modifiers': undefined}); |
| 187 }, 'Undefined modifiers should not throw.'); | 175 }, 'Undefined modifiers should not throw.'); |
| 188 | 176 |
| 189 test(function() { | 177 test(function() { |
| 190 assert_throws(new TypeError(), function() { | |
| 191 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': []}); | |
| 192 }); | |
| 193 }, 'Empty modifiers should throw TypeError.'); | |
| 194 | |
| 195 test(function() { | |
| 196 assert_throws(new TypeError(), function() { | |
| 197 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'total': buildItem()}]}); | |
| 198 }); | |
| 199 }, 'Absence of supportedMethods in modifiers should throw TypeError.'); | |
| 200 | |
| 201 test(function() { | |
| 202 assert_throws(new TypeError(), function() { | |
| 203 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': []}]}); | |
| 204 }); | |
| 205 }, 'Empty supportedMethods in modifiers should throw TypeError.'); | |
| 206 | |
| 207 test(function() { | |
| 208 assert_throws(new TypeError(), function() { | |
| 209 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': undefined}]}); | |
| 210 }); | |
| 211 }, 'Undefined supportedMethods in modifiers should throw TypeError.'); | |
| 212 | |
| 213 test(function() { | |
| 214 assert_throws(new TypeError(), function() { | |
| 215 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': null}]}); | |
| 216 }); | |
| 217 }, 'Null supportedMethods in modifiers should throw TypeError.'); | |
| 218 | |
| 219 test(function() { | |
| 220 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), '
modifiers': [{'supportedMethods': ['foo'], 'total': buildItem({'value': '0.0'})}
]}); | 178 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(), '
modifiers': [{'supportedMethods': ['foo'], 'total': buildItem({'value': '0.0'})}
]}); |
| 221 }, 'Non-negative total value in PaymentDetailsModifier should not throw.'); | 179 }, 'Non-negative total value in PaymentDetailsModifier should not throw.'); |
| 222 | 180 |
| 223 test(function() { | |
| 224 assert_throws(new TypeError(), function() { | |
| 225 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': ['foo'], 'total': buildItem({'value': '-0.
01'})}]}); | |
| 226 }); | |
| 227 }, 'Negative total value in PaymentDetailsModifier should throw a TypeError.'); | |
| 228 | |
| 229 promise_test(function(t) { | 181 promise_test(function(t) { |
| 230 return promise_rejects(t, null, new PaymentRequest([{'supportedMethods': ['f
oo']}], buildDetails()).abort()); | 182 return promise_rejects(t, null, new PaymentRequest([{'supportedMethods': ['f
oo']}], buildDetails()).abort()); |
| 231 }, 'abort() without show() should reject with error'); | 183 }, 'abort() without show() should reject with error'); |
| 232 | 184 |
| 233 generate_tests(assert_throws, [ | 185 generate_tests(assert_throws, [ |
| 234 ['PaymentRequest constructor should throw for incorrect parameter types.', n
ull, function() { | 186 ['PaymentRequest constructor should throw for incorrect parameter types.', n
ull, function() { |
| 235 new PaymentRequest('', '', '') | 187 new PaymentRequest('', '', '') |
| 236 }], | 188 }], |
| 237 ['PaymentRequest constructor should throw for undefined required parameters.
', null, function() { | 189 ['PaymentRequest constructor should throw for undefined required parameters.
', null, function() { |
| 238 new PaymentRequest(undefined, undefined) | 190 new PaymentRequest(undefined, undefined) |
| 239 }], | 191 }], |
| 240 ['PaymentRequest constructor should throw for null required parameter.', nul
l, function() { | 192 ['PaymentRequest constructor should throw for null required parameter.', nul
l, function() { |
| 241 new PaymentRequest(null, null) | 193 new PaymentRequest(null, null) |
| 242 }], | 194 }], |
| 243 ['Empty list of supported payment method identifiers should throw TypeError.
', new TypeError(), function() { | 195 ['Empty list of supported payment method identifiers should throw TypeError.
', new TypeError(), function() { |
| 244 new PaymentRequest([], buildDetails()) | 196 new PaymentRequest([], buildDetails()) |
| 245 }], | 197 }], |
| 246 ['Empty supported payment method identifiers should throw TypeError.', null,
function() { | 198 ['Empty supported payment method identifiers should throw TypeError.', null,
function() { |
| 247 new PaymentRequest([{'supportedMethods': []}], buildDetails()) | 199 new PaymentRequest([{'supportedMethods': []}], buildDetails()) |
| 248 }], | 200 }], |
| 249 ['Duplicate supported payment method identifiers should throw TypeError.', n
ull, function() { | 201 ['Duplicate supported payment method identifiers should throw TypeError.', n
ull, function() { |
| 250 new PaymentRequest([{'supportedMethods': ['foo', 'foo']}], buildDetails(
), {}) | 202 new PaymentRequest([{'supportedMethods': ['foo', 'foo']}], buildDetails(
), {}) |
| 251 }], | 203 }], |
| 252 ['Duplicate supported payment method identifiers should throw TypeError.', n
ull, function() { | 204 ['Duplicate supported payment method identifiers should throw TypeError.', n
ull, function() { |
| 253 new PaymentRequest([{'supportedMethods': ['foo']}, {'supportedMethods':
['foo']}], buildDetails(), {}) | 205 new PaymentRequest([{'supportedMethods': ['foo']}, {'supportedMethods':
['foo']}], buildDetails(), {}) |
| 254 }], | 206 }], |
| 207 ['Absence of total should throw TypeError.', null, function() { |
| 208 new PaymentRequest([{'supportedMethods': ['foo']}], {'displayItems': [bu
ildItem()]}) |
| 209 }], |
| 210 ['Negative total value should throw a TypeError.', null, function() { |
| 211 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails('total'
, {'value': '-0.01'})) |
| 212 }], |
| 255 ['Duplicate supported payment method identifiers in modifiers should throw T
ypeError.', null, function() { | 213 ['Duplicate supported payment method identifiers in modifiers should throw T
ypeError.', null, function() { |
| 256 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': ['foo', 'foo']}]}) | 214 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': ['foo', 'foo']}]}) |
| 257 }], | 215 }], |
| 258 ['Duplicate supported payment method identifiers in modifiers should throw T
ypeError.', null, function() { | 216 ['Duplicate supported payment method identifiers in modifiers should throw T
ypeError.', null, function() { |
| 259 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': ['foo']}, {'supportedMethods': ['foo']}]}) | 217 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': ['foo']}, {'supportedMethods': ['foo']}]}) |
| 260 }], | 218 }], |
| 219 ['Negative total value in PaymentDetailsModifier should throw a TypeError.',
null, function() { |
| 220 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': ['foo'], 'total': buildItem({'value': '-0.
01'})}]}) |
| 221 }], |
| 222 ['Null supportedMethods in modifiers should throw TypeError.', null, functio
n() { |
| 223 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': null}]}) |
| 224 }], |
| 225 ['Undefined supportedMethods in modifiers should throw TypeError.', null, fu
nction() { |
| 226 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': undefined}]}) |
| 227 }], |
| 228 ['Empty supportedMethods in modifiers should throw TypeError.', null, functi
on() { |
| 229 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'supportedMethods': []}]}) |
| 230 }], |
| 231 ['Absence of supportedMethods in modifiers should throw TypeError.', null, f
unction() { |
| 232 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': [{'total': buildItem()}]}) |
| 233 }], |
| 234 ['Empty modifiers should throw TypeError.', null, function() { |
| 235 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'modifiers': []}) |
| 236 }], |
| 261 ['Empty details should throw', null, function() { | 237 ['Empty details should throw', null, function() { |
| 262 new PaymentRequest([{'supportedMethods': ['foo']}], {}) | 238 new PaymentRequest([{'supportedMethods': ['foo']}], {}) |
| 263 }], | 239 }], |
| 264 ['Null items should throw', new TypeError(), function() { | 240 ['Null items should throw', new TypeError(), function() { |
| 265 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': null}); | 241 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': null}); |
| 266 }], | 242 }], |
| 267 ['Null shipping options should throw', new TypeError(), function() { | 243 ['Null shipping options should throw', new TypeError(), function() { |
| 268 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': [buildItem()], 'shippingOptions': null}); | 244 new PaymentRequest([{'supportedMethods': ['foo']}], {'total': buildItem(
), 'displayItems': [buildItem()], 'shippingOptions': null}); |
| 269 }], | 245 }], |
| 270 | 246 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 }], | 332 }], |
| 357 ['Null amount should throw', null, function() { | 333 ['Null amount should throw', null, function() { |
| 358 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': null})) | 334 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': null})) |
| 359 }], | 335 }], |
| 360 ['Undefined amount should throw', null, function() { | 336 ['Undefined amount should throw', null, function() { |
| 361 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': undefined})) | 337 new PaymentRequest([{'supportedMethods': ['foo']}], buildDetails(det
ailNames[i], {'value': undefined})) |
| 362 }], | 338 }], |
| 363 ]); | 339 ]); |
| 364 } | 340 } |
| 365 </script> | 341 </script> |
| OLD | NEW |