| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import imp | 5 import imp |
| 6 import os.path | 6 import os.path |
| 7 import sys | 7 import sys |
| 8 import unittest | 8 import unittest |
| 9 | 9 |
| 10 # Disable lint check for finding modules: | 10 # Disable lint check for finding modules: |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 source1 = "interface MyInterface { MyMethod(int32 a); };" | 585 source1 = "interface MyInterface { MyMethod(int32 a); };" |
| 586 expected1 = \ | 586 expected1 = \ |
| 587 [('MODULE', | 587 [('MODULE', |
| 588 '', | 588 '', |
| 589 None, | 589 None, |
| 590 [('INTERFACE', | 590 [('INTERFACE', |
| 591 'MyInterface', | 591 'MyInterface', |
| 592 None, | 592 None, |
| 593 [('METHOD', | 593 [('METHOD', |
| 594 'MyMethod', | 594 'MyMethod', |
| 595 [ast.Parameter('int32', 'a', ast.Ordinal(None))], | 595 ast.ParameterList(ast.Parameter('int32', 'a', ast.Ordinal(None))), |
| 596 ast.Ordinal(None), | 596 ast.Ordinal(None), |
| 597 None)])])] | 597 None)])])] |
| 598 self.assertEquals(parser.Parse(source1, "my_file.mojom"), expected1) | 598 self.assertEquals(parser.Parse(source1, "my_file.mojom"), expected1) |
| 599 | 599 |
| 600 source2 = """\ | 600 source2 = """\ |
| 601 interface MyInterface { | 601 interface MyInterface { |
| 602 MyMethod1@0(int32 a@0, int64 b@1); | 602 MyMethod1@0(int32 a@0, int64 b@1); |
| 603 MyMethod2@1() => (); | 603 MyMethod2@1() => (); |
| 604 }; | 604 }; |
| 605 """ | 605 """ |
| 606 expected2 = \ | 606 expected2 = \ |
| 607 [('MODULE', | 607 [('MODULE', |
| 608 '', | 608 '', |
| 609 None, | 609 None, |
| 610 [('INTERFACE', | 610 [('INTERFACE', |
| 611 'MyInterface', | 611 'MyInterface', |
| 612 None, | 612 None, |
| 613 [('METHOD', | 613 [('METHOD', |
| 614 'MyMethod1', | 614 'MyMethod1', |
| 615 [ast.Parameter('int32', 'a', ast.Ordinal(0)), | 615 ast.ParameterList([ast.Parameter('int32', 'a', ast.Ordinal(0)), |
| 616 ast.Parameter('int64', 'b', ast.Ordinal(1))], | 616 ast.Parameter('int64', 'b', ast.Ordinal(1))]), |
| 617 ast.Ordinal(0), | 617 ast.Ordinal(0), |
| 618 None), | 618 None), |
| 619 ('METHOD', | 619 ('METHOD', |
| 620 'MyMethod2', | 620 'MyMethod2', |
| 621 [], | 621 ast.ParameterList(), |
| 622 ast.Ordinal(1), | 622 ast.Ordinal(1), |
| 623 [])])])] | 623 ast.ParameterList())])])] |
| 624 self.assertEquals(parser.Parse(source2, "my_file.mojom"), expected2) | 624 self.assertEquals(parser.Parse(source2, "my_file.mojom"), expected2) |
| 625 | 625 |
| 626 source3 = """\ | 626 source3 = """\ |
| 627 interface MyInterface { | 627 interface MyInterface { |
| 628 MyMethod(string a) => (int32 a, bool b); | 628 MyMethod(string a) => (int32 a, bool b); |
| 629 }; | 629 }; |
| 630 """ | 630 """ |
| 631 expected3 = \ | 631 expected3 = \ |
| 632 [('MODULE', | 632 [('MODULE', |
| 633 '', | 633 '', |
| 634 None, | 634 None, |
| 635 [('INTERFACE', | 635 [('INTERFACE', |
| 636 'MyInterface', | 636 'MyInterface', |
| 637 None, | 637 None, |
| 638 [('METHOD', | 638 [('METHOD', |
| 639 'MyMethod', | 639 'MyMethod', |
| 640 [ast.Parameter('string', 'a', ast.Ordinal(None))], | 640 ast.ParameterList(ast.Parameter('string', 'a', |
| 641 ast.Ordinal(None))), |
| 641 ast.Ordinal(None), | 642 ast.Ordinal(None), |
| 642 [ast.Parameter('int32', 'a', ast.Ordinal(None)), | 643 ast.ParameterList([ast.Parameter('int32', 'a', ast.Ordinal(None)), |
| 643 ast.Parameter('bool', 'b', ast.Ordinal(None))])])])] | 644 ast.Parameter('bool', 'b', |
| 645 ast.Ordinal(None))]))])])] |
| 644 self.assertEquals(parser.Parse(source3, "my_file.mojom"), expected3) | 646 self.assertEquals(parser.Parse(source3, "my_file.mojom"), expected3) |
| 645 | 647 |
| 646 def testInvalidMethods(self): | 648 def testInvalidMethods(self): |
| 647 """Tests that invalid method declarations are correctly detected.""" | 649 """Tests that invalid method declarations are correctly detected.""" |
| 648 | 650 |
| 649 # No trailing commas. | 651 # No trailing commas. |
| 650 source1 = """\ | 652 source1 = """\ |
| 651 interface MyInterface { | 653 interface MyInterface { |
| 652 MyMethod(string a,); | 654 MyMethod(string a,); |
| 653 }; | 655 }; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 665 }; | 667 }; |
| 666 """ | 668 """ |
| 667 with self.assertRaisesRegexp( | 669 with self.assertRaisesRegexp( |
| 668 parser.ParseError, | 670 parser.ParseError, |
| 669 r"^my_file\.mojom:2: Error: Unexpected ',':\n" | 671 r"^my_file\.mojom:2: Error: Unexpected ',':\n" |
| 670 r" *MyMethod\(, string a\);$"): | 672 r" *MyMethod\(, string a\);$"): |
| 671 parser.Parse(source2, "my_file.mojom") | 673 parser.Parse(source2, "my_file.mojom") |
| 672 | 674 |
| 673 if __name__ == "__main__": | 675 if __name__ == "__main__": |
| 674 unittest.main() | 676 unittest.main() |
| OLD | NEW |