1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
9 #include "base/command_line.h"
10 #include "base/files/file_util.h"
11 #include "base/logging.h"
12 #include "base/path_service.h"
13 #include "base/strings/string16.h"
14 #include "base/strings/string_split.h"
15 #include "base/strings/string_util.h"
16 #include "base/strings/utf_string_conversions.h"
17 #include "content/browser/accessibility/accessibility_tree_formatter.h"
18 #include "content/browser/accessibility/browser_accessibility.h"
19 #include "content/browser/accessibility/browser_accessibility_manager.h"
20 #include "content/browser/renderer_host/render_view_host_impl.h"
21 #include "content/browser/renderer_host/render_widget_host_view_base.h"
22 #include "content/browser/web_contents/web_contents_impl.h"
23 #include "content/public/browser/web_contents.h"
24 #include "content/public/common/content_paths.h"
25 #include "content/public/common/content_switches.h"
26 #include "content/public/common/url_constants.h"
27 #include "content/public/test/content_browser_test.h"
28 #include "content/public/test/content_browser_test_utils.h"
29 #include "content/shell/browser/shell.h"
30 #include "content/test/accessibility_browser_test_utils.h"
31 #include "testing/gtest/include/gtest/gtest.h"
33 #if defined(OS_MACOSX)
34 #include "base/mac/mac_util.h"
37 // TODO(aboxhall): Create expectations on Android for these
38 #if defined(OS_ANDROID)
39 #define MAYBE(x) DISABLED_##x
48 const char kCommentToken = '#';
49 const char kMarkSkipFile[] = "#<skip";
50 const char kMarkEndOfFile[] = "<-- End-of-file -->";
51 const char kSignalDiff[] = "*";
55 typedef AccessibilityTreeFormatter::Filter Filter;
57 // This test takes a snapshot of the platform BrowserAccessibility tree and
58 // tests it against an expected baseline.
60 // The flow of the test is as outlined below.
61 // 1. Load an html file from chrome/test/data/accessibility.
62 // 2. Read the expectation.
63 // 3. Browse to the page and serialize the platform specific tree into a human
65 // 4. Perform a comparison between actual and expected and fail if they do not
67 class DumpAccessibilityTreeTest : public ContentBrowserTest {
69 // Utility helper that does a comment aware equality check.
70 // Returns array of lines from expected file which are different.
71 std::vector<int> DiffLines(const std::vector<std::string>& expected_lines,
72 const std::vector<std::string>& actual_lines) {
73 int actual_lines_count = actual_lines.size();
74 int expected_lines_count = expected_lines.size();
75 std::vector<int> diff_lines;
77 while (i < actual_lines_count && j < expected_lines_count) {
78 if (expected_lines[j].size() == 0 ||
79 expected_lines[j][0] == kCommentToken) {
80 // Skip comment lines and blank lines in expected output.
85 if (actual_lines[i] != expected_lines[j])
86 diff_lines.push_back(j);
91 // Actual file has been fully checked.
95 void AddDefaultFilters(std::vector<Filter>* filters) {
96 filters->push_back(Filter(base::ASCIIToUTF16("FOCUSABLE"), Filter::ALLOW));
97 filters->push_back(Filter(base::ASCIIToUTF16("READONLY"), Filter::ALLOW));
98 filters->push_back(Filter(base::ASCIIToUTF16("name*"), Filter::ALLOW));
99 filters->push_back(Filter(base::ASCIIToUTF16("*=''"), Filter::DENY));
102 // Parse the test html file and parse special directives, usually
103 // beginning with an '@' and inside an HTML comment, that control how the
104 // test is run and how the results are interpreted.
106 // When the accessibility tree is dumped as text, each attribute is
107 // run through filters before being appended to the string. An "allow"
108 // filter specifies attribute strings that should be dumped, and a "deny"
109 // filter specifies strings that should be suppressed. As an example,
110 // @MAC-ALLOW:AXSubrole=* means that the AXSubrole attribute should be
111 // printed, while @MAC-ALLOW:AXSubrole=AXList* means that any subrole
112 // beginning with the text "AXList" should be printed.
114 // The @WAIT-FOR:text directive allows the test to specify that the document
115 // may dynamically change after initial load, and the test is to wait
116 // until the given string (e.g., "text") appears in the resulting dump.
117 // A test can make some changes to the document, then append a magic string
118 // indicating that the test is done, and this framework will wait for that
119 // string to appear before comparing the results.
120 void ParseHtmlForExtraDirectives(const std::string& test_html,
121 std::vector<Filter>* filters,
122 std::string* wait_for) {
123 std::vector<std::string> lines;
124 base::SplitString(test_html, '\n', &lines);
125 for (std::vector<std::string>::const_iterator iter = lines.begin();
128 const std::string& line = *iter;
129 const std::string& allow_empty_str =
130 AccessibilityTreeFormatter::GetAllowEmptyString();
131 const std::string& allow_str =
132 AccessibilityTreeFormatter::GetAllowString();
133 const std::string& deny_str =
134 AccessibilityTreeFormatter::GetDenyString();
135 const std::string& wait_str = "@WAIT-FOR:";
136 if (StartsWithASCII(line, allow_empty_str, true)) {
138 Filter(base::UTF8ToUTF16(line.substr(allow_empty_str.size())),
139 Filter::ALLOW_EMPTY));
140 } else if (StartsWithASCII(line, allow_str, true)) {
141 filters->push_back(Filter(base::UTF8ToUTF16(
142 line.substr(allow_str.size())),
144 } else if (StartsWithASCII(line, deny_str, true)) {
145 filters->push_back(Filter(base::UTF8ToUTF16(
146 line.substr(deny_str.size())),
148 } else if (StartsWithASCII(line, wait_str, true)) {
149 *wait_for = line.substr(wait_str.size());
154 void SetUpCommandLine(base::CommandLine* command_line) override {
155 ContentBrowserTest::SetUpCommandLine(command_line);
156 // Enable <dialog>, which is used in some tests.
157 base::CommandLine::ForCurrentProcess()->AppendSwitch(
158 switches::kEnableExperimentalWebPlatformFeatures);
161 void RunTest(const base::FilePath::CharType* file_path);
164 void DumpAccessibilityTreeTest::RunTest(
165 const base::FilePath::CharType* file_path) {
166 NavigateToURL(shell(), GURL(url::kAboutBlankURL));
169 base::FilePath dir_test_data;
170 ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &dir_test_data));
171 base::FilePath test_path(
172 dir_test_data.Append(FILE_PATH_LITERAL("accessibility")));
173 ASSERT_TRUE(base::PathExists(test_path))
174 << test_path.LossyDisplayName();
176 base::FilePath html_file = test_path.Append(base::FilePath(file_path));
177 // Output the test path to help anyone who encounters a failure and needs
178 // to know where to look.
179 printf("Testing: %s\n", html_file.MaybeAsASCII().c_str());
181 std::string html_contents;
182 base::ReadFileToString(html_file, &html_contents);
184 // Read the expected file.
185 std::string expected_contents_raw;
186 base::FilePath expected_file =
187 base::FilePath(html_file.RemoveExtension().value() +
188 AccessibilityTreeFormatter::GetExpectedFileSuffix());
189 base::ReadFileToString(expected_file, &expected_contents_raw);
191 // Tolerate Windows-style line endings (\r\n) in the expected file:
192 // normalize by deleting all \r from the file (if any) to leave only \n.
193 std::string expected_contents;
194 base::RemoveChars(expected_contents_raw, "\r", &expected_contents);
196 if (!expected_contents.compare(0, strlen(kMarkSkipFile), kMarkSkipFile)) {
197 printf("Skipping this test on this platform.\n");
201 // Parse filters and other directives in the test file.
202 std::vector<Filter> filters;
203 std::string wait_for;
204 AddDefaultFilters(&filters);
205 ParseHtmlForExtraDirectives(html_contents, &filters, &wait_for);
208 base::string16 html_contents16;
209 html_contents16 = base::UTF8ToUTF16(html_contents);
210 GURL url = GetTestUrl("accessibility",
211 html_file.BaseName().MaybeAsASCII().c_str());
213 // If there's a @WAIT-FOR directive, set up an accessibility notification
214 // waiter that returns on any event; we'll stop when we get the text we're
215 // waiting for, or time out. Otherwise just wait specifically for
216 // the "load complete" event.
217 scoped_ptr<AccessibilityNotificationWaiter> waiter;
218 if (!wait_for.empty()) {
219 waiter.reset(new AccessibilityNotificationWaiter(
220 shell(), AccessibilityModeComplete, ui::AX_EVENT_NONE));
222 waiter.reset(new AccessibilityNotificationWaiter(
223 shell(), AccessibilityModeComplete, ui::AX_EVENT_LOAD_COMPLETE));
226 // Load the test html.
227 NavigateToURL(shell(), url);
229 // Wait for notifications. If there's a @WAIT-FOR directive, break when
230 // the text we're waiting for appears in the dump, otherwise break after
231 // the first notification, which will be a load complete.
232 WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
233 shell()->web_contents());
234 std::string actual_contents;
236 waiter->WaitForNotification();
237 base::string16 actual_contents_utf16;
238 AccessibilityTreeFormatter formatter(
239 web_contents->GetRootBrowserAccessibilityManager()->GetRoot());
240 formatter.SetFilters(filters);
241 formatter.FormatAccessibilityTree(&actual_contents_utf16);
242 actual_contents = base::UTF16ToUTF8(actual_contents_utf16);
243 } while (!wait_for.empty() &&
244 actual_contents.find(wait_for) == std::string::npos);
246 // Perform a diff (or write the initial baseline).
247 std::vector<std::string> actual_lines, expected_lines;
248 Tokenize(actual_contents, "\n", &actual_lines);
249 Tokenize(expected_contents, "\n", &expected_lines);
250 // Marking the end of the file with a line of text ensures that
251 // file length differences are found.
252 expected_lines.push_back(kMarkEndOfFile);
253 actual_lines.push_back(kMarkEndOfFile);
255 std::vector<int> diff_lines = DiffLines(expected_lines, actual_lines);
256 bool is_different = diff_lines.size() > 0;
257 EXPECT_FALSE(is_different);
259 // Mark the expected lines which did not match actual output with a *.
260 printf("* Line Expected\n");
261 printf("- ---- --------\n");
262 for (int line = 0, diff_index = 0;
263 line < static_cast<int>(expected_lines.size());
265 bool is_diff = false;
266 if (diff_index < static_cast<int>(diff_lines.size()) &&
267 diff_lines[diff_index] == line) {
271 printf("%1s %4d %s\n", is_diff? kSignalDiff : "", line + 1,
272 expected_lines[line].c_str());
274 printf("\nActual\n");
276 printf("%s\n", actual_contents.c_str());
279 if (!base::PathExists(expected_file)) {
280 base::FilePath actual_file =
281 base::FilePath(html_file.RemoveExtension().value() +
282 AccessibilityTreeFormatter::GetActualFileSuffix());
284 EXPECT_TRUE(base::WriteFile(
285 actual_file, actual_contents.c_str(), actual_contents.size()));
287 ADD_FAILURE() << "No expectation found. Create it by doing:\n"
288 << "mv " << actual_file.LossyDisplayName() << " "
289 << expected_file.LossyDisplayName();
293 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityA) {
294 RunTest(FILE_PATH_LITERAL("a.html"));
297 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAbbr) {
298 RunTest(FILE_PATH_LITERAL("abbr.html"));
301 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAddress) {
302 RunTest(FILE_PATH_LITERAL("address.html"));
305 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityArea) {
306 RunTest(FILE_PATH_LITERAL("area.html"));
309 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAName) {
310 RunTest(FILE_PATH_LITERAL("a-name.html"));
313 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityANameCalc) {
314 RunTest(FILE_PATH_LITERAL("a-name-calc.html"));
317 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityANoText) {
318 RunTest(FILE_PATH_LITERAL("a-no-text.html"));
321 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAOnclick) {
322 RunTest(FILE_PATH_LITERAL("a-onclick.html"));
325 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
326 AccessibilityAriaActivedescendant) {
327 RunTest(FILE_PATH_LITERAL("aria-activedescendant.html"));
330 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaAlert) {
331 RunTest(FILE_PATH_LITERAL("aria-alert.html"));
334 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
335 AccessibilityAriaApplication) {
336 RunTest(FILE_PATH_LITERAL("aria-application.html"));
339 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaArticle) {
340 RunTest(FILE_PATH_LITERAL("aria-article.html"));
343 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaAtomic) {
344 RunTest(FILE_PATH_LITERAL("aria-atomic.html"));
347 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
348 AccessibilityAriaAutocomplete) {
349 RunTest(FILE_PATH_LITERAL("aria-autocomplete.html"));
352 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaBanner) {
353 RunTest(FILE_PATH_LITERAL("aria-banner.html"));
356 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaBusy) {
357 RunTest(FILE_PATH_LITERAL("aria-busy.html"));
360 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaButton) {
361 RunTest(FILE_PATH_LITERAL("aria-button.html"));
364 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCheckBox) {
365 RunTest(FILE_PATH_LITERAL("aria-checkbox.html"));
368 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaChecked) {
369 RunTest(FILE_PATH_LITERAL("aria-checked.html"));
372 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
373 AccessibilityAriaColumnHeader) {
374 RunTest(FILE_PATH_LITERAL("aria-columnheader.html"));
377 // crbug.com/98976 will cause new elements to be added to the Blink a11y tree
378 // Re-baseline after the Blink change goes in
379 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
380 DISABLED_AccessibilityAriaCombobox) {
381 RunTest(FILE_PATH_LITERAL("aria-combobox.html"));
384 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
385 AccessibilityAriaComplementary) {
386 RunTest(FILE_PATH_LITERAL("aria-complementary.html"));
389 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
390 AccessibilityAriaContentInfo) {
391 RunTest(FILE_PATH_LITERAL("aria-contentinfo.html"));
394 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDefinition) {
395 RunTest(FILE_PATH_LITERAL("aria-definition.html"));
398 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDialog) {
399 RunTest(FILE_PATH_LITERAL("aria-dialog.html"));
402 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaExpanded) {
403 RunTest(FILE_PATH_LITERAL("aria-expanded.html"));
406 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaHasPopup) {
407 RunTest(FILE_PATH_LITERAL("aria-haspopup.html"));
410 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaHeading) {
411 RunTest(FILE_PATH_LITERAL("aria-heading.html"));
414 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaHidden) {
415 RunTest(FILE_PATH_LITERAL("aria-hidden.html"));
418 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
419 MAYBE(AccessibilityAriaFlowto)) {
420 RunTest(FILE_PATH_LITERAL("aria-flowto.html"));
423 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaImg) {
424 RunTest(FILE_PATH_LITERAL("aria-img.html"));
427 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaInvalid) {
428 RunTest(FILE_PATH_LITERAL("aria-invalid.html"));
431 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
432 AccessibilityAriaLabelledByHeading) {
433 RunTest(FILE_PATH_LITERAL("aria-labelledby-heading.html"));
436 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLevel) {
437 RunTest(FILE_PATH_LITERAL("aria-level.html"));
440 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaList) {
441 RunTest(FILE_PATH_LITERAL("aria-list.html"));
444 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaListBox) {
445 RunTest(FILE_PATH_LITERAL("aria-listbox.html"));
448 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
449 AccessibilityAriaListBoxActiveDescendant) {
450 RunTest(FILE_PATH_LITERAL("aria-listbox-activedescendant.html"));
453 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
454 AccessibilityAriaListBoxAriaSelected) {
455 RunTest(FILE_PATH_LITERAL("aria-listbox-aria-selected.html"));
458 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
459 AccessibilityAriaListBoxChildFocus) {
460 RunTest(FILE_PATH_LITERAL("aria-listbox-childfocus.html"));
463 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLive) {
464 RunTest(FILE_PATH_LITERAL("aria-live.html"));
467 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLog) {
468 RunTest(FILE_PATH_LITERAL("aria-log.html"));
471 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMarquee) {
472 RunTest(FILE_PATH_LITERAL("aria-marquee.html"));
475 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMenu) {
476 RunTest(FILE_PATH_LITERAL("aria-menu.html"));
479 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMenuBar) {
480 RunTest(FILE_PATH_LITERAL("aria-menubar.html"));
483 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
484 AccessibilityAriaMenuItemCheckBox) {
485 RunTest(FILE_PATH_LITERAL("aria-menuitemcheckbox.html"));
488 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
489 AccessibilityAriaMenuItemRadio) {
490 RunTest(FILE_PATH_LITERAL("aria-menuitemradio.html"));
493 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaNavigation) {
494 RunTest(FILE_PATH_LITERAL("aria-navigation.html"));
497 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
498 AccessibilityAriaOrientation) {
499 RunTest(FILE_PATH_LITERAL("aria-orientation.html"));
502 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMath) {
503 RunTest(FILE_PATH_LITERAL("aria-math.html"));
506 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaNone) {
507 RunTest(FILE_PATH_LITERAL("aria-none.html"));
510 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
511 AccessibilityAriaPresentation) {
512 RunTest(FILE_PATH_LITERAL("aria-presentation.html"));
515 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaPressed) {
516 RunTest(FILE_PATH_LITERAL("aria-pressed.html"));
519 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
520 AccessibilityAriaProgressbar) {
521 RunTest(FILE_PATH_LITERAL("aria-progressbar.html"));
524 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
525 AccessibilityAriaRadiogroup) {
526 RunTest(FILE_PATH_LITERAL("aria-radiogroup.html"));
529 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRelevant) {
530 RunTest(FILE_PATH_LITERAL("aria-relevant.html"));
533 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRequired) {
534 RunTest(FILE_PATH_LITERAL("aria-required.html"));
537 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRow) {
538 RunTest(FILE_PATH_LITERAL("aria-row.html"));
541 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRowGroup) {
542 RunTest(FILE_PATH_LITERAL("aria-rowgroup.html"));
545 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaReadonly) {
546 RunTest(FILE_PATH_LITERAL("aria-readonly.html"));
549 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRegion) {
550 RunTest(FILE_PATH_LITERAL("aria-region.html"));
553 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSearch) {
554 RunTest(FILE_PATH_LITERAL("aria-search.html"));
557 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSeparator) {
558 RunTest(FILE_PATH_LITERAL("aria-separator.html"));
561 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSort) {
562 RunTest(FILE_PATH_LITERAL("aria-sort.html"));
565 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
566 AccessibilityAriaSpinButton) {
567 RunTest(FILE_PATH_LITERAL("aria-spinbutton.html"));
570 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTextbox) {
571 RunTest(FILE_PATH_LITERAL("aria-textbox.html"));
574 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTimer) {
575 RunTest(FILE_PATH_LITERAL("aria-timer.html"));
578 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
579 AccessibilityAriaToggleButton) {
580 RunTest(FILE_PATH_LITERAL("aria-togglebutton.html"));
583 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaToolbar) {
584 RunTest(FILE_PATH_LITERAL("aria-toolbar.html"));
587 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTree) {
588 RunTest(FILE_PATH_LITERAL("aria-tree.html"));
591 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaValueMin) {
592 RunTest(FILE_PATH_LITERAL("aria-valuemin.html"));
595 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaValueMax) {
596 RunTest(FILE_PATH_LITERAL("aria-valuemax.html"));
599 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaValueNow) {
600 RunTest(FILE_PATH_LITERAL("aria-valuenow.html"));
603 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityArticle) {
604 RunTest(FILE_PATH_LITERAL("article.html"));
607 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAside) {
608 RunTest(FILE_PATH_LITERAL("aside.html"));
611 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAudio) {
612 RunTest(FILE_PATH_LITERAL("audio.html"));
615 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAWithImg) {
616 RunTest(FILE_PATH_LITERAL("a-with-img.html"));
619 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBdo) {
620 RunTest(FILE_PATH_LITERAL("bdo.html"));
623 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBlockquote) {
624 RunTest(FILE_PATH_LITERAL("blockquote.html"));
627 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBody) {
628 RunTest(FILE_PATH_LITERAL("body.html"));
631 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBR) {
632 RunTest(FILE_PATH_LITERAL("br.html"));
635 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityButton) {
636 RunTest(FILE_PATH_LITERAL("button.html"));
639 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityButtonNameCalc) {
640 RunTest(FILE_PATH_LITERAL("button-name-calc.html"));
643 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCanvas) {
644 RunTest(FILE_PATH_LITERAL("canvas.html"));
647 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCaption) {
648 RunTest(FILE_PATH_LITERAL("caption.html"));
651 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
652 AccessibilityCheckboxNameCalc) {
653 RunTest(FILE_PATH_LITERAL("checkbox-name-calc.html"));
656 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCite) {
657 RunTest(FILE_PATH_LITERAL("cite.html"));
660 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCol) {
661 RunTest(FILE_PATH_LITERAL("col.html"));
664 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityColgroup) {
665 RunTest(FILE_PATH_LITERAL("colgroup.html"));
668 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDel) {
669 RunTest(FILE_PATH_LITERAL("del.html"));
672 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDetails) {
673 RunTest(FILE_PATH_LITERAL("details.html"));
676 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDfn) {
677 RunTest(FILE_PATH_LITERAL("dfn.html"));
680 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDialog) {
681 RunTest(FILE_PATH_LITERAL("dialog.html"));
684 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDiv) {
685 RunTest(FILE_PATH_LITERAL("div.html"));
688 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDl) {
689 RunTest(FILE_PATH_LITERAL("dl.html"));
692 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDt) {
693 RunTest(FILE_PATH_LITERAL("dt.html"));
696 //Disabled because of https://codereview.chromium.org/696953002 temporarily.
697 //After blink code is merged, it will be enabled.
698 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
699 DISABLED_AccessibilityContenteditableDescendants) {
700 RunTest(FILE_PATH_LITERAL("contenteditable-descendants.html"));
703 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityEm) {
704 RunTest(FILE_PATH_LITERAL("em.html"));
707 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFieldset) {
708 RunTest(FILE_PATH_LITERAL("fieldset.html"));
711 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFigcaption) {
712 RunTest(FILE_PATH_LITERAL("figcaption.html"));
715 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFigure) {
716 RunTest(FILE_PATH_LITERAL("figure.html"));
719 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFooter) {
720 RunTest(FILE_PATH_LITERAL("footer.html"));
723 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityForm) {
724 RunTest(FILE_PATH_LITERAL("form.html"));
727 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFrameset) {
728 RunTest(FILE_PATH_LITERAL("frameset.html"));
731 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHead) {
732 RunTest(FILE_PATH_LITERAL("head.html"));
735 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeader) {
736 RunTest(FILE_PATH_LITERAL("header.html"));
739 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeading) {
740 RunTest(FILE_PATH_LITERAL("heading.html"));
743 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHR) {
744 RunTest(FILE_PATH_LITERAL("hr.html"));
747 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityI) {
748 RunTest(FILE_PATH_LITERAL("i.html"));
751 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityIframe) {
752 RunTest(FILE_PATH_LITERAL("iframe.html"));
755 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
756 AccessibilityIframeCoordinates) {
757 RunTest(FILE_PATH_LITERAL("iframe-coordinates.html"));
760 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityImg) {
761 RunTest(FILE_PATH_LITERAL("img.html"));
764 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputButton) {
765 RunTest(FILE_PATH_LITERAL("input-button.html"));
768 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
769 AccessibilityInputButtonInMenu) {
770 RunTest(FILE_PATH_LITERAL("input-button-in-menu.html"));
773 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputCheckBox) {
774 RunTest(FILE_PATH_LITERAL("input-checkbox.html"));
777 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
778 AccessibilityInputCheckBoxInMenu) {
779 RunTest(FILE_PATH_LITERAL("input-checkbox-in-menu.html"));
782 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputColor) {
783 RunTest(FILE_PATH_LITERAL("input-color.html"));
786 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputDate) {
787 RunTest(FILE_PATH_LITERAL("input-date.html"));
790 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputDateTime) {
791 RunTest(FILE_PATH_LITERAL("input-datetime.html"));
794 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
795 AccessibilityInputDateTimeLocal) {
796 #if defined(OS_MACOSX)
797 // Fails on OS X 10.9 <https://crbug.com/430622>.
798 if (base::mac::IsOSMavericks())
801 RunTest(FILE_PATH_LITERAL("input-datetime-local.html"));
804 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
805 AccessibilityInputImageButtonInMenu) {
806 RunTest(FILE_PATH_LITERAL("input-image-button-in-menu.html"));
809 // crbug.com/423675 - AX tree is different for Win7 and Win8.
811 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
812 DISABLED_AccessibilityInputMonth) {
813 RunTest(FILE_PATH_LITERAL("input-month.html"));
816 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputMonth) {
817 RunTest(FILE_PATH_LITERAL("input-month.html"));
821 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputRadio) {
822 RunTest(FILE_PATH_LITERAL("input-radio.html"));
825 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputRange) {
826 RunTest(FILE_PATH_LITERAL("input-range.html"));
829 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputReset) {
830 RunTest(FILE_PATH_LITERAL("input-reset.html"));
833 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputSearch) {
834 RunTest(FILE_PATH_LITERAL("input-search.html"));
837 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputSubmit) {
838 RunTest(FILE_PATH_LITERAL("input-submit.html"));
841 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTel) {
842 RunTest(FILE_PATH_LITERAL("input-tel.html"));
845 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputText) {
846 RunTest(FILE_PATH_LITERAL("input-text.html"));
849 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
850 AccessibilityInputTextNameCalc) {
851 RunTest(FILE_PATH_LITERAL("input-text-name-calc.html"));
854 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTextValue) {
855 RunTest(FILE_PATH_LITERAL("input-text-value.html"));
858 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTime) {
859 RunTest(FILE_PATH_LITERAL("input-time.html"));
862 // crbug.com/98976 will cause new elements to be added to the Blink a11y tree
863 // Re-baseline after the Blink change goes in
864 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
865 AccessibilityInputTypes) {
866 RunTest(FILE_PATH_LITERAL("input-types.html"));
869 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputUrl) {
870 RunTest(FILE_PATH_LITERAL("input-url.html"));
873 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputWeek) {
874 RunTest(FILE_PATH_LITERAL("input-week.html"));
877 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityIns) {
878 RunTest(FILE_PATH_LITERAL("ins.html"));
881 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLabel) {
882 RunTest(FILE_PATH_LITERAL("label.html"));
885 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLandmark) {
886 RunTest(FILE_PATH_LITERAL("landmark.html"));
889 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLegend) {
890 RunTest(FILE_PATH_LITERAL("legend.html"));
893 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLink) {
894 RunTest(FILE_PATH_LITERAL("link.html"));
897 //Disabled because of https://codereview.chromium.org/696953002 temporarily.
898 //After blink code is merged, it will be enabled.
899 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DISABLED_AccessibilityList) {
900 RunTest(FILE_PATH_LITERAL("list.html"));
903 //Disabled because of https://codereview.chromium.org/696953002 temporarily.
904 //After blink code is merged, it will be enabled.
905 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
906 DISABLED_AccessibilityListMarkers) {
907 RunTest(FILE_PATH_LITERAL("list-markers.html"));
910 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMain) {
911 RunTest(FILE_PATH_LITERAL("main.html"));
914 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMark) {
915 RunTest(FILE_PATH_LITERAL("mark.html"));
918 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMath) {
919 RunTest(FILE_PATH_LITERAL("math.html"));
922 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
923 AccessibilityMenutypecontext) {
924 RunTest(FILE_PATH_LITERAL("menu-type-context.html"));
927 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMeta) {
928 RunTest(FILE_PATH_LITERAL("meta.html"));
931 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMeter) {
932 RunTest(FILE_PATH_LITERAL("meter.html"));
935 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
936 AccessibilityModalDialogClosed) {
937 RunTest(FILE_PATH_LITERAL("modal-dialog-closed.html"));
940 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
941 AccessibilityModalDialogOpened) {
942 RunTest(FILE_PATH_LITERAL("modal-dialog-opened.html"));
945 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
946 AccessibilityModalDialogInIframeClosed) {
947 RunTest(FILE_PATH_LITERAL("modal-dialog-in-iframe-closed.html"));
950 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
951 AccessibilityModalDialogInIframeOpened) {
952 RunTest(FILE_PATH_LITERAL("modal-dialog-in-iframe-opened.html"));
955 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
956 AccessibilityModalDialogStack) {
957 RunTest(FILE_PATH_LITERAL("modal-dialog-stack.html"));
960 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityNavigation) {
961 RunTest(FILE_PATH_LITERAL("navigation.html"));
964 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityNoscript) {
965 RunTest(FILE_PATH_LITERAL("noscript.html"));
968 //Disabled because of https://codereview.chromium.org/696953002 temporarily.
969 //After blink code is merged, it will be enabled.
970 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DISABLED_AccessibilityOl) {
971 RunTest(FILE_PATH_LITERAL("ol.html"));
974 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityObject) {
975 RunTest(FILE_PATH_LITERAL("object.html"));
978 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
979 AccessibilityOptionindatalist) {
980 RunTest(FILE_PATH_LITERAL("option-in-datalist.html"));
983 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityOutput) {
984 RunTest(FILE_PATH_LITERAL("output.html"));
987 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityP) {
988 RunTest(FILE_PATH_LITERAL("p.html"));
991 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityParam) {
992 RunTest(FILE_PATH_LITERAL("param.html"));
995 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityPre) {
996 RunTest(FILE_PATH_LITERAL("pre.html"));
999 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityProgress) {
1000 RunTest(FILE_PATH_LITERAL("progress.html"));
1003 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityQ) {
1004 RunTest(FILE_PATH_LITERAL("q.html"));
1007 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityS) {
1008 RunTest(FILE_PATH_LITERAL("s.html"));
1011 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySamp) {
1012 RunTest(FILE_PATH_LITERAL("samp.html"));
1015 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySection) {
1016 RunTest(FILE_PATH_LITERAL("section.html"));
1019 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySelect) {
1020 RunTest(FILE_PATH_LITERAL("select.html"));
1023 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySource) {
1024 RunTest(FILE_PATH_LITERAL("source.html"));
1027 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySpan) {
1028 RunTest(FILE_PATH_LITERAL("span.html"));
1031 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySub) {
1032 RunTest(FILE_PATH_LITERAL("sub.html"));
1035 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySummary) {
1036 RunTest(FILE_PATH_LITERAL("summary.html"));
1039 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySvg) {
1040 RunTest(FILE_PATH_LITERAL("svg.html"));
1043 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTab) {
1044 RunTest(FILE_PATH_LITERAL("tab.html"));
1047 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTableSimple) {
1048 RunTest(FILE_PATH_LITERAL("table-simple.html"));
1051 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
1052 AccessibilityTableThRowHeader) {
1053 RunTest(FILE_PATH_LITERAL("table-th-rowheader.html"));
1056 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
1057 AccessibilityTableTbodyTfoot) {
1058 RunTest(FILE_PATH_LITERAL("table-thead-tbody-tfoot.html"));
1061 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTableSpans) {
1062 RunTest(FILE_PATH_LITERAL("table-spans.html"));
1065 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTextArea) {
1066 RunTest(FILE_PATH_LITERAL("textarea.html"));
1069 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTime) {
1070 RunTest(FILE_PATH_LITERAL("time.html"));
1073 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTitle) {
1074 RunTest(FILE_PATH_LITERAL("title.html"));
1077 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTransition) {
1078 RunTest(FILE_PATH_LITERAL("transition.html"));
1081 //Disabled because of https://codereview.chromium.org/696953002 temporarily.
1082 //After blink code is merged, it will be enabled.
1083 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DISABLED_AccessibilityUl) {
1084 RunTest(FILE_PATH_LITERAL("ul.html"));
1087 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityVar) {
1088 RunTest(FILE_PATH_LITERAL("var.html"));
1091 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityWbr) {
1092 RunTest(FILE_PATH_LITERAL("wbr.html"));
1095 } // namespace content