test_unenumerable_own_properties.py (1730B)
1 import WebIDL 2 3 4 def WebIDLTest(parser, harness): 5 parser.parse( 6 """ 7 interface Foo {}; 8 [LegacyUnenumerableNamedProperties] 9 interface Bar : Foo { 10 getter long(DOMString name); 11 }; 12 interface Baz : Bar { 13 getter long(DOMString name); 14 }; 15 """ 16 ) 17 results = parser.finish() 18 harness.check(len(results), 3, "Should have three interfaces") 19 20 parser = parser.reset() 21 threw = False 22 try: 23 parser.parse( 24 """ 25 [LegacyUnenumerableNamedProperties] 26 interface NoNamedGetter { 27 }; 28 """ 29 ) 30 31 results = parser.finish() 32 except WebIDL.WebIDLError: 33 threw = True 34 harness.ok(threw, "Should have thrown.") 35 36 parser = parser.reset() 37 threw = False 38 try: 39 parser.parse( 40 """ 41 [LegacyUnenumerableNamedProperties=Foo] 42 interface ShouldNotHaveArg { 43 getter long(DOMString name); 44 }; 45 """ 46 ) 47 48 results = parser.finish() 49 except WebIDL.WebIDLError: 50 threw = True 51 harness.ok(threw, "Should have thrown.") 52 53 parser = parser.reset() 54 threw = False 55 try: 56 parser.parse( 57 """ 58 [LegacyUnenumerableNamedProperties] 59 interface Foo { 60 getter long(DOMString name); 61 }; 62 interface Bar : Foo {}; 63 [LegacyUnenumerableNamedProperties] 64 interface Baz : Bar { 65 getter long(DOMString name); 66 }; 67 """ 68 ) 69 70 results = parser.finish() 71 except WebIDL.WebIDLError: 72 threw = True 73 harness.ok(threw, "Should have thrown.")