import WebIDL def WebIDLTest(parser, harness): threw = False try: parser.parse( """ interface OneNullableInUnion { undefined foo((object? or DOMString?) arg); }; """ ) parser.finish() except WebIDL.WebIDLError: threw = True harness.ok(threw, "Two nullable member types of a union should have thrown.") parser.reset() threw = False try: parser.parse( """ interface NullableInNullableUnion { undefined foo((object? or DOMString)? arg); }; """ ) parser.finish() except WebIDL.WebIDLError: threw = True harness.ok( threw, "A nullable union type with a nullable member type should have " "thrown.", ) parser.reset() threw = False try: parser.parse( """ interface NullableInUnionNullableUnionHelper { }; interface NullableInUnionNullableUnion { undefined foo(((object? or DOMString) or NullableInUnionNullableUnionHelper)? arg); }; """ ) parser.finish() except WebIDL.WebIDLError: threw = True harness.ok( threw, "A nullable union type with a nullable member type should have " "thrown.", )