diff options
author | AgostonSzepessy <agszepp@gmail.com> | 2016-03-06 18:47:35 -0500 |
---|---|---|
committer | AgostonSzepessy <agszepp@gmail.com> | 2016-03-22 23:13:30 -0400 |
commit | d3528ffce4092e0b28b9494f96555368bf8945b9 (patch) | |
tree | af13c09d65a3a61e6131b96e4aa45e6bab27905b /components/script/dom/bindings/codegen/parser/tests/test_replaceable.py | |
parent | 003fdd41769652188a5954e6499f3cb44eef6b10 (diff) | |
download | servo-d3528ffce4092e0b28b9494f96555368bf8945b9.tar.gz servo-d3528ffce4092e0b28b9494f96555368bf8945b9.zip |
components/script/dom/bindings/codegen/parser/update.sh now downloads all
the latest *.py tests from
https://hg.mozilla.org/mozilla-central/archive/tip.tar.gz/dom/bindings/parser/tests/
Diffstat (limited to 'components/script/dom/bindings/codegen/parser/tests/test_replaceable.py')
-rw-r--r-- | components/script/dom/bindings/codegen/parser/tests/test_replaceable.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/parser/tests/test_replaceable.py b/components/script/dom/bindings/codegen/parser/tests/test_replaceable.py new file mode 100644 index 00000000000..93ee42ed919 --- /dev/null +++ b/components/script/dom/bindings/codegen/parser/tests/test_replaceable.py @@ -0,0 +1,58 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +def should_throw(parser, harness, message, code): + parser = parser.reset(); + threw = False + try: + parser.parse(code) + parser.finish() + except: + threw = True + + harness.ok(threw, "Should have thrown: %s" % message) + + +def WebIDLTest(parser, harness): + # The [Replaceable] extended attribute MUST take no arguments. + should_throw(parser, harness, "no arguments", """ + interface I { + [Replaceable=X] readonly attribute long A; + }; + """) + + # An attribute with the [Replaceable] extended attribute MUST NOT also be + # declared with the [PutForwards] extended attribute. + should_throw(parser, harness, "PutForwards", """ + interface I { + [PutForwards=B, Replaceable] readonly attribute J A; + }; + interface J { + attribute long B; + }; + """) + + # The [Replaceable] extended attribute MUST NOT be used on an attribute + # that is not read only. + should_throw(parser, harness, "writable attribute", """ + interface I { + [Replaceable] attribute long A; + }; + """) + + # The [Replaceable] extended attribute MUST NOT be used on a static + # attribute. + should_throw(parser, harness, "static attribute", """ + interface I { + [Replaceable] static readonly attribute long A; + }; + """) + + # The [Replaceable] extended attribute MUST NOT be used on an attribute + # declared on a callback interface. + should_throw(parser, harness, "callback interface", """ + callback interface I { + [Replaceable] readonly attribute long A; + }; + """) |