| Index: mojo/public/tools/bindings/pylib/parse/mojo_parser_unittest.py | 
| diff --git a/mojo/public/tools/bindings/pylib/parse/mojo_parser_unittest.py b/mojo/public/tools/bindings/pylib/parse/mojo_parser_unittest.py | 
| index 1c22ab93bed6dd6b111ed93feaa6d499f4015f89..cc49c46c3d6de83ace4914a87411a9f4a68754d4 100644 | 
| --- a/mojo/public/tools/bindings/pylib/parse/mojo_parser_unittest.py | 
| +++ b/mojo/public/tools/bindings/pylib/parse/mojo_parser_unittest.py | 
| @@ -41,7 +41,7 @@ module my_module { | 
|  | 
| def testSimpleStruct(self): | 
| """Tests a simple .mojom source that just defines a struct.""" | 
| -    source ="""\ | 
| +    source = """\ | 
| module my_module { | 
|  | 
| struct MyStruct { | 
| @@ -51,7 +51,6 @@ struct MyStruct { | 
|  | 
| }  // module my_module | 
| """ | 
| -    # Note: Output as pretty-printed on failure by the test harness. | 
| expected = \ | 
| [('MODULE', | 
| 'my_module', | 
| @@ -62,6 +61,53 @@ struct MyStruct { | 
| ('FIELD', 'double', 'b', None, None)])])] | 
| self.assertEquals(mojo_parser.Parse(source, "my_file.mojom"), expected) | 
|  | 
| +  def testSimpleStructWithoutModule(self): | 
| +    """Tests a simple struct without an enclosing module.""" | 
| +    source = """\ | 
| +struct MyStruct { | 
| +  int32 a; | 
| +  double b; | 
| +}; | 
| +""" | 
| +    expected = \ | 
| +[('MODULE', | 
| +  '', | 
| +  [('STRUCT', | 
| +    'MyStruct', | 
| +    None, | 
| +    [('FIELD', 'int32', 'a', None, None), | 
| +     ('FIELD', 'double', 'b', None, None)])])] | 
| +    self.assertEquals(mojo_parser.Parse(source, "my_file.mojom"), expected) | 
| + | 
| +  def testMissingModuleName(self): | 
| +    """Tests an (invalid) .mojom with a missing module name.""" | 
| +    source1 = """\ | 
| +// Missing module name. | 
| +module { | 
| +struct MyStruct { | 
| +  int32 a; | 
| +}; | 
| +} | 
| +""" | 
| +    with self.assertRaisesRegexp( | 
| +        mojo_parser.ParseError, | 
| +        r"^my_file\.mojom:2: Error: Unexpected '{':\nmodule {$"): | 
| +      mojo_parser.Parse(source1, "my_file.mojom") | 
| + | 
| +    # Another similar case, but make sure that line-number tracking/reporting | 
| +    # is correct. | 
| +    source2 = """\ | 
| +module | 
| +// This line intentionally left unblank. | 
| + | 
| +{ | 
| +} | 
| +""" | 
| +    with self.assertRaisesRegexp( | 
| +        mojo_parser.ParseError, | 
| +        r"^my_file\.mojom:4: Error: Unexpected '{':\n{$"): | 
| +      mojo_parser.Parse(source2, "my_file.mojom") | 
| + | 
| def testEnumExpressions(self): | 
| """Tests an enum with values calculated using simple expressions.""" | 
| source = """\ | 
|  |