aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/parser/tests/test_constructor.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/codegen/parser/tests/test_constructor.py')
-rw-r--r--components/script/dom/bindings/codegen/parser/tests/test_constructor.py594
1 files changed, 0 insertions, 594 deletions
diff --git a/components/script/dom/bindings/codegen/parser/tests/test_constructor.py b/components/script/dom/bindings/codegen/parser/tests/test_constructor.py
deleted file mode 100644
index de5d52f1412..00000000000
--- a/components/script/dom/bindings/codegen/parser/tests/test_constructor.py
+++ /dev/null
@@ -1,594 +0,0 @@
-import WebIDL
-
-
-def WebIDLTest(parser, harness):
- def checkArgument(argument, QName, name, type, optional, variadic):
- harness.ok(isinstance(argument, WebIDL.IDLArgument), "Should be an IDLArgument")
- harness.check(
- argument.identifier.QName(), QName, "Argument has the right QName"
- )
- harness.check(argument.identifier.name, name, "Argument has the right name")
- harness.check(str(argument.type), type, "Argument has the right return type")
- harness.check(
- argument.optional, optional, "Argument has the right optional value"
- )
- harness.check(
- argument.variadic, variadic, "Argument has the right variadic value"
- )
-
- def checkMethod(
- method,
- QName,
- name,
- signatures,
- static=True,
- getter=False,
- setter=False,
- deleter=False,
- legacycaller=False,
- stringifier=False,
- chromeOnly=False,
- htmlConstructor=False,
- secureContext=False,
- pref=None,
- func=None,
- ):
- harness.ok(isinstance(method, WebIDL.IDLMethod), "Should be an IDLMethod")
- harness.ok(method.isMethod(), "Method is a method")
- harness.ok(not method.isAttr(), "Method is not an attr")
- harness.ok(not method.isConst(), "Method is not a const")
- harness.check(method.identifier.QName(), QName, "Method has the right QName")
- harness.check(method.identifier.name, name, "Method has the right name")
- harness.check(method.isStatic(), static, "Method has the correct static value")
- harness.check(method.isGetter(), getter, "Method has the correct getter value")
- harness.check(method.isSetter(), setter, "Method has the correct setter value")
- harness.check(
- method.isDeleter(), deleter, "Method has the correct deleter value"
- )
- harness.check(
- method.isLegacycaller(),
- legacycaller,
- "Method has the correct legacycaller value",
- )
- harness.check(
- method.isStringifier(),
- stringifier,
- "Method has the correct stringifier value",
- )
- harness.check(
- method.getExtendedAttribute("ChromeOnly") is not None,
- chromeOnly,
- "Method has the correct value for ChromeOnly",
- )
- harness.check(
- method.isHTMLConstructor(),
- htmlConstructor,
- "Method has the correct htmlConstructor value",
- )
- harness.check(
- len(method.signatures()),
- len(signatures),
- "Method has the correct number of signatures",
- )
- harness.check(
- method.getExtendedAttribute("Pref"),
- pref,
- "Method has the correct pref value",
- )
- harness.check(
- method.getExtendedAttribute("Func"),
- func,
- "Method has the correct func value",
- )
- harness.check(
- method.getExtendedAttribute("SecureContext") is not None,
- secureContext,
- "Method has the correct SecureContext value",
- )
-
- sigpairs = zip(method.signatures(), signatures)
- for (gotSignature, expectedSignature) in sigpairs:
- (gotRetType, gotArgs) = gotSignature
- (expectedRetType, expectedArgs) = expectedSignature
-
- harness.check(
- str(gotRetType), expectedRetType, "Method has the expected return type."
- )
-
- for i in range(0, len(gotArgs)):
- (QName, name, type, optional, variadic) = expectedArgs[i]
- checkArgument(gotArgs[i], QName, name, type, optional, variadic)
-
- def checkResults(results):
- harness.check(len(results), 3, "Should be three productions")
- harness.ok(
- isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface"
- )
- harness.ok(
- isinstance(results[1], WebIDL.IDLInterface), "Should be an IDLInterface"
- )
- harness.ok(
- isinstance(results[2], WebIDL.IDLInterface), "Should be an IDLInterface"
- )
-
- checkMethod(
- results[0].ctor(),
- "::TestConstructorNoArgs::constructor",
- "constructor",
- [("TestConstructorNoArgs (Wrapper)", [])],
- )
- harness.check(
- len(results[0].members), 0, "TestConstructorNoArgs should not have members"
- )
- checkMethod(
- results[1].ctor(),
- "::TestConstructorWithArgs::constructor",
- "constructor",
- [
- (
- "TestConstructorWithArgs (Wrapper)",
- [
- (
- "::TestConstructorWithArgs::constructor::name",
- "name",
- "String",
- False,
- False,
- )
- ],
- )
- ],
- )
- harness.check(
- len(results[1].members),
- 0,
- "TestConstructorWithArgs should not have members",
- )
- checkMethod(
- results[2].ctor(),
- "::TestConstructorOverloads::constructor",
- "constructor",
- [
- (
- "TestConstructorOverloads (Wrapper)",
- [
- (
- "::TestConstructorOverloads::constructor::foo",
- "foo",
- "Object",
- False,
- False,
- )
- ],
- ),
- (
- "TestConstructorOverloads (Wrapper)",
- [
- (
- "::TestConstructorOverloads::constructor::bar",
- "bar",
- "Boolean",
- False,
- False,
- )
- ],
- ),
- ],
- )
- harness.check(
- len(results[2].members),
- 0,
- "TestConstructorOverloads should not have members",
- )
-
- parser.parse(
- """
- interface TestConstructorNoArgs {
- constructor();
- };
-
- interface TestConstructorWithArgs {
- constructor(DOMString name);
- };
-
- interface TestConstructorOverloads {
- constructor(object foo);
- constructor(boolean bar);
- };
- """
- )
- results = parser.finish()
- checkResults(results)
-
- parser = parser.reset()
- parser.parse(
- """
- interface TestPrefConstructor {
- [Pref="dom.webidl.test1"] constructor();
- };
- """
- )
- results = parser.finish()
- harness.check(len(results), 1, "Should be one production")
- harness.ok(isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface")
-
- checkMethod(
- results[0].ctor(),
- "::TestPrefConstructor::constructor",
- "constructor",
- [("TestPrefConstructor (Wrapper)", [])],
- pref=["dom.webidl.test1"],
- )
-
- parser = parser.reset()
- parser.parse(
- """
- interface TestChromeOnlyConstructor {
- [ChromeOnly] constructor();
- };
- """
- )
- results = parser.finish()
- harness.check(len(results), 1, "Should be one production")
- harness.ok(isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface")
-
- checkMethod(
- results[0].ctor(),
- "::TestChromeOnlyConstructor::constructor",
- "constructor",
- [("TestChromeOnlyConstructor (Wrapper)", [])],
- chromeOnly=True,
- )
-
- parser = parser.reset()
- parser.parse(
- """
- interface TestSCConstructor {
- [SecureContext] constructor();
- };
- """
- )
- results = parser.finish()
- harness.check(len(results), 1, "Should be one production")
- harness.ok(isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface")
-
- checkMethod(
- results[0].ctor(),
- "::TestSCConstructor::constructor",
- "constructor",
- [("TestSCConstructor (Wrapper)", [])],
- secureContext=True,
- )
-
- parser = parser.reset()
- parser.parse(
- """
- interface TestFuncConstructor {
- [Func="Document::IsWebAnimationsEnabled"] constructor();
- };
- """
- )
- results = parser.finish()
- harness.check(len(results), 1, "Should be one production")
- harness.ok(isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface")
-
- checkMethod(
- results[0].ctor(),
- "::TestFuncConstructor::constructor",
- "constructor",
- [("TestFuncConstructor (Wrapper)", [])],
- func=["Document::IsWebAnimationsEnabled"],
- )
-
- parser = parser.reset()
- parser.parse(
- """
- interface TestPrefChromeOnlySCFuncConstructor {
- [ChromeOnly, Pref="dom.webidl.test1", SecureContext, Func="Document::IsWebAnimationsEnabled"]
- constructor();
- };
- """
- )
- results = parser.finish()
- harness.check(len(results), 1, "Should be one production")
- harness.ok(isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface")
-
- checkMethod(
- results[0].ctor(),
- "::TestPrefChromeOnlySCFuncConstructor::constructor",
- "constructor",
- [("TestPrefChromeOnlySCFuncConstructor (Wrapper)", [])],
- func=["Document::IsWebAnimationsEnabled"],
- pref=["dom.webidl.test1"],
- chromeOnly=True,
- secureContext=True,
- )
-
- parser = parser.reset()
- parser.parse(
- """
- interface TestHTMLConstructor {
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- harness.check(len(results), 1, "Should be one production")
- harness.ok(isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface")
-
- checkMethod(
- results[0].ctor(),
- "::TestHTMLConstructor::constructor",
- "constructor",
- [("TestHTMLConstructor (Wrapper)", [])],
- htmlConstructor=True,
- )
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestChromeOnlyConstructor {
- constructor()
- [ChromeOnly] constructor(DOMString a);
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "Can't have both a constructor and a ChromeOnly constructor")
-
- # Test HTMLConstructor with argument
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorWithArgs {
- [HTMLConstructor] constructor(DOMString a);
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "HTMLConstructor should take no argument")
-
- # Test HTMLConstructor on a callback interface
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- callback interface TestHTMLConstructorOnCallbackInterface {
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "HTMLConstructor can't be used on a callback interface")
-
- # Test HTMLConstructor and constructor operation
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- constructor();
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "Can't have both a constructor and a HTMLConstructor")
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- [Throws]
- constructor();
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "Can't have both a throwing constructor and a HTMLConstructor")
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- constructor(DOMString a);
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "Can't have both a HTMLConstructor and a constructor operation")
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- [Throws]
- constructor(DOMString a);
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(
- threw,
- "Can't have both a HTMLConstructor and a throwing constructor " "operation",
- )
-
- # Test HTMLConstructor and [ChromeOnly] constructor operation
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- [ChromeOnly]
- constructor();
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "Can't have both a ChromeOnly constructor and a HTMLConstructor")
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- [Throws, ChromeOnly]
- constructor();
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(
- threw,
- "Can't have both a throwing chromeonly constructor and a " "HTMLConstructor",
- )
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- [ChromeOnly]
- constructor(DOMString a);
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(
- threw,
- "Can't have both a HTMLConstructor and a chromeonly constructor " "operation",
- )
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface TestHTMLConstructorAndConstructor {
- [Throws, ChromeOnly]
- constructor(DOMString a);
- [HTMLConstructor] constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(
- threw,
- "Can't have both a HTMLConstructor and a throwing chromeonly "
- "constructor operation",
- )
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- [LegacyNoInterfaceObject]
- interface InterfaceWithoutInterfaceObject {
- constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(
- threw,
- "Can't have a constructor operation on a [LegacyNoInterfaceObject] "
- "interface",
- )
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface InterfaceWithPartial {
- };
-
- partial interface InterfaceWithPartial {
- constructor();
- };
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "Can't have a constructor operation on a partial interface")
-
- parser = parser.reset()
- threw = False
- try:
- parser.parse(
- """
- interface InterfaceWithMixin {
- };
-
- interface mixin Mixin {
- constructor();
- };
-
- InterfaceWithMixin includes Mixin
- """
- )
- results = parser.finish()
- except:
- threw = True
-
- harness.ok(threw, "Can't have a constructor operation on a mixin")