Ejemplo n.º 1
0
 def testParseMalformedMultiLineDirectiveWithOtherDirective(self):
     test_data = """
   // GENERATED_JAVA_ENUM_PACKAGE: (
   //   test.name
   //   space
   // GENERATED_JAVA_CLASS_NAME_OVERRIDE: Bar
   enum Foo {
     FOO_A,
   };
 """.split('\n')
     with self.assertRaises(Exception):
         HeaderParser(test_data).ParseDefinitions()
Ejemplo n.º 2
0
 def testParseSimpleMultiLineDirective(self):
     test_data = """
   // GENERATED_JAVA_ENUM_PACKAGE: (
   //   test.namespace)
   // GENERATED_JAVA_CLASS_NAME_OVERRIDE: Bar
   enum Foo {
     FOO_A,
   };
 """.split('\n')
     definitions = HeaderParser(test_data).ParseDefinitions()
     self.assertEqual('test.namespace', definitions[0].enum_package)
     self.assertEqual('Bar', definitions[0].class_name)
Ejemplo n.º 3
0
 def testParseSingleLineEnum(self):
     test_data = """
   // GENERATED_JAVA_ENUM_PACKAGE: other.package
   // GENERATED_JAVA_PREFIX_TO_STRIP: P_
   enum EnumTwo { P_A, P_B };
 """.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', 0), ('B', 1)]),
                      definition.entries)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 def testParseSimpleEnum(self):
     test_data = """
   // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
   enum EnumName {
     VALUE_ZERO,
     VALUE_ONE,
   };
 """.split('\n')
     definitions = HeaderParser(test_data).ParseDefinitions()
     self.assertEqual(1, len(definitions))
     definition = definitions[0]
     self.assertEqual('EnumName', definition.class_name)
     self.assertEqual('test.namespace', definition.enum_package)
     self.assertEqual(
         collections.OrderedDict([('VALUE_ZERO', 0), ('VALUE_ONE', 1)]),
         definition.entries)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 def testParseEnumEntryWithTrailingMultilineEntry(self):
   test_data = """
     // GENERATED_JAVA_ENUM_PACKAGE: bar.namespace
     enum Foo {
       VALUE_ZERO = 1,
       VALUE_ONE =
           SymbolKey | FnKey | AltGrKey | MetaKey |
           AltKey | ControlKey | ShiftKey,
     };
   """.split('\n')
   expected_entries = collections.OrderedDict([
       ('VALUE_ZERO', '1'),
       ('VALUE_ONE', 'SymbolKey | FnKey | AltGrKey | MetaKey | AltKey | '
        'ControlKey | ShiftKey')])
   definitions = HeaderParser(test_data).ParseDefinitions()
   self.assertEqual(1, len(definitions))
   definition = definitions[0]
   self.assertEqual('Foo', definition.class_name)
   self.assertEqual('bar.namespace', definition.enum_package)
   self.assertEqual(expected_entries, definition.entries)
Ejemplo n.º 9
0
  def testParseTwoEnums(self):
    test_data = """
      // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
      enum EnumOne {
        ENUM_ONE_A = 1,
        // Comment there
        ENUM_ONE_B = A,
      };

      enum EnumIgnore {
        C, D, E
      };

      // GENERATED_JAVA_ENUM_PACKAGE: other.package
      // GENERATED_JAVA_PREFIX_TO_STRIP: P_
      enum EnumTwo {
        P_A,
        // This comment spans
        // two lines.
        P_B
      };
    """.split('\n')
    definitions = HeaderParser(test_data).ParseDefinitions()
    self.assertEqual(2, len(definitions))
    definition = definitions[0]
    self.assertEqual('EnumOne', definition.class_name)
    self.assertEqual('test.namespace', definition.enum_package)
    self.assertEqual(collections.OrderedDict([('A', '1'),
                                              ('B', 'A')]),
                     definition.entries)
    self.assertEqual(collections.OrderedDict([('ENUM_ONE_B', 'Comment there')]),
                     definition.comments)
    definition = definitions[1]
    self.assertEqual('EnumTwo', definition.class_name)
    self.assertEqual('other.package', definition.enum_package)
    self.assertEqual(collections.OrderedDict(
        [('P_B', 'This comment spans two lines.')]), definition.comments)
    self.assertEqual(collections.OrderedDict([('A', 0),
                                              ('B', 1)]),
                     definition.entries)
Ejemplo n.º 10
0
    def testParseClassNameOverride(self):
        test_data = """
      // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
      // GENERATED_JAVA_CLASS_NAME_OVERRIDE: OverrideName
      enum EnumName {
        FOO
      };

      // GENERATED_JAVA_ENUM_PACKAGE: test.namespace
      // GENERATED_JAVA_CLASS_NAME_OVERRIDE: OtherOverride
      enum PrefixTest {
        PREFIX_TEST_A,
        PREFIX_TEST_B,
      };
    """.split('\n')
        definitions = HeaderParser(test_data).ParseDefinitions()
        self.assertEqual(2, len(definitions))
        definition = definitions[0]
        self.assertEqual('OverrideName', definition.class_name)

        definition = definitions[1]
        self.assertEqual('OtherOverride', definition.class_name)
        self.assertEqual(collections.OrderedDict([('A', 0), ('B', 1)]),
                         definition.entries)
Ejemplo n.º 11
0
    def testParseNoCommaAfterLastEntry(self):
        test_data = """
      // GENERATED_JAVA_ENUM_PACKAGE: bar.namespace
      enum Foo {
        VALUE_ZERO = 1,

        // This is a multiline
        //
        // comment with an empty line.
        VALUE_ONE = 2
      };
    """.split('\n')
        expected_entries = collections.OrderedDict([('VALUE_ZERO', '1'),
                                                    ('VALUE_ONE', '2')])
        expected_comments = collections.OrderedDict([
            ('VALUE_ONE', 'This is a multiline comment with an empty line.')
        ])
        definitions = HeaderParser(test_data).ParseDefinitions()
        self.assertEqual(1, len(definitions))
        definition = definitions[0]
        self.assertEqual('Foo', definition.class_name)
        self.assertEqual('bar.namespace', definition.enum_package)
        self.assertEqual(expected_entries, definition.entries)
        self.assertEqual(expected_comments, definition.comments)
Ejemplo n.º 12
0
    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)