OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
3 <script> | 3 <script> |
4 description('IDL union types unittests'); | 4 description('IDL union types unittests'); |
5 | 5 |
6 var element = document.createElement('div'); | 6 var element = document.createElement('div'); |
7 var nodeList = document.querySelectorAll('script'); | 7 var nodeList = document.querySelectorAll('script'); |
8 | 8 |
9 if (window.internals) { | 9 if (window.internals) { |
10 // The conversion rule prefers string over double, hence a value which | 10 // The conversion rule prefers string over double, hence a value which |
(...skipping 25 matching lines...) Expand all Loading... |
36 shouldBeEqualToString('unionTypesTest.doubleOrStringArg(undefined)', 'string
is passed: undefined'); | 36 shouldBeEqualToString('unionTypesTest.doubleOrStringArg(undefined)', 'string
is passed: undefined'); |
37 shouldBeEqualToString('unionTypesTest.doubleOrStringArg(null)', 'string is p
assed: null'); | 37 shouldBeEqualToString('unionTypesTest.doubleOrStringArg(null)', 'string is p
assed: null'); |
38 shouldBeEqualToString('unionTypesTest.doubleOrStringArg({})', 'string is pas
sed: [object Object]'); | 38 shouldBeEqualToString('unionTypesTest.doubleOrStringArg({})', 'string is pas
sed: [object Object]'); |
39 shouldBeEqualToString('unionTypesTest.doubleOrStringArg([])', 'string is pas
sed: '); | 39 shouldBeEqualToString('unionTypesTest.doubleOrStringArg([])', 'string is pas
sed: '); |
40 // ToString(Date) can contain timezone, so we can't specify the expectation. | 40 // ToString(Date) can contain timezone, so we can't specify the expectation. |
41 // Just check that doubleOrStringArg() doesn't throw an exception. | 41 // Just check that doubleOrStringArg() doesn't throw an exception. |
42 shouldBeEqualToString('typeof unionTypesTest.doubleOrStringArg(new Date)', '
string'); | 42 shouldBeEqualToString('typeof unionTypesTest.doubleOrStringArg(new Date)', '
string'); |
43 shouldThrow('unionTypesTest.doubleOrStringArg()'); | 43 shouldThrow('unionTypesTest.doubleOrStringArg()'); |
44 debug(''); | 44 debug(''); |
45 | 45 |
| 46 shouldBeEqualToString('unionTypesTest.doubleOrInternalEnumArg(3.14)', 'doubl
e is passed: 3.14'); |
| 47 // "foo" is a valid InternalEnum value. |
| 48 shouldBeEqualToString('unionTypesTest.doubleOrInternalEnumArg("foo")', 'Inte
rnalEnum is passed: foo'); |
| 49 shouldThrow('unionTypesTest.doubleOrInternalEnumArg("invalid")'); |
| 50 // Implicit string conversion will occur for non-double or non-string values |
| 51 // and they result in invalid InternalEnum values, so exceptions should be |
| 52 // thrown. |
| 53 shouldThrow('unionTypesTest.doubleOrInternalEnumArg(null)'); |
| 54 shouldThrow('unionTypesTest.doubleOrInternalEnumArg({})'); |
| 55 shouldThrow('unionTypesTest.doubleOrInternalEnumArg([])'); |
| 56 debug(''); |
| 57 |
46 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([])', ''); | 58 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([])', ''); |
47 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([3.14, "foo"])'
, 'double: 3.14, string: foo'); | 59 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([3.14, "foo"])'
, 'double: 3.14, string: foo'); |
48 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([1, "foo", "bar
", 2])', 'double: 1, string: foo, string: bar, double: 2'); | 60 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([1, "foo", "bar
", 2])', 'double: 1, string: foo, string: bar, double: 2'); |
49 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([null, undefine
d, {}, []])', 'string: null, string: undefined, string: [object Object], string:
'); | 61 shouldBeEqualToString('unionTypesTest.doubleOrStringArrayArg([null, undefine
d, {}, []])', 'string: null, string: undefined, string: [object Object], string:
'); |
50 shouldThrow('unionTypesTest.doubleOrStringArrayArg(null)'); | 62 shouldThrow('unionTypesTest.doubleOrStringArrayArg(null)'); |
51 shouldThrow('unionTypesTest.doubleOrStringArrayArg(undefined)'); | 63 shouldThrow('unionTypesTest.doubleOrStringArrayArg(undefined)'); |
52 shouldThrow('unionTypesTest.doubleOrStringArrayArg({})'); | 64 shouldThrow('unionTypesTest.doubleOrStringArrayArg({})'); |
53 debug(''); | 65 debug(''); |
54 | 66 |
55 shouldBeEqualToString('unionTypesTest.doubleOrStringSequenceArg([])', ''); | 67 shouldBeEqualToString('unionTypesTest.doubleOrStringSequenceArg([])', ''); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg("abc")', 'string: abc'); | 140 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg("abc")', 'string: abc'); |
129 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(3.14)', 'double: 3.14'); | 141 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(3.14)', 'double: 3.14'); |
130 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(true)', 'string: true'); | 142 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(true)', 'string: true'); |
131 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(null)', 'null'); | 143 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(null)', 'null'); |
132 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(undefined)', 'null'); | 144 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(undefined)', 'null'); |
133 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg([])', 'sequence: []'); | 145 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg([])', 'sequence: []'); |
134 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(["a", 3.14])', 'sequence: [a, 3.14]'); | 146 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(["a", 3.14])', 'sequence: [a, 3.14]'); |
135 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(new Array(3))', 'sequence: [undefined, undefined, undefined]'); | 147 shouldBeEqualToString('unionTypesTest.doubleOrStringOrStringSequenceNullable
Arg(new Array(3))', 'sequence: [undefined, undefined, undefined]'); |
136 } | 148 } |
137 </script> | 149 </script> |
OLD | NEW |