diff options
author | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2023-04-23 01:33:06 +0000 |
---|---|---|
committer | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2023-04-23 01:36:19 +0000 |
commit | 40def0914ad78ed6bd4222b7897e5dcfcfa2608f (patch) | |
tree | 2ea49300474eb55a42970880d0921ca5b8fe5171 /tests/wpt/web-platform-tests/css/css-writing-modes/tools/generators/generate.py | |
parent | 9acb9cc5cf21d14709355a3c75af7202e9301bd5 (diff) | |
download | servo-40def0914ad78ed6bd4222b7897e5dcfcfa2608f.tar.gz servo-40def0914ad78ed6bd4222b7897e5dcfcfa2608f.zip |
Update web-platform-tests to revision b'a3cb53d786edfd9106825e312866624150382075'
Diffstat (limited to 'tests/wpt/web-platform-tests/css/css-writing-modes/tools/generators/generate.py')
-rwxr-xr-x | tests/wpt/web-platform-tests/css/css-writing-modes/tools/generators/generate.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/tools/generators/generate.py b/tests/wpt/web-platform-tests/css/css-writing-modes/tools/generators/generate.py new file mode 100755 index 00000000000..6d54eebc050 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/tools/generators/generate.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python3 +import os +import string + +from typing import List, Tuple + +test_template = """<h3>{number}: {title}</h3> +<div class="test"> + {html} +</div>""" + + +def generate_test_list() -> List[Tuple[str, str]]: + test_list = []; + outers = [ + ["inline-block", '<div class="inline-block">', '</div><span class="next">ZZ</span>'], + ["float", '<div class="float">', '</div><span class="next">ZZ</span>'], + ["table-cell", '<table><tr><td>', '</td><td class="next">ZZ</td></tr></table>']]; + middles = [ + None, + ["inline-block", '<div class="inline-block">', '</div>']]; + targets = [ + ["block", '<div class="target">HH</div>'], + ["inline", '<span class="target">HH</span>'], + ["block with borders", '<div class="target border">HHH</div>'], + ["inline with borders", '<span class="target border">HHH</span>']]; + for outer in outers: + for middle in middles: + for target in targets: + title = target[0]; + html = target[1]; + if middle is not None: + title += " in " + middle[0]; + html = middle[1] + html + middle[2]; + title = "Shrink-to-fit " + outer[0] + " with a child of orthogonal " + title; + html = outer[1] + html + outer[2]; + test_list.append((title, html)); + return test_list + + +def read_template() -> str: + with open("template.html") as f: + return f.read() + + +def main(): + template = read_template() + test_list = generate_test_list() + + dest_dir = os.path.abspath( + os.path.join(os.path.dirname(os.path.abspath(__file__)), + os.path.pardir, + os.path.pardir)) + + for index in range(-1, len(test_list)): + if index == -1: + offset = 0 + suffix = "" + tests = test_list + title = "Shrink-to-fit with orthogonal children" + flags = " combo" + else: + offset = index + suffix = string.ascii_letters[index] + tests = [test_list[index]] + title = tests[0][0] + flags = "" + + filename = f"orthogonal-parent-shrink-to-fit-001{suffix}.html" + + tests_data = [] + for idx, (test_title, html) in enumerate(tests): + number = offset + idx + 1 + tests_data.append(test_template.format(number=number, + title=test_title, + html=html)) + + output = template.replace("{{title}}", title) + output = output.replace("{{flags}}", flags) + output = output.replace("{{tests}}", "\n".join(tests_data)) + with open(os.path.join(dest_dir, filename), "w") as f: + f.write(output) + + +if __name__ == "__main__": + main() |