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 bb8150d79d6d3eb806d222e57c5ede29019bf217..3aa386e5a87590dc74633e3d95cacadd6f48abb8 100755 |
--- a/build/android/gyp/java_cpp_enum_tests.py |
+++ b/build/android/gyp/java_cpp_enum_tests.py |
@@ -14,7 +14,8 @@ import os |
import sys |
import unittest |
-from java_cpp_enum import EnumDefinition, GenerateOutput, HeaderParser |
+from java_cpp_enum import EnumDefinition, GenerateOutput, GetScriptName |
+from java_cpp_enum import HeaderParser |
sys.path.append(os.path.join(os.path.dirname(__file__), "gyp")) |
from util import build_utils |
@@ -31,7 +32,7 @@ class TestPreprocess(unittest.TestCase): |
// found in the LICENSE file. |
// This file is autogenerated by |
-// build/android/gyp/java_cpp_enum_tests.py |
+// %s |
// From |
// path/to/file |
@@ -42,7 +43,7 @@ public class ClassName { |
public static final int E2 = 2 << 2; |
} |
""" |
- self.assertEqual(expected, output) |
+ self.assertEqual(expected % GetScriptName(), output) |
def testParseSimpleEnum(self): |
test_data = """ |
@@ -150,6 +151,78 @@ public class ClassName { |
with self.assertRaises(Exception): |
HeaderParser(test_data).ParseDefinitions() |
+ def testParseEnumClass(self): |
+ test_data = """ |
+ // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
+ enum class Foo { |
+ FOO_A, |
+ }; |
+ """.split('\n') |
+ definitions = HeaderParser(test_data).ParseDefinitions() |
+ self.assertEqual(1, len(definitions)) |
+ definition = definitions[0] |
+ self.assertEqual('Foo', definition.class_name) |
+ self.assertEqual('test.namespace', definition.enum_package) |
+ self.assertEqual(collections.OrderedDict([('A', 0)]), |
+ definition.entries) |
+ |
+ def testParseEnumStruct(self): |
+ test_data = """ |
+ // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
+ enum struct Foo { |
+ FOO_A, |
+ }; |
+ """.split('\n') |
+ definitions = HeaderParser(test_data).ParseDefinitions() |
+ self.assertEqual(1, len(definitions)) |
+ definition = definitions[0] |
+ self.assertEqual('Foo', definition.class_name) |
+ self.assertEqual('test.namespace', definition.enum_package) |
+ self.assertEqual(collections.OrderedDict([('A', 0)]), |
+ definition.entries) |
+ |
+ def testParseFixedTypeEnum(self): |
+ test_data = """ |
+ // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
+ enum Foo : int { |
+ FOO_A, |
+ }; |
+ """.split('\n') |
+ definitions = HeaderParser(test_data).ParseDefinitions() |
+ self.assertEqual(1, len(definitions)) |
+ definition = definitions[0] |
+ self.assertEqual('Foo', definition.class_name) |
+ self.assertEqual('test.namespace', definition.enum_package) |
+ self.assertEqual('int', definition.fixed_type) |
+ self.assertEqual(collections.OrderedDict([('A', 0)]), |
+ definition.entries) |
+ |
+ def testParseFixedTypeEnumClass(self): |
+ test_data = """ |
+ // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
+ enum class Foo: unsigned short { |
+ FOO_A, |
+ }; |
+ """.split('\n') |
+ definitions = HeaderParser(test_data).ParseDefinitions() |
+ self.assertEqual(1, len(definitions)) |
+ definition = definitions[0] |
+ self.assertEqual('Foo', definition.class_name) |
+ self.assertEqual('test.namespace', definition.enum_package) |
+ self.assertEqual('unsigned short', definition.fixed_type) |
+ self.assertEqual(collections.OrderedDict([('A', 0)]), |
+ definition.entries) |
+ |
+ def testParseUnknownFixedTypeRaises(self): |
+ test_data = """ |
+ // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
+ enum class Foo: foo_type { |
+ FOO_A, |
+ }; |
+ """.split('\n') |
+ with self.assertRaises(Exception): |
+ HeaderParser(test_data).ParseDefinitions() |
+ |
def testEnumValueAssignmentNoneDefined(self): |
definition = EnumDefinition(original_enum_name='c', enum_package='p') |
definition.AppendEntry('A', None) |