diff options
Diffstat (limited to 'dom/bindings/parser/tests/test_promise.py')
-rw-r--r-- | dom/bindings/parser/tests/test_promise.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/dom/bindings/parser/tests/test_promise.py b/dom/bindings/parser/tests/test_promise.py new file mode 100644 index 000000000..55bc07680 --- /dev/null +++ b/dom/bindings/parser/tests/test_promise.py @@ -0,0 +1,63 @@ +def WebIDLTest(parser, harness): + threw = False + try: + parser.parse(""" + interface _Promise {}; + interface A { + legacycaller Promise<any> foo(); + }; + """) + results = parser.finish() + + except: + threw = True + harness.ok(threw, + "Should not allow Promise return values for legacycaller.") + + parser = parser.reset() + threw = False + try: + parser.parse(""" + interface _Promise {}; + interface A { + Promise<any> foo(); + long foo(long arg); + }; + """) + results = parser.finish(); + except: + threw = True + harness.ok(threw, + "Should not allow overloads which have both Promise and " + "non-Promise return types.") + + parser = parser.reset() + threw = False + try: + parser.parse(""" + interface _Promise {}; + interface A { + long foo(long arg); + Promise<any> foo(); + }; + """) + results = parser.finish(); + except: + threw = True + harness.ok(threw, + "Should not allow overloads which have both Promise and " + "non-Promise return types.") + + parser = parser.reset() + parser.parse(""" + interface _Promise {}; + interface A { + Promise<any> foo(); + Promise<any> foo(long arg); + }; + """) + results = parser.finish(); + + harness.ok(True, + "Should allow overloads which only have Promise and return " + "types.") |