diff options
Diffstat (limited to 'tests/wpt/web-platform-tests/tools/manifest/sourcefile.py')
-rw-r--r-- | tests/wpt/web-platform-tests/tools/manifest/sourcefile.py | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py index 299ad212f76..2a35400afe4 100644 --- a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py +++ b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py @@ -33,8 +33,16 @@ except ImportError: import html5lib from . import XMLParser -from .item import (ManifestItem, ManualTest, WebDriverSpecTest, RefTest, TestharnessTest, - SupportFile, CrashTest, ConformanceCheckerTest, VisualTest) +from .item import (ConformanceCheckerTest, + CrashTest, + ManifestItem, + ManualTest, + PrintRefTest, + RefTest, + SupportFile, + TestharnessTest, + VisualTest, + WebDriverSpecTest) from .utils import ContextManagerBytesIO, cached_property wd_pattern = "*.py" @@ -45,6 +53,7 @@ reference_file_re = re.compile(r'(^|[\-_])(not)?ref[0-9]*([\-_]|$)') space_chars = u"".join(html5lib.constants.spaceCharacters) # type: Text + def replace_end(s, old, new): # type: (Text, Text, Text) -> Text """ @@ -417,6 +426,11 @@ class SourceFile(object): return "tentative" in self.meta_flags @property + def name_is_print_reftest(self): + # type: () -> bool + return self.type_flag == "print" or "print" in self.dir_path.split(os.path.sep) + + @property def markup_type(self): # type: () -> Optional[Text] """Return the type of markup contained in a file, based on its extension, @@ -851,6 +865,16 @@ class SourceFile(object): self.rel_path )] + elif self.name_is_webdriver: + rv = WebDriverSpecTest.item_type, [ + WebDriverSpecTest( + self.tests_root, + self.rel_path, + self.url_base, + self.rel_url, + timeout=self.timeout + )] + elif self.name_is_visual: rv = VisualTest.item_type, [ VisualTest( @@ -869,6 +893,23 @@ class SourceFile(object): self.rel_url )] + elif self.name_is_print_reftest: + references = self.references + if not references: + raise ValueError("%s detected as print reftest but doesn't have any refs" % + self.path) + rv = PrintRefTest.item_type, [ + PrintRefTest( + self.tests_root, + self.rel_path, + self.url_base, + self.rel_url, + references=references, + timeout=self.timeout, + viewport_size=self.viewport_size, + fuzzy=self.fuzzy, + )] + elif self.name_is_multi_global: globals = u"" script_metadata = self.script_metadata @@ -926,16 +967,6 @@ class SourceFile(object): ] rv = TestharnessTest.item_type, tests - elif self.name_is_webdriver: - rv = WebDriverSpecTest.item_type, [ - WebDriverSpecTest( - self.tests_root, - self.rel_path, - self.url_base, - self.rel_url, - timeout=self.timeout - )] - elif self.content_is_css_manual and not self.name_is_reference: rv = ManualTest.item_type, [ ManualTest( |