Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | import WebIDL |
michael@0 | 2 | |
michael@0 | 3 | def WebIDLTest(parser, harness): |
michael@0 | 4 | # Check that error messages put the '^' in the right place. |
michael@0 | 5 | |
michael@0 | 6 | threw = False |
michael@0 | 7 | input = """\ |
michael@0 | 8 | // This is a comment. |
michael@0 | 9 | interface Foo { |
michael@0 | 10 | }; |
michael@0 | 11 | |
michael@0 | 12 | /* This is also a comment. */ |
michael@0 | 13 | interface ?""" |
michael@0 | 14 | try: |
michael@0 | 15 | parser.parse(input) |
michael@0 | 16 | results = parser.finish() |
michael@0 | 17 | except WebIDL.WebIDLError, e: |
michael@0 | 18 | threw = True |
michael@0 | 19 | lines = str(e).split('\n') |
michael@0 | 20 | |
michael@0 | 21 | harness.check(len(lines), 3, 'Expected number of lines in error message') |
michael@0 | 22 | harness.ok(lines[0].endswith('line 6:10'), 'First line of error should end with "line 6:10", but was "%s".' % lines[0]) |
michael@0 | 23 | harness.check(lines[1], 'interface ?', 'Second line of error message is the line which caused the error.') |
michael@0 | 24 | harness.check(lines[2], ' ' * (len('interface ?') - 1) + '^', |
michael@0 | 25 | 'Correct column pointer in error message.') |
michael@0 | 26 | |
michael@0 | 27 | harness.ok(threw, "Should have thrown.") |
michael@0 | 28 |