#!/usr/bin/env python3 import os, shutil target_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + "/compute-kind-widget-generated" props_grouped = [ [ u"background-color", u"background-image", ], [ u"background-attachment", u"background-position", u"background-clip", u"background-origin", u"background-size", ], [ u"border-top-color", u"border-right-color", u"border-bottom-color", u"border-left-color", ], [ u"border-top-style", u"border-right-style", u"border-bottom-style", u"border-left-style", ], [ u"border-top-width", u"border-right-width", u"border-bottom-width", u"border-left-width", ], [ u"border-block-start-color", u"border-block-end-color", u"border-inline-start-color", u"border-inline-end-color", ], [ u"border-block-start-style", u"border-block-end-style", u"border-inline-start-style", u"border-inline-end-style", ], [ u"border-block-start-width", u"border-block-end-width", u"border-inline-start-width", u"border-inline-end-width", ], [ u"border-image-source", u"border-image-slice", u"border-image-width", u"border-image-outset", u"border-image-repeat", ], [ u"border-top-left-radius", u"border-top-right-radius", u"border-bottom-right-radius", u"border-bottom-left-radius", u"border-start-start-radius", u"border-start-end-radius", u"border-end-start-radius", u"border-end-end-radius", ], ] els = [ [u'link', u'a'], [u'button', u''], [u'input-button', u''], [u'input-submit', u''], [u'input-reset', u''], [u'input-text', u''], [u'input-search-text', u''], [u'input-search', u''], [u'range', u''], [u'checkbox-input', u''], [u'radio-input', u''], [u'color-input', u''], [u'textarea', u''], [u'select-listbox', u''], [u'select-dropdown-box', u''], [u'select-menulist-button', u''], [u'meter', u''], [u'progress', u''], ] all_els = "" for el_id, el_markup in els: all_els += el_markup + "\n " all_els = all_els.rstrip() template = u""" CSS Basic User Interface Test: Compute kind of widget: {props} maybe disables native appearance for {el_id}
{el_markup}
""" # Generate tests # wipe target_dir if os.path.isdir(target_dir): shutil.rmtree(target_dir) def write_file(path, content): path = os.path.join(target_dir, path) os.makedirs(os.path.dirname(path), exist_ok=True) file = open(os.path.join(target_dir, path), 'w') file.write(content) file.close() def generate_tests(prop, el_id, el_markup): test = template.format(props=prop, el_id=el_id, el_markup=el_markup) write_file(f"kind-of-widget-fallback-{el_id}-{prop}-001.html", test) def generate_grouped_tests(group): test = template.format(props=",".join(group), el_id="all-elements", el_markup=all_els) write_file(f"grouped-kind-of-widget-fallback-{group[0]}-001.html", test) for group in props_grouped: generate_grouped_tests(group) for prop in group: for el_id, el_markup in els: generate_tests(prop, el_id, el_markup)