aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/parser/tests/test_identifier_conflict.py
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-06-12 07:37:49 -0700
committerGitHub <noreply@github.com>2017-06-12 07:37:49 -0700
commit0c929ad3fd902f4314844787868fe891033d3b01 (patch)
tree23e72087649bef2076bcdf2ed45e69c5889418f4 /components/script/dom/bindings/codegen/parser/tests/test_identifier_conflict.py
parentd7dff8e6d118bf82f837b3e6387cf96647007cdd (diff)
parente566bc7b1c65e54601f5420bfa071bab9c1b83a3 (diff)
downloadservo-0c929ad3fd902f4314844787868fe891033d3b01.tar.gz
servo-0c929ad3fd902f4314844787868fe891033d3b01.zip
Auto merge of #17254 - servo:webidl, r=jdm
Update the WebIDL parser <!-- 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/17254) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/bindings/codegen/parser/tests/test_identifier_conflict.py')
-rw-r--r--components/script/dom/bindings/codegen/parser/tests/test_identifier_conflict.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/parser/tests/test_identifier_conflict.py b/components/script/dom/bindings/codegen/parser/tests/test_identifier_conflict.py
new file mode 100644
index 00000000000..b510a30c044
--- /dev/null
+++ b/components/script/dom/bindings/codegen/parser/tests/test_identifier_conflict.py
@@ -0,0 +1,39 @@
+# Import the WebIDL module, so we can do isinstance checks and whatnot
+import WebIDL
+
+def WebIDLTest(parser, harness):
+ try:
+ parser.parse("""
+ enum Foo { "a" };
+ interface Foo;
+ """)
+ results = parser.finish()
+ harness.ok(False, "Should fail to parse")
+ except Exception, e:
+ harness.ok("Name collision" in e.message,
+ "Should have name collision for interface")
+
+ parser = parser.reset()
+ try:
+ parser.parse("""
+ dictionary Foo { long x; };
+ enum Foo { "a" };
+ """)
+ results = parser.finish()
+ harness.ok(False, "Should fail to parse")
+ except Exception, e:
+ harness.ok("Name collision" in e.message,
+ "Should have name collision for dictionary")
+
+ parser = parser.reset()
+ try:
+ parser.parse("""
+ enum Foo { "a" };
+ enum Foo { "b" };
+ """)
+ results = parser.finish()
+ harness.ok(False, "Should fail to parse")
+ except Exception, e:
+ harness.ok("Multiple unresolvable definitions" in e.message,
+ "Should have name collision for dictionary")
+