summaryrefslogtreecommitdiffstats
path: root/dom/bindings/parser/tests/test_union_nullable.py
diff options
context:
space:
mode:
Diffstat (limited to 'dom/bindings/parser/tests/test_union_nullable.py')
-rw-r--r--dom/bindings/parser/tests/test_union_nullable.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/dom/bindings/parser/tests/test_union_nullable.py b/dom/bindings/parser/tests/test_union_nullable.py
new file mode 100644
index 0000000000..d3255a7e05
--- /dev/null
+++ b/dom/bindings/parser/tests/test_union_nullable.py
@@ -0,0 +1,60 @@
+def WebIDLTest(parser, harness):
+ threw = False
+ try:
+ parser.parse(
+ """
+ interface OneNullableInUnion {
+ undefined foo((object? or DOMString?) arg);
+ };
+ """
+ )
+
+ parser.finish()
+ except Exception:
+ 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 Exception:
+ 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 Exception:
+ threw = True
+
+ harness.ok(
+ threw,
+ "A nullable union type with a nullable member type should have " "thrown.",
+ )