blob: 632abaa793e09578d519f17ae4c52f674b1ffa23 [file] [log] [blame]
CONSOLE WARNING: 'KeyboardEvent.keyLocation' is deprecated and will be removed in M50, around April 2016. Please use 'KeyboardEvent.location' instead. See https://www.chromestatus.com/features/4997403308457984 for more details.
IDL dictionary unittest
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Test for setting an empty dictionary
PASS dict.longMember is undefined.
PASS dict.longMemberWithDefault is 42
PASS dict.longOrNullMember is undefined.
PASS dict.longOrNullMemberWithDefault is null
PASS dict.booleanMember is undefined.
PASS dict.doubleMember is undefined.
PASS dict.unrestrictedDoubleMember is undefined.
PASS dict.stringMember is undefined.
PASS dict.stringMemberWithDefault is "defaultStringValue"
PASS dict.byteStringMember is undefined.
PASS dict.usvStringMember is undefined.
PASS dict.stringSequenceMember is undefined.
PASS dict.stringSequenceMemberWithDefault is []
PASS dict.stringSequenceOrNullMember is undefined.
PASS dict.elementMember is undefined.
PASS dict.elementOrNullMember is undefined.
PASS dict.enumMember is undefined.
PASS dict.enumArrayMember is undefined.
PASS dict.enumMemberWithDefault is "foo"
PASS dict.enumOrNullMember is undefined.
PASS dict.objectMember is undefined.
PASS dict.objectOrNullMemberWithDefault is null
PASS dict.doubleOrStringMember is undefined.
PASS dict.doubleOrStringSequenceMember is undefined.
PASS dict.eventTargetOrNullMember is null
Test for setting undefined
PASS dict.longMember is undefined.
PASS dict.longMemberWithDefault is 42
PASS dict.longOrNullMember is undefined.
PASS dict.longOrNullMemberWithDefault is null
PASS dict.booleanMember is undefined.
PASS dict.doubleMember is undefined.
PASS dict.unrestrictedDoubleMember is undefined.
PASS dict.stringMember is undefined.
PASS dict.byteStringMember is undefined.
PASS dict.usvStringMember is undefined.
PASS dict.stringMemberWithDefault is "defaultStringValue"
PASS dict.stringSequenceMember is undefined.
PASS dict.stringSequenceMemberWithDefault is []
PASS dict.stringSequenceOrNullMember is undefined.
PASS dict.elementMember is undefined.
PASS dict.elementOrNullMember is undefined.
PASS dict.objectMember is undefined.
PASS dict.objectOrNullMemberWithDefault is null
PASS dict.eventTargetOrNullMember is null
Test for setting valid values
PASS dict.longMember is 1
PASS dict.longMemberWithDefault is 2
PASS dict.longOrNullMember is 3
PASS dict.longOrNullMemberWithDefault is 4
PASS dict.stringMember is "modifiedString1"
PASS dict.stringMemberWithDefault is "modifiedString2"
PASS dict.byteStringMember is "\u0000\u0001þÿ"
PASS dict.usvStringMember is "!@#123ABCabc 𐀀"
PASS dict.booleanMember is true
PASS dict.doubleMember is 3.14
PASS dict.unrestrictedDoubleMember is NaN
PASS dict.stringSequenceMember is ["foo", "bar", "baz"]
PASS dict.stringSequenceMemberWithDefault is ["foo", "bar", "baz"]
PASS dict.stringSequenceOrNullMember is []
PASS dict.elementMember is element1
PASS dict.elementOrNullMember is undefined.
PASS dict.enumMember is "foo"
PASS dict.enumMemberWithDefault is "bar"
PASS dict.enumOrNullMember is "baz"
PASS dict.enumArrayMember is ["foo", "bar", "baz"]
PASS dict.objectMember is testObject1
PASS dict.objectOrNullMemberWithDefault is testObject2
PASS dict.doubleOrStringMember is 3.14
PASS dict.doubleOrStringSequenceMember is [3.14, "Hello"]
PASS dict.eventTargetOrNullMember is element1
Additional test for union type members
PASS dict.doubleOrStringMember is "foo"
PASS dict.doubleOrStringMember is "[object Object]"
PASS dict.doubleOrStringMember is ""
PASS dict.doubleOrStringMember is "null"
PASS dict.doubleOrStringMember is undefined.
Test for explicit undefined or null, and missing members
PASS dict.longMember is undefined.
PASS dict.longMemberWithDefault is 0
PASS dict.longOrNullMember is undefined.
PASS dict.longOrNullMemberWithDefault is null
Test for setting invalid member
PASS dict.invalidMember is undefined.
Test for setting invalid double value
PASS dictionaryTest.set({doubleMember: NaN}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': The provided double value is non-finite..
PASS dictionaryTest.set({doubleMember: Infinity}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': The provided double value is non-finite..
PASS dictionaryTest.set({doubleMember: -Infinity}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': The provided double value is non-finite..
PASS dictionaryTest.set({doubleMember: 'invalid'}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': The provided double value is non-finite..
Test for setting invalid ByteString value
PASS dictionaryTest.set({byteStringMember: 'Ā'}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': Value is not a valid ByteString..
Test for setting invalid USVString value
PASS dict.usvStringMember is "_�_�_��_"
Test for setting invalid enum value
PASS dictionaryTest.set({enumMember: 'invalid'}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': The provided value 'invalid' is not a valid enum value of type InternalEnum..
PASS dictionaryTest.set({enumArrayMember: ['foo', 'invalid', 'baz']}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': The provided value 'invalid' is not a valid enum value of type InternalEnum..
Test for setting invalid object value
PASS dictionaryTest.set({objectMember: 42}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member objectMember is not an object..
PASS dictionaryTest.set({objectMember: 'invalid'}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member objectMember is not an object..
Test for setting invalid Element value
PASS dictionaryTest.set({elementMember: 42}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member elementMember is not of type Element..
PASS dictionaryTest.set({elementMember: testObject1}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member elementMember is not of type Element..
PASS dictionaryTest.set({elementMember: []}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member elementMember is not of type Element..
PASS dictionaryTest.set({elementMember: document}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member elementMember is not of type Element..
Test for passing invalid dictionary values
PASS dictionaryTest.set(42) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': parameter 1 ('testingDictionary') is not an object..
PASS dictionaryTest.set('string') threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': parameter 1 ('testingDictionary') is not an object..
Test for [Clamp] and [EnforceRange] member
PASS dict.longMember is -2147483648
PASS dict.longMemberWithClamp is 2147483647
PASS dictionaryTest.set({ longMemberWithEnforceRange: 2147483648 }) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': Value is outside the 'long' value range..
Test for [ImplementedAs] and [DeprecateAs] member
PASS dict.longMember is 42
Test for passing EventTarget
PASS dict.eventTargetOrNullMember is window
PASS dict.eventTargetOrNullMember is null
PASS dict.eventTargetOrNullMember is null
PASS dictionaryTest.set({eventTargetOrNullMember: 'invalid'}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member eventTargetOrNullMember is not of type EventTarget..
PASS dictionaryTest.set({eventTargetOrNullMember: 42}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member eventTargetOrNullMember is not of type EventTarget..
PASS dictionaryTest.set({eventTargetOrNullMember: []}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member eventTargetOrNullMember is not of type EventTarget..
PASS dictionaryTest.set({eventTargetOrNullMember: {}}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member eventTargetOrNullMember is not of type EventTarget..
Test for passing Dictionary (not IDL dictionary)
PASS properties.foo is "x"
PASS properties.bar is "y"
PASS properties.baz is undefined.
PASS properties is {}
PASS dictionaryTest.set({dictionaryMember: 42}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member dictionaryMember is not an object..
PASS dictionaryTest.set({dictionaryMember: 'foo'}) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': member dictionaryMember is not an object..
Test for derived dictionary
PASS derived.longMember is undefined.
PASS derived.longMemberWithDefault is 42
PASS derived.longOrNullMember is undefined.
PASS derived.longOrNullMemberWithDefault is null
PASS derived.booleanMember is undefined.
PASS derived.doubleMember is undefined.
PASS derived.stringMember is undefined.
PASS derived.stringMemberWithDefault is "defaultStringValue"
PASS derived.stringSequenceMember is undefined.
PASS derived.stringSequenceMemberWithDefault is []
PASS derived.stringSequenceOrNullMember is undefined.
PASS derived.elementMember is undefined.
PASS derived.elementOrNullMember is undefined.
PASS derived.enumMember is undefined.
PASS derived.enumMemberWithDefault is "foo"
PASS derived.enumOrNullMember is undefined.
PASS derived.objectMember is undefined.
PASS derived.objectOrNullMemberWithDefault is null
PASS derived.derivedStringMember is undefined.
PASS derived.derivedStringMemberWithDefault is "derivedDefaultStringValue"
PASS derived.requiredBooleanMember is true
PASS derived.longMember is 1
PASS derived.stringMemberWithDefault is "modifiedString"
PASS derived.derivedStringMember is "modifiedString2"
PASS derived.derivedStringMemberWithDefault is "modifiedString3"
PASS derived.invalidMember is undefined.
PASS derived.requiredBooleanMember is false
Test for passing invalid values as derived dictionary
PASS dictionaryTest.setDerived({objectMember: 42, requiredBooleanMember: false }) threw exception TypeError: Failed to execute 'setDerived' on 'DictionaryTest': member objectMember is not an object..
PASS dictionaryTest.setDerived({}) threw exception TypeError: Failed to execute 'setDerived' on 'DictionaryTest': required member requiredBooleanMember is undefined..
PASS successfullyParsed is true
TEST COMPLETE