| Index: third_party/WebKit/Source/bindings/scripts/idl_types_test.py
|
| diff --git a/third_party/WebKit/Source/bindings/scripts/idl_types_test.py b/third_party/WebKit/Source/bindings/scripts/idl_types_test.py
|
| index b21f00b77873eb6eca8828c5e1a878f4e1fe5283..931c465461a159b0a8571fa7abab0b4ec603f990 100644
|
| --- a/third_party/WebKit/Source/bindings/scripts/idl_types_test.py
|
| +++ b/third_party/WebKit/Source/bindings/scripts/idl_types_test.py
|
| @@ -8,6 +8,8 @@
|
|
|
| import unittest
|
|
|
| +from idl_types import IdlRecordType
|
| +from idl_types import IdlSequenceType
|
| from idl_types import IdlType
|
|
|
|
|
| @@ -18,3 +20,59 @@ class IdlTypeTest(unittest.TestCase):
|
| self.assertTrue(idl_type.is_void)
|
| idl_type = IdlType('somethingElse')
|
| self.assertFalse(idl_type.is_void)
|
| +
|
| +
|
| +class IdlRecordTypeTest(unittest.TestCase):
|
| +
|
| + def test_idl_types(self):
|
| + idl_type = IdlRecordType(IdlType('USVString'), IdlType('long'))
|
| + idl_types = list(idl_type.idl_types())
|
| + self.assertEqual(len(idl_types), 3)
|
| + self.assertIs(idl_types[0], idl_type)
|
| + self.assertEqual(idl_types[1].name, 'USVString')
|
| + self.assertEqual(idl_types[2].name, 'Long')
|
| + self.assertListEqual(list(idl_type.idl_types()),
|
| + [idl_type, idl_type.key_type, idl_type.value_type])
|
| +
|
| + idl_type = IdlRecordType(IdlType('DOMString'), IdlSequenceType(IdlType('unrestricted float')))
|
| + idl_types = list(idl_type.idl_types())
|
| + self.assertEqual(len(idl_types), 4)
|
| + self.assertIs(idl_types[0], idl_type)
|
| + self.assertEqual(idl_types[1].name, 'String')
|
| + self.assertEqual(idl_types[2].name, 'UnrestrictedFloatSequence')
|
| + self.assertEqual(idl_types[3].name, 'UnrestrictedFloat')
|
| + self.assertListEqual(list(idl_type.idl_types()),
|
| + [idl_type, idl_type.key_type, idl_type.value_type, idl_type.value_type.element_type])
|
| +
|
| + idl_type = IdlRecordType(IdlType('ByteString'),
|
| + IdlRecordType(IdlType('DOMString'), IdlType('octet')))
|
| + idl_types = list(idl_type.idl_types())
|
| + self.assertEqual(len(idl_types), 5)
|
| + self.assertIs(idl_types[0], idl_type)
|
| + self.assertEqual(idl_types[1].name, 'ByteString')
|
| + self.assertEqual(idl_types[2].name, 'StringOctetRecord')
|
| + self.assertEqual(idl_types[3].name, 'String')
|
| + self.assertEqual(idl_types[4].name, 'Octet')
|
| + self.assertListEqual(list(idl_type.idl_types()),
|
| + [idl_type, idl_type.key_type, idl_type.value_type, idl_type.value_type.key_type,
|
| + idl_type.value_type.value_type])
|
| +
|
| + def test_is_record(self):
|
| + idl_type = IdlType('USVString')
|
| + self.assertFalse(idl_type.is_record_type)
|
| + idl_type = IdlSequenceType(IdlRecordType(IdlType('DOMString'), IdlType('byte')))
|
| + self.assertFalse(idl_type.is_record_type)
|
| + idl_type = IdlRecordType(IdlType('USVString'), IdlType('long'))
|
| + self.assertTrue(idl_type.is_record_type)
|
| + idl_type = IdlRecordType(IdlType('USVString'), IdlSequenceType(IdlType('boolean')))
|
| + self.assertTrue(idl_type.is_record_type)
|
| +
|
| + def test_name(self):
|
| + idl_type = IdlRecordType(IdlType('ByteString'), IdlType('octet'))
|
| + self.assertEqual(idl_type.name, 'ByteStringOctetRecord')
|
| + idl_type = IdlRecordType(IdlType('USVString'), IdlSequenceType(IdlType('double')))
|
| + self.assertEqual(idl_type.name, 'USVStringDoubleSequenceRecord')
|
| + idl_type = IdlRecordType(IdlType('DOMString'),
|
| + IdlRecordType(IdlType('ByteString'),
|
| + IdlSequenceType(IdlType('unsigned short'))))
|
| + self.assertEqual(idl_type.name, 'StringByteStringUnsignedShortSequenceRecordRecord')
|
|
|