- commit
- 65341b286affb2f7c599a428c4a9a5f228cd0780
- parent
- 82413ff1410bdd9a0feda13d7a9325a544f25dc5
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2023-08-19 07:00
tests: add support for new wpt tests see https://github.com/web-platform-tests/interop-2023-accessibility-testing/issues/27
Diffstat
| M | test/test-name.js | 15 | +++++++++------ |
| M | wpt.py | 41 | +++++++++++++++++++++++++++-------------- |
2 files changed, 36 insertions, 20 deletions
diff --git a/test/test-name.js b/test/test-name.js
@@ -17,13 +17,16 @@ describe('getName / getDescription', () => {
17 17 var _it = known_failing.includes(test.title) ? xit : it;
18 18 _it(test.title, () => {
19 19 testbed.innerHTML = test.html;
20 -1 var element = document.querySelector('#test');
-1 20 for (var element of document.querySelectorAll(test.selector)) {
-1 21 var name = element.dataset.expectedlabel || test.name;
-1 22 var description = element.dataset.expecteddescription || test.description;
21 23
22 -1 if (test.name !== null) {
23 -1 expect(aria.getName(element)).toBe(test.name);
24 -1 }
25 -1 if (test.description !== null) {
26 -1 expect(aria.getDescription(element)).toBe(test.description);
-1 24 if (name !== null) {
-1 25 expect(aria.getName(element)).toBe(name);
-1 26 }
-1 27 if (description !== null) {
-1 28 expect(aria.getDescription(element)).toBe(description);
-1 29 }
27 30 }
28 31 });
29 32 });
diff --git a/wpt.py b/wpt.py
@@ -6,6 +6,8 @@ tests = [] 6 6 7 7 8 8 def fenced(before, after, s): -1 9 if before not in s or after not in s: -1 10 return '' 9 11 start = s.find(before) + len(before) 10 12 end = s.find(after, start) 11 13 return s[start:end] @@ -18,20 +20,31 @@ def get_value(word, s): 18 20 return fenced('"is",', ']', s[start + len(word):]).strip().strip('"') 19 21 20 2221 -1 for filename in os.listdir(sys.argv[1]):22 -1 if not filename.endswith('.html'):23 -1 continue24 -125 -1 with open(os.path.join(sys.argv[1], filename)) as fh:26 -1 raw = fh.read()27 -1 test = {28 -1 'filename': filename,29 -1 'title': fenced('<title>', '</title>', raw),30 -1 'html': fenced('<body>', '<div id="manualMode">', raw).strip(),31 -1 'name': get_value('"accName"', raw),32 -1 'description': get_value('"accDescription"', raw),33 -1 }34 -1 tests.append(test)-1 23 for root, _dirs, files in os.walk(sys.argv[1]): -1 24 for filename in files: -1 25 if not filename.endswith('.html'): -1 26 continue -1 27 -1 28 with open(os.path.join(root, filename)) as fh: -1 29 raw = fh.read() -1 30 if '<div id="manualMode">' in raw: -1 31 tests.append({ -1 32 'filename': filename, -1 33 'title': fenced('<title>', '</title>', raw), -1 34 'html': fenced('<body>', '<div id="manualMode">', raw).strip(), -1 35 'name': get_value('"accName"', raw), -1 36 'description': get_value('"accDescription"', raw), -1 37 'selector': '#test', -1 38 }) -1 39 elif 'class="ex"' in raw: -1 40 tests.append({ -1 41 'filename': filename, -1 42 'title': fenced('<title>', '</title>', raw), -1 43 'html': fenced('<body>', '<script>', raw).strip(), -1 44 'name': None, -1 45 'description': None, -1 46 'selector': '.ex', -1 47 }) 35 48 36 49 print('window.wpt = window.wpt || {};') 37 50 print('window.wpt.accname = ' + json.dumps(tests, indent='\t'))