servo/third_party/WebIDL/tests/test_usvstring.py
Martin Robinson 8be014ee46
Create a top-level "third_party" directory
This directory now contains third_party software that is vendored into
the Servo source tree. The idea is that it would eventually hold
webrender and other crates from mozilla-central as well with a standard
patch management approach for each.
2023-06-30 09:51:31 +02:00

40 lines
1.3 KiB
Python

# -*- coding: UTF-8 -*-
import WebIDL
def WebIDLTest(parser, harness):
parser.parse(
"""
interface TestUSVString {
attribute USVString svs;
};
"""
)
results = parser.finish()
harness.check(len(results), 1, "Should be one production")
harness.ok(isinstance(results[0], WebIDL.IDLInterface), "Should be an IDLInterface")
iface = results[0]
harness.check(
iface.identifier.QName(), "::TestUSVString", "Interface has the right QName"
)
harness.check(
iface.identifier.name, "TestUSVString", "Interface has the right name"
)
harness.check(iface.parent, None, "Interface has no parent")
members = iface.members
harness.check(len(members), 1, "Should be one member")
attr = members[0]
harness.ok(isinstance(attr, WebIDL.IDLAttribute), "Should be an IDLAttribute")
harness.check(
attr.identifier.QName(), "::TestUSVString::svs", "Attr has correct QName"
)
harness.check(attr.identifier.name, "svs", "Attr has correct name")
harness.check(str(attr.type), "USVString", "Attr type is the correct name")
harness.ok(attr.type.isUSVString(), "Should be USVString type")
harness.ok(attr.type.isString(), "Should be String collective type")
harness.ok(not attr.type.isDOMString(), "Should be not be DOMString type")