mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-06-23 23:48:27 +00:00
252 lines
6.2 KiB
Python
252 lines
6.2 KiB
Python
from ..sourcefile import SourceFile
|
|
|
|
def create(filename, contents=b""):
|
|
assert isinstance(contents, bytes)
|
|
return SourceFile("/", filename, "/", contents=contents)
|
|
|
|
|
|
def items(s):
|
|
return [
|
|
(item.item_type, item.url)
|
|
for item in s.manifest_items()
|
|
]
|
|
|
|
|
|
def test_name_is_non_test():
|
|
non_tests = [
|
|
".gitignore",
|
|
".travis.yml",
|
|
"MANIFEST.json",
|
|
"tools/test.html",
|
|
"resources/test.html",
|
|
"common/test.html",
|
|
"conformance-checkers/test.html",
|
|
]
|
|
|
|
for rel_path in non_tests:
|
|
s = create(rel_path)
|
|
assert s.name_is_non_test
|
|
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == []
|
|
|
|
|
|
def test_name_is_manual():
|
|
manual_tests = [
|
|
"html/test-manual.html",
|
|
"html/test-manual.xhtml",
|
|
"html/test-manual.https.html",
|
|
"html/test-manual.https.xhtml"
|
|
]
|
|
|
|
for rel_path in manual_tests:
|
|
s = create(rel_path)
|
|
assert not s.name_is_non_test
|
|
assert s.name_is_manual
|
|
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == [("manual", "/" + rel_path)]
|
|
|
|
|
|
def test_worker():
|
|
s = create("html/test.worker.js")
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == [("testharness", "/html/test.worker")]
|
|
|
|
def test_worker_long_timeout():
|
|
s = create("html/test.worker.js",
|
|
contents="""// <meta> timeout=long
|
|
importScripts('/resources/testharnes.js')
|
|
test()""")
|
|
|
|
manifest_items = s.manifest_items()
|
|
assert len(manifest_items) == 1
|
|
assert manifest_items[0].timeout == "long"
|
|
|
|
|
|
def test_multi_global():
|
|
s = create("html/test.any.js")
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == [
|
|
("testharness", "/html/test.any.html"),
|
|
("testharness", "/html/test.any.worker"),
|
|
]
|
|
|
|
|
|
def test_testharness():
|
|
content = b"<script src=/resources/testharness.js></script>"
|
|
|
|
for ext in ["htm", "html"]:
|
|
filename = "html/test." + ext
|
|
s = create(filename, content)
|
|
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert s.content_is_testharness
|
|
|
|
assert items(s) == [("testharness", "/" + filename)]
|
|
|
|
|
|
def test_relative_testharness():
|
|
content = b"<script src=../resources/testharness.js></script>"
|
|
|
|
for ext in ["htm", "html"]:
|
|
filename = "html/test." + ext
|
|
s = create(filename, content)
|
|
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == []
|
|
|
|
|
|
def test_testharness_xhtml():
|
|
content = b"""
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body/>
|
|
</html>
|
|
"""
|
|
|
|
for ext in ["xhtml", "xht", "xml"]:
|
|
filename = "html/test." + ext
|
|
s = create(filename, content)
|
|
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert s.content_is_testharness
|
|
|
|
assert items(s) == [("testharness", "/" + filename)]
|
|
|
|
|
|
def test_relative_testharness_xhtml():
|
|
content = b"""
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<script src="../resources/testharness.js"></script>
|
|
<script src="../resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body/>
|
|
</html>
|
|
"""
|
|
|
|
for ext in ["xhtml", "xht", "xml"]:
|
|
filename = "html/test." + ext
|
|
s = create(filename, content)
|
|
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == []
|
|
|
|
|
|
def test_testharness_svg():
|
|
content = b"""\
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<svg xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
|
version="1.1"
|
|
width="100%" height="100%" viewBox="0 0 400 400">
|
|
<title>Null test</title>
|
|
<h:script src="/resources/testharness.js"/>
|
|
<h:script src="/resources/testharnessreport.js"/>
|
|
</svg>
|
|
"""
|
|
|
|
filename = "html/test.svg"
|
|
s = create(filename, content)
|
|
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert s.root
|
|
assert s.content_is_testharness
|
|
|
|
assert items(s) == [("testharness", "/" + filename)]
|
|
|
|
|
|
def test_relative_testharness_svg():
|
|
content = b"""\
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<svg xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
|
version="1.1"
|
|
width="100%" height="100%" viewBox="0 0 400 400">
|
|
<title>Null test</title>
|
|
<h:script src="../resources/testharness.js"/>
|
|
<h:script src="../resources/testharnessreport.js"/>
|
|
</svg>
|
|
"""
|
|
|
|
filename = "html/test.svg"
|
|
s = create(filename, content)
|
|
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert s.root
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == []
|
|
|
|
|
|
def test_testharness_ext():
|
|
content = b"<script src=/resources/testharness.js></script>"
|
|
|
|
for filename in ["test", "test.test"]:
|
|
s = create("html/" + filename, content)
|
|
|
|
assert not s.name_is_non_test
|
|
assert not s.name_is_manual
|
|
assert not s.name_is_multi_global
|
|
assert not s.name_is_worker
|
|
assert not s.name_is_reference
|
|
|
|
assert not s.root
|
|
assert not s.content_is_testharness
|
|
|
|
assert items(s) == []
|