| Index: build/android/gyp/java_cpp_enum_tests.py
|
| diff --git a/build/android/gyp/java_cpp_enum_tests.py b/build/android/gyp/java_cpp_enum_tests.py
|
| index 8d9e60de698d6699072b1efd22e8491bfdc9a8d7..cd6e1ee1835665dc21a37a71fd43ca8590059df4 100755
|
| --- a/build/android/gyp/java_cpp_enum_tests.py
|
| +++ b/build/android/gyp/java_cpp_enum_tests.py
|
| @@ -97,9 +97,16 @@ public @interface ClassName {
|
| VALUE_ZERO = 1 << 0,
|
| VALUE_ONE = 1 << 1,
|
| };
|
| +
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + enum EnumName {
|
| + ENUM_NAME_ZERO = 1 << 0,
|
| + ENUM_NAME_ONE = 1 << 1,
|
| + ENUM_NAME_TWO = ENUM_NAME_ZERO | ENUM_NAME_ONE,
|
| + };
|
| """.split('\n')
|
| definitions = HeaderParser(test_data).ParseDefinitions()
|
| - self.assertEqual(1, len(definitions))
|
| + self.assertEqual(2, len(definitions))
|
| definition = definitions[0]
|
| self.assertEqual('EnumName', definition.class_name)
|
| self.assertEqual('test.namespace', definition.enum_package)
|
| @@ -107,6 +114,13 @@ public @interface ClassName {
|
| ('VALUE_ONE', '1 << 1')]),
|
| definition.entries)
|
|
|
| + definition = definitions[1]
|
| + expected_entries = collections.OrderedDict([
|
| + ('ZERO', '1 << 0'),
|
| + ('ONE', '1 << 1'),
|
| + ('TWO', 'ZERO | ONE')])
|
| + self.assertEqual(expected_entries, definition.entries)
|
| +
|
| def testParseMultilineEnumEntry(self):
|
| test_data = """
|
| // GENERATED_JAVA_ENUM_PACKAGE: bar.namespace
|
| @@ -289,6 +303,26 @@ public @interface ClassName {
|
| ('B', 1)]),
|
| definition.entries)
|
|
|
| + def testParseWithStrippingAndRelativeReferences(self):
|
| + test_data = """
|
| + // GENERATED_JAVA_ENUM_PACKAGE: other.package
|
| + // GENERATED_JAVA_PREFIX_TO_STRIP: P_
|
| + enum EnumTwo {
|
| + P_A = 1,
|
| + // P_A is old-don't use P_A.
|
| + P_B = P_A,
|
| + };
|
| + """.split('\n')
|
| + definitions = HeaderParser(test_data).ParseDefinitions()
|
| + definition = definitions[0]
|
| + self.assertEqual('EnumTwo', definition.class_name)
|
| + self.assertEqual('other.package', definition.enum_package)
|
| + self.assertEqual(collections.OrderedDict([('A', '1'),
|
| + ('B', 'A')]),
|
| + definition.entries)
|
| + self.assertEqual(collections.OrderedDict([('B', 'A is old-don\'t use A.')]),
|
| + definition.comments)
|
| +
|
| def testParseSingleLineAndRegularEnum(self):
|
| test_data = """
|
| // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| @@ -311,7 +345,7 @@ public @interface ClassName {
|
| definition = definitions[0]
|
| self.assertEqual(
|
| collections.OrderedDict([('A', '1'), ('B', 'A')]), definition.entries)
|
| - self.assertEqual(collections.OrderedDict([('ENUM_ONE_B', 'Comment there')]),
|
| + self.assertEqual(collections.OrderedDict([('B', 'Comment there')]),
|
| definition.comments)
|
|
|
| self.assertEqual(3, len(definitions))
|
| @@ -322,6 +356,106 @@ public @interface ClassName {
|
| definition = definitions[2]
|
| self.assertEqual(collections.OrderedDict([('FOO', 0)]), definition.entries)
|
|
|
| + def testParseWithCamelCaseNames(self):
|
| + test_data = """
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + enum EnumTest {
|
| + EnumTestA = 1,
|
| + // comment for EnumTestB.
|
| + EnumTestB = 2,
|
| + };
|
| +
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + // GENERATED_JAVA_PREFIX_TO_STRIP: Test
|
| + enum AnEnum {
|
| + TestHTTPOption,
|
| + TestHTTPSOption,
|
| + };
|
| +
|
| + """.split('\n')
|
| + definitions = HeaderParser(test_data).ParseDefinitions()
|
| + definition = definitions[0]
|
| + self.assertEqual(
|
| + collections.OrderedDict([('ENUM_TEST_A', '1'), ('ENUM_TEST_B', '2')]),
|
| + definition.entries)
|
| + self.assertEqual(
|
| + collections.OrderedDict([('ENUM_TEST_B', 'comment for ENUM_TEST_B.')]),
|
| + definition.comments)
|
| +
|
| + definition = definitions[1]
|
| + self.assertEqual(
|
| + collections.OrderedDict([('HTTP_OPTION', 0), ('HTTPS_OPTION', 1)]),
|
| + definition.entries)
|
| +
|
| + def testParseWithKCamelCaseNames(self):
|
| + test_data = """
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + enum EnumOne {
|
| + kEnumOne = 1,
|
| + // comment for kEnumTwo.
|
| + kEnumTwo = 2,
|
| + };
|
| +
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + // GENERATED_JAVA_CLASS_NAME_OVERRIDE: OverrideName
|
| + // GENERATED_JAVA_PREFIX_TO_STRIP: kEnumName
|
| + enum EnumName {
|
| + kEnumNameFoo,
|
| + kEnumNameBar
|
| + };
|
| +
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + enum EnumName {
|
| + kEnumNameFoo,
|
| + kEnumBar,
|
| + };
|
| +
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + enum Keys {
|
| + kSymbolKey = 1 << 0,
|
| + kAltKey = 1 << 1,
|
| + kUpKey = 1 << 2,
|
| + kKeyModifiers = kSymbolKey | kAltKey | kUpKey | kKeyModifiers,
|
| + };
|
| +
|
| + // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
|
| + enum Mixed {
|
| + kTestVal,
|
| + kCodecMPEG2
|
| + };
|
| + """.split('\n')
|
| + definitions = HeaderParser(test_data).ParseDefinitions()
|
| + definition = definitions[0]
|
| + self.assertEqual(
|
| + collections.OrderedDict([('ENUM_ONE', '1'), ('ENUM_TWO', '2')]),
|
| + definition.entries)
|
| + self.assertEqual(
|
| + collections.OrderedDict([('ENUM_TWO', 'comment for ENUM_TWO.')]),
|
| + definition.comments)
|
| +
|
| + definition = definitions[1]
|
| + self.assertEqual(
|
| + collections.OrderedDict([('FOO', 0), ('BAR', 1)]),
|
| + definition.entries)
|
| +
|
| + definition = definitions[2]
|
| + self.assertEqual(
|
| + collections.OrderedDict([('ENUM_NAME_FOO', 0), ('ENUM_BAR', 1)]),
|
| + definition.entries)
|
| +
|
| + definition = definitions[3]
|
| + expected_entries = collections.OrderedDict([
|
| + ('SYMBOL_KEY', '1 << 0'),
|
| + ('ALT_KEY', '1 << 1'),
|
| + ('UP_KEY', '1 << 2'),
|
| + ('KEY_MODIFIERS', 'SYMBOL_KEY | ALT_KEY | UP_KEY | KEY_MODIFIERS')])
|
| + self.assertEqual(expected_entries, definition.entries)
|
| +
|
| + definition = definitions[4]
|
| + self.assertEqual(
|
| + collections.OrderedDict([('TEST_VAL', 0), ('CODEC_MPEG2', 1)]),
|
| + definition.entries)
|
| +
|
| def testParseThrowsOnUnknownDirective(self):
|
| test_data = """
|
| // GENERATED_JAVA_UNKNOWN: Value
|
|
|