aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/parser/tests/test_dictionary.py
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-10-02 19:55:43 -0400
committerGitHub <noreply@github.com>2019-10-02 19:55:43 -0400
commitf54c15bc48feae267a5ef8f097e168cf7bbdf44e (patch)
treed1312e633d1c6619f0f5f46675710a4790a80eab /components/script/dom/bindings/codegen/parser/tests/test_dictionary.py
parentd1b16afe042a343eed389230ebf114e8e20fa0ce (diff)
parent9ce82ea1aedfd3eddad0eed9fac6718599a25ec3 (diff)
downloadservo-f54c15bc48feae267a5ef8f097e168cf7bbdf44e.tar.gz
servo-f54c15bc48feae267a5ef8f097e168cf7bbdf44e.zip
Auto merge of #24345 - saschanaz:remove-constructor, r=jdm
Migrate to new constructor operation syntax <!-- Please describe your changes on the following line: --> Marking everything as `[Throws]` for simplicity sake (and this matches the previous codegen behavior), but we'll want to unmark some of them as not everything throws. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #24157 <!-- Either: --> - [x] There are tests for these changes <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24345) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/bindings/codegen/parser/tests/test_dictionary.py')
-rw-r--r--components/script/dom/bindings/codegen/parser/tests/test_dictionary.py74
1 files changed, 68 insertions, 6 deletions
diff --git a/components/script/dom/bindings/codegen/parser/tests/test_dictionary.py b/components/script/dom/bindings/codegen/parser/tests/test_dictionary.py
index 770f76b22f0..cff049bea15 100644
--- a/components/script/dom/bindings/codegen/parser/tests/test_dictionary.py
+++ b/components/script/dom/bindings/codegen/parser/tests/test_dictionary.py
@@ -320,14 +320,36 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
- void doFoo(optional A? arg1);
+ void doFoo(optional A? arg1 = {});
};
""")
results = parser.finish()
- except:
- threw = True
+ except Exception as x:
+ threw = x
+
+ harness.ok(threw, "Optional dictionary arg must not be nullable")
+ harness.ok("nullable" in str(threw),
+ "Must have the expected exception for optional nullable dictionary arg")
+
+ parser = parser.reset()
+ threw = False
+ try:
+ parser.parse("""
+ dictionary A {
+ required long x;
+ };
+ interface X {
+ void doFoo(A? arg1);
+ };
+ """)
+ results = parser.finish()
+ except Exception as x:
+ threw = x
- harness.ok(threw, "Dictionary arg must not be nullable")
+ harness.ok(threw, "Required dictionary arg must not be nullable")
+ harness.ok("nullable" in str(threw),
+ "Must have the expected exception for required nullable "
+ "dictionary arg")
parser = parser.reset()
threw = False
@@ -336,14 +358,54 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
- void doFoo(optional (A or long)? arg1);
+ void doFoo(optional (A or long)? arg1 = {});
+ };
+ """)
+ results = parser.finish()
+ except Exception as x:
+ threw = x
+
+ harness.ok(threw, "Dictionary arg must not be in an optional nullable union")
+ harness.ok("nullable" in str(threw),
+ "Must have the expected exception for optional nullable union "
+ "arg containing dictionary")
+
+ parser = parser.reset()
+ threw = False
+ try:
+ parser.parse("""
+ dictionary A {
+ required long x;
+ };
+ interface X {
+ void doFoo((A or long)? arg1);
+ };
+ """)
+ results = parser.finish()
+ except Exception as x:
+ threw = x
+
+ harness.ok(threw, "Dictionary arg must not be in a required nullable union")
+ harness.ok("nullable" in str(threw),
+ "Must have the expected exception for required nullable union "
+ "arg containing dictionary")
+
+ parser = parser.reset()
+ threw = False
+ try:
+ parser.parse("""
+ dictionary A {
+ };
+ interface X {
+ void doFoo(sequence<A?> arg1);
};
""")
results = parser.finish()
except:
threw = True
- harness.ok(threw, "Dictionary arg must not be in a nullable union")
+ harness.ok(not threw,
+ "Nullable union should be allowed in a sequence argument")
parser = parser.reset()
threw = False