def WebIDLTest(parser, harness): threw = False try: parser.parse(""" interface Foo { [CEReactions(DOMString a)] void foo(boolean arg2); }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] with an argument") parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions(DOMString b)] readonly attribute boolean bar; }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] with an argument") parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] attribute boolean bar; }; """) results = parser.finish() except Exception, e: harness.ok(False, "Shouldn't have thrown for [CEReactions] used on writable attribute. %s" % e) threw = True parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] void foo(boolean arg2); }; """) results = parser.finish() except Exception, e: harness.ok(False, "Shouldn't have thrown for [CEReactions] used on regular operations. %s" % e) threw = True parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] readonly attribute boolean A; }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] used on a readonly attribute") parser = parser.reset() threw = False try: parser.parse(""" [CEReactions] interface Foo { } """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] used on a interface") parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] getter any(DOMString name); }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] used on a named getter") parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] creator boolean (DOMString name, boolean value); }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] used on a named creator") parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] legacycaller double compute(double x); }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] used on a legacycaller") parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] stringifier DOMString (); }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] used on a stringifier") parser = parser.reset() threw = False try: parser.parse(""" interface Foo { [CEReactions] jsonifier; }; """) results = parser.finish() except: threw = True harness.ok(threw, "Should have thrown for [CEReactions] used on a jsonifier")