mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
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.
This commit is contained in:
parent
7412e28349
commit
8be014ee46
148 changed files with 10 additions and 7 deletions
177
third_party/WebIDL/tests/test_promise.py
vendored
Normal file
177
third_party/WebIDL/tests/test_promise.py
vendored
Normal file
|
@ -0,0 +1,177 @@
|
|||
def WebIDLTest(parser, harness):
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
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 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 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()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface A {
|
||||
Promise<any>? foo();
|
||||
};
|
||||
"""
|
||||
)
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(threw, "Should not allow nullable Promise return values.")
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface A {
|
||||
undefined foo(Promise<any>? arg);
|
||||
};
|
||||
"""
|
||||
)
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(threw, "Should not allow nullable Promise arguments.")
|
||||
|
||||
parser = parser.reset()
|
||||
parser.parse(
|
||||
"""
|
||||
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."
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface A {
|
||||
attribute Promise<any> attr;
|
||||
};
|
||||
"""
|
||||
)
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(threw, "Should not allow writable Promise-typed attributes.")
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface A {
|
||||
[LegacyLenientSetter] readonly attribute Promise<any> attr;
|
||||
};
|
||||
"""
|
||||
)
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(
|
||||
threw, "Should not allow [LegacyLenientSetter] Promise-typed attributes."
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface A {
|
||||
[PutForwards=bar] readonly attribute Promise<any> attr;
|
||||
};
|
||||
"""
|
||||
)
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(threw, "Should not allow [PutForwards] Promise-typed attributes.")
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface A {
|
||||
[Replaceable] readonly attribute Promise<any> attr;
|
||||
};
|
||||
"""
|
||||
)
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(threw, "Should not allow [Replaceable] Promise-typed attributes.")
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface A {
|
||||
[SameObject] readonly attribute Promise<any> attr;
|
||||
};
|
||||
"""
|
||||
)
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(threw, "Should not allow [SameObject] Promise-typed attributes.")
|
Loading…
Add table
Add a link
Reference in a new issue