dump_accessibility_tree_browsertest.cc revision 2385ea399aae016c0806a4f9ef3c9cfe3d2a39df
143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// Copyright (c) 2012 The Chromium Authors. All rights reserved.
243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// Use of this source code is governed by a BSD-style license that can be
343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// found in the LICENSE file.
443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
543dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include <set>
643dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include <string>
743dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include <vector>
843dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
943dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/file_util.h"
1043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/logging.h"
1143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/path_service.h"
1243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/strings/string16.h"
1343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/strings/string_split.h"
1443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/strings/string_util.h"
15ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek#include "base/strings/utf_string_conversions.h"
16769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis#include "content/browser/accessibility/accessibility_tree_formatter.h"
17d1e5a89226da79f7e6f43d40facc46abda9e5245Jordy Rose#include "content/browser/accessibility/browser_accessibility.h"
18769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis#include "content/browser/accessibility/browser_accessibility_manager.h"
199fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis#include "content/browser/renderer_host/render_view_host_impl.h"
2043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "content/port/browser/render_widget_host_view_port.h"
2143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "content/public/browser/web_contents.h"
2243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "content/public/common/content_paths.h"
2343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "content/public/common/url_constants.h"
24d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#include "content/shell/shell.h"
25d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#include "content/test/accessibility_browser_test_utils.h"
26d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#include "content/test/content_browser_test.h"
27d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#include "content/test/content_browser_test_utils.h"
28d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#include "testing/gtest/include/gtest/gtest.h"
29d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis
30d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis// TODO(dmazzoni): Disabled accessibility tests on Win64. crbug.com/179717
31d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#if defined(OS_WIN) && defined(ARCH_CPU_X86_64)
32d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#define MAYBE(x) DISABLED_##x
33d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#else
34d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#define MAYBE(x) x
35d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis#endif
36d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis
37dff6ef903ff4fcb43b5ea292ecd772e381393b5dAnna Zaksnamespace content {
38dff6ef903ff4fcb43b5ea292ecd772e381393b5dAnna Zaks
39d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidisnamespace {
40d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis
41deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidisconst char kCommentToken = '#';
42deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidisconst char kMarkSkipFile[] = "#<skip";
43deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidisconst char kMarkEndOfFile[] = "<-- End-of-file -->";
44deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidisconst char kSignalDiff[] = "*";
45deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis
46deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis}  // namespace
47deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis
48deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidistypedef AccessibilityTreeFormatter::Filter Filter;
49deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis
50deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis// This test takes a snapshot of the platform BrowserAccessibility tree and
51769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis// tests it against an expected baseline.
52769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis//
53769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis// The flow of the test is as outlined below.
54769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis// 1. Load an html file from chrome/test/data/accessibility.
559fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis// 2. Read the expectation.
569fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis// 3. Browse to the page and serialize the platform specific tree into a human
579fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis//    readable string.
589fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis// 4. Perform a comparison between actual and expected and fail if they do not
599fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis//    exactly match.
609fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisclass DumpAccessibilityTreeTest : public ContentBrowserTest {
619fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis public:
629fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  // Utility helper that does a comment aware equality check.
639fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  // Returns array of lines from expected file which are different.
649fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  std::vector<int> DiffLines(const std::vector<std::string>& expected_lines,
659fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis                             const std::vector<std::string>& actual_lines) {
669fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    int actual_lines_count = actual_lines.size();
679fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    int expected_lines_count = expected_lines.size();
689fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    std::vector<int> diff_lines;
699fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    int i = 0, j = 0;
70769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    while (i < actual_lines_count && j < expected_lines_count) {
719fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis      if (expected_lines[j].size() == 0 ||
729fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis          expected_lines[j][0] == kCommentToken) {
739fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis        // Skip comment lines and blank lines in expected output.
749fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis        ++j;
759fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis        continue;
76769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      }
77769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
789fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis      if (actual_lines[i] != expected_lines[j])
799fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis        diff_lines.push_back(j);
809fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis      ++i;
819fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis      ++j;
829fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    }
839fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
84769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    // Actual file has been fully checked.
85769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    return diff_lines;
86769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  }
87769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
88769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  void AddDefaultFilters(std::vector<Filter>* filters) {
89769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    filters->push_back(Filter(ASCIIToUTF16("FOCUSABLE"), Filter::ALLOW));
90769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    filters->push_back(Filter(ASCIIToUTF16("READONLY"), Filter::ALLOW));
91769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    filters->push_back(Filter(ASCIIToUTF16("*=''"), Filter::DENY));
92769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  }
93c2e0db82139c70c0eac9d5c165b6bf3250af5bedArgyrios Kyrtzidis
94c2e0db82139c70c0eac9d5c165b6bf3250af5bedArgyrios Kyrtzidis  void ParseFilters(const std::string& test_html,
95cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis                    std::vector<Filter>* filters) {
968ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks    std::vector<std::string> lines;
978ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks    base::SplitString(test_html, '\n', &lines);
988ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks    for (std::vector<std::string>::const_iterator iter = lines.begin();
99769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis         iter != lines.end();
100e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis         ++iter) {
101e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis      const std::string& line = *iter;
102e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis      const std::string& allow_empty_str =
103769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis          AccessibilityTreeFormatter::GetAllowEmptyString();
104769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      const std::string& allow_str =
105769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis          AccessibilityTreeFormatter::GetAllowString();
106769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      const std::string& deny_str =
107cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis          AccessibilityTreeFormatter::GetDenyString();
108cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis      if (StartsWithASCII(line, allow_empty_str, true)) {
109769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis        filters->push_back(
110e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis          Filter(UTF8ToUTF16(line.substr(allow_empty_str.size())),
111769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis                 Filter::ALLOW_EMPTY));
112769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      } else if (StartsWithASCII(line, allow_str, true)) {
113769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis        filters->push_back(Filter(UTF8ToUTF16(line.substr(allow_str.size())),
114769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis                                  Filter::ALLOW));
115cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis      } else if (StartsWithASCII(line, deny_str, true)) {
116769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis        filters->push_back(Filter(UTF8ToUTF16(line.substr(deny_str.size())),
117769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis                                  Filter::DENY));
118769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      }
1198ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks    }
120769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  }
1218ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks
1228ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks  void RunTest(const base::FilePath::CharType* file_path);
1238ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks};
1248ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks
1258ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaksvoid DumpAccessibilityTreeTest::RunTest(
1268ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks    const base::FilePath::CharType* file_path) {
1278ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks  NavigateToURL(shell(), GURL(kAboutBlankURL));
1288ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks
129769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  // Setup test paths.
130769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  base::FilePath dir_test_data;
1319fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &dir_test_data));
1329fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  base::FilePath test_path(
1339fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis      dir_test_data.Append(FILE_PATH_LITERAL("accessibility")));
134769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  ASSERT_TRUE(base::PathExists(test_path))
135769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      << test_path.LossyDisplayName();
1365f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner
137769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  base::FilePath html_file = test_path.Append(base::FilePath(file_path));
138769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  // Output the test path to help anyone who encounters a failure and needs
139769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  // to know where to look.
140769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  printf("Testing: %s\n", html_file.MaybeAsASCII().c_str());
141514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek
142769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  std::string html_contents;
143e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis  file_util::ReadFileToString(html_file, &html_contents);
144e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis
145e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis  // Read the expected file.
146769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  std::string expected_contents_raw;
147514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek  base::FilePath expected_file =
148514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek    base::FilePath(html_file.RemoveExtension().value() +
149514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek                   AccessibilityTreeFormatter::GetExpectedFileSuffix());
150769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  file_util::ReadFileToString(expected_file, &expected_contents_raw);
151769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
1528ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks  // Tolerate Windows-style line endings (\r\n) in the expected file:
153769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  // normalize by deleting all \r from the file (if any) to leave only \n.
1543f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks  std::string expected_contents;
1553f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks  RemoveChars(expected_contents_raw, "\r", &expected_contents);
1563f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks
1573f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks  if (!expected_contents.compare(0, strlen(kMarkSkipFile), kMarkSkipFile)) {
158514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek    printf("Skipping this test on this platform.\n");
159769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    return;
160769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  }
161769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
162769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  // Load the page.
163769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  string16 html_contents16;
164769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  html_contents16 = UTF8ToUTF16(html_contents);
165769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  GURL url = GetTestUrl("accessibility",
166769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis                        html_file.BaseName().MaybeAsASCII().c_str());
167cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis  AccessibilityNotificationWaiter waiter(
168769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      shell(), AccessibilityModeComplete,
169514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek      AccessibilityNotificationLoadComplete);
170514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek  NavigateToURL(shell(), url);
171769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  waiter.WaitForNotification();
172514f2c9dcb9e04b52929c5b141a6fe88bd68b33fTed Kremenek
173c2e0db82139c70c0eac9d5c165b6bf3250af5bedArgyrios Kyrtzidis  RenderWidgetHostViewPort* host_view = RenderWidgetHostViewPort::FromRWHV(
174769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      shell()->web_contents()->GetRenderWidgetHostView());
175769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  AccessibilityTreeFormatter formatter(
176769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      host_view->GetBrowserAccessibilityManager()->GetRoot());
177769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
178769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  // Parse filters in the test file.
179769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  std::vector<Filter> filters;
180769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  AddDefaultFilters(&filters);
181769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  ParseFilters(html_contents, &filters);
182769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  formatter.SetFilters(filters);
183769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
184e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis  // Perform a diff (or write the initial baseline).
185e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis  string16 actual_contents_utf16;
186e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis  formatter.FormatAccessibilityTree(&actual_contents_utf16);
187769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  std::string actual_contents = UTF16ToUTF8(actual_contents_utf16);
188769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  std::vector<std::string> actual_lines, expected_lines;
189769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  Tokenize(actual_contents, "\n", &actual_lines);
190769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  Tokenize(expected_contents, "\n", &expected_lines);
191769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  // Marking the end of the file with a line of text ensures that
1928ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks  // file length differences are found.
1933f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks  expected_lines.push_back(kMarkEndOfFile);
1943f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks  actual_lines.push_back(kMarkEndOfFile);
195b673a41c92aa276f2e37164d0747be1cfb0c402bTed Kremenek
196b673a41c92aa276f2e37164d0747be1cfb0c402bTed Kremenek  std::vector<int> diff_lines = DiffLines(expected_lines, actual_lines);
197b673a41c92aa276f2e37164d0747be1cfb0c402bTed Kremenek  bool is_different = diff_lines.size() > 0;
198b673a41c92aa276f2e37164d0747be1cfb0c402bTed Kremenek  EXPECT_FALSE(is_different);
199063e0887ad65d666d23ee3178436ad6507abbd1bAnna Zaks  if (is_different) {
2003f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks    // Mark the expected lines which did not match actual output with a *.
201769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    printf("* Line Expected\n");
202769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    printf("- ---- --------\n");
203769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    for (int line = 0, diff_index = 0;
204769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis         line < static_cast<int>(expected_lines.size());
205769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis         ++line) {
206769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      bool is_diff = false;
207769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      if (diff_index < static_cast<int>(diff_lines.size()) &&
208769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis          diff_lines[diff_index] == line) {
209cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis        is_diff = true;
210769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis        ++diff_index;
211769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis      }
2123f8212787d9bd620930817177fbba5f32659377fArgyrios Kyrtzidis      printf("%1s %4d %s\n", is_diff? kSignalDiff : "", line + 1,
2133f8212787d9bd620930817177fbba5f32659377fArgyrios Kyrtzidis             expected_lines[line].c_str());
2143f8212787d9bd620930817177fbba5f32659377fArgyrios Kyrtzidis    }
2153f8212787d9bd620930817177fbba5f32659377fArgyrios Kyrtzidis    printf("\nActual\n");
216c2e0db82139c70c0eac9d5c165b6bf3250af5bedArgyrios Kyrtzidis    printf("------\n");
217769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    printf("%s\n", actual_contents.c_str());
218769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  }
219769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
220769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  if (!base::PathExists(expected_file)) {
221769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    base::FilePath actual_file =
222769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis        base::FilePath(html_file.RemoveExtension().value() +
223769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis                       AccessibilityTreeFormatter::GetActualFileSuffix());
224769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
225bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek    EXPECT_TRUE(file_util::WriteFile(
226bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek        actual_file, actual_contents.c_str(), actual_contents.size()));
227769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
228769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    ADD_FAILURE() << "No expectation found. Create it by doing:\n"
229e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis                  << "mv " << actual_file.LossyDisplayName() << " "
230e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis                  << expected_file.LossyDisplayName();
231e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis  }
232769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis}
233bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek
234bd613137499b1d4c3b63dccd0aa21f6add243f4fTed KremenekIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityA) {
235bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek  RunTest(FILE_PATH_LITERAL("a.html"));
236bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek}
237bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek
238769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAddress) {
239769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("address.html"));
2408ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks}
2413f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks
2423f5e8d87dbf449d8b39fe96068415428594d370eAnna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAName) {
243bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek  RunTest(FILE_PATH_LITERAL("a-name.html"));
244bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek}
245bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek
246bd613137499b1d4c3b63dccd0aa21f6add243f4fTed KremenekIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAOnclick) {
247063e0887ad65d666d23ee3178436ad6507abbd1bAnna Zaks  RunTest(FILE_PATH_LITERAL("a-onclick.html"));
248bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek}
249769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
250769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
2519fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis                       AccessibilityAriaApplication) {
2529fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-application.html"));
253769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis}
254ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks
255769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
256cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis                       AccessibilityAriaAutocomplete) {
257769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-autocomplete.html"));
258bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek}
259bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek
260bd613137499b1d4c3b63dccd0aa21f6add243f4fTed KremenekIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCombobox) {
261bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek  RunTest(FILE_PATH_LITERAL("aria-combobox.html"));
262bd613137499b1d4c3b63dccd0aa21f6add243f4fTed Kremenek}
263c2e0db82139c70c0eac9d5c165b6bf3250af5bedArgyrios Kyrtzidis
2649fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaInvalid) {
2659fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-invalid.html"));
266312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
267312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis
268312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLevel) {
269312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-level.html"));
270312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
271312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis
272312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMenu) {
273312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-menu.html"));
274ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks}
275312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis
276312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
277312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis                       AccessibilityAriaMenuitemradio) {
278312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-menuitemradio.html"));
279312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
280ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks
281ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
282ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks                       AccessibilityAriaPressed) {
283312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-pressed.html"));
284312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
2858ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks
286ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
2873f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks                       AccessibilityAriaProgressbar) {
288063e0887ad65d666d23ee3178436ad6507abbd1bAnna Zaks  RunTest(FILE_PATH_LITERAL("aria-progressbar.html"));
2893f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks}
290390909c89c98ab1807e15e033a72e975f866fb23Anna Zaks
291312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
292312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis                       AccessibilityAriaToolbar) {
293312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("toolbar.html"));
294312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
295312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis
296312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
297312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis                       AccessibilityAriaValueMin) {
298312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-valuemin.html"));
299ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks}
300ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks
301ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
302312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis                       AccessibilityAriaValueMax) {
303312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("aria-valuemax.html"));
304312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
30530726c6baee1417307236e854f1474fdb3cedb98Argyrios Kyrtzidis
30630726c6baee1417307236e854f1474fdb3cedb98Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityArticle) {
30730726c6baee1417307236e854f1474fdb3cedb98Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("article.html"));
30830726c6baee1417307236e854f1474fdb3cedb98Argyrios Kyrtzidis}
30930726c6baee1417307236e854f1474fdb3cedb98Argyrios Kyrtzidis
31030726c6baee1417307236e854f1474fdb3cedb98Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAWithImg) {
31130726c6baee1417307236e854f1474fdb3cedb98Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("a-with-img.html"));
312af5800a1e287990bb547e052f257adeeae5ab476Argyrios Kyrtzidis}
313af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks
314af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBdo) {
315af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks  RunTest(FILE_PATH_LITERAL("bdo.html"));
316af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks}
317af5800a1e287990bb547e052f257adeeae5ab476Argyrios Kyrtzidis
318af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBR) {
319af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks  RunTest(FILE_PATH_LITERAL("br.html"));
320af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks}
321af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks
322af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityButtonNameCalc) {
323af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks  RunTest(FILE_PATH_LITERAL("button-name-calc.html"));
324af5800a1e287990bb547e052f257adeeae5ab476Argyrios Kyrtzidis}
325af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks
326af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCanvas) {
327af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks  RunTest(FILE_PATH_LITERAL("canvas.html"));
328af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks}
329af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks
330063e0887ad65d666d23ee3178436ad6507abbd1bAnna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
331af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks                       AccessibilityCheckboxNameCalc) {
332af5800a1e287990bb547e052f257adeeae5ab476Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("checkbox-name-calc.html"));
333af5800a1e287990bb547e052f257adeeae5ab476Argyrios Kyrtzidis}
334af5800a1e287990bb547e052f257adeeae5ab476Argyrios Kyrtzidis
335f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDiv) {
336f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks  RunTest(FILE_PATH_LITERAL("div.html"));
337f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks}
338f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks
339f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDl) {
340f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks  RunTest(FILE_PATH_LITERAL("dl.html"));
341f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks}
342f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks
343f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
344f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks                       AccessibilityContenteditableDescendants) {
345f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks  RunTest(FILE_PATH_LITERAL("contenteditable-descendants.html"));
346f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks}
347f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks
348f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityEm) {
349f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks  RunTest(FILE_PATH_LITERAL("em.html"));
350f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks}
351f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks
352f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFooter) {
353063e0887ad65d666d23ee3178436ad6507abbd1bAnna Zaks  RunTest(FILE_PATH_LITERAL("footer.html"));
354f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks}
355f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks
356f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityForm) {
357f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks  RunTest(FILE_PATH_LITERAL("form.html"));
358f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks}
359cc05d511b26ac6dc80fcbcc78ac305d2755aa0b9Argyrios Kyrtzidis
360f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeading) {
361f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks  RunTest(FILE_PATH_LITERAL("heading.html"));
3624e82d3cf6fd4c907265e3fa3aac0a835c35dc759Anna Zaks}
363cc05d511b26ac6dc80fcbcc78ac305d2755aa0b9Argyrios Kyrtzidis
364f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHR) {
365f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks  RunTest(FILE_PATH_LITERAL("hr.html"));
366f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks}
367f236b6503a4dbc44c1fccb8756bd57c9d0efdf05Anna Zaks
368cc05d511b26ac6dc80fcbcc78ac305d2755aa0b9Argyrios Kyrtzidis// crbug.com/179717 and crbug.com/224659
369cc05d511b26ac6dc80fcbcc78ac305d2755aa0b9Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
370183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis                       DISABLED_AccessibilityIframeCoordinates) {
3718bef8238181a30e52dea380789a7e2d760eac532Ted Kremenek  RunTest(FILE_PATH_LITERAL("iframe-coordinates.html"));
372183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
373183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
374183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputButton) {
375183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("input-button.html"));
376183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
377183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
378183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
379183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis                       AccessibilityInputButtonInMenu) {
380183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("input-button-in-menu.html"));
381183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
382183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
383183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputColor) {
384183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("input-color.html"));
385183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
386183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
387183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
388183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis                       AccessibilityInputImageButtonInMenu) {
389183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("input-image-button-in-menu.html"));
390183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
391183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
392183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputRange) {
3938ff5c41f2bde7ebbe568b4c15e59f14b8befae66Anna Zaks  RunTest(FILE_PATH_LITERAL("input-range.html"));
3943f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks}
3953f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks
3963f5e8d87dbf449d8b39fe96068415428594d370eAnna ZaksIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
397063e0887ad65d666d23ee3178436ad6507abbd1bAnna Zaks                       AccessibilityInputTextNameCalc) {
3983f5e8d87dbf449d8b39fe96068415428594d370eAnna Zaks  RunTest(FILE_PATH_LITERAL("input-text-name-calc.html"));
399183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
400183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
401183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLabel) {
402183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("label.html"));
403183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
404183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
405183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityListMarkers) {
406183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("list-markers.html"));
407183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
408183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
409183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityP) {
410183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("p.html"));
411183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
412183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
413183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySelect) {
414183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("select.html"));
4158bef8238181a30e52dea380789a7e2d760eac532Ted Kremenek}
416183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
417183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySpan) {
418183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("span.html"));
419183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
420183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
421183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySpinButton) {
422183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("spinbutton.html"));
423183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
4248bef8238181a30e52dea380789a7e2d760eac532Ted Kremenek
4258bef8238181a30e52dea380789a7e2d760eac532Ted Kremenek// TODO(dmazzoni): Rebaseline this test after Blink rolls past r155083.
42635bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek// See http://crbug.com/265619
427537716ad8dd10f984b6cfe6985afade1185c5e3cJordy RoseIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DISABLED_AccessibilitySvg) {
42866c40400e7d6272b0cd675ada18dd62c1f0362c7Anna Zaks  RunTest(FILE_PATH_LITERAL("svg.html"));
42966c40400e7d6272b0cd675ada18dd62c1f0362c7Anna Zaks}
430183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
431183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTab) {
432183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("tab.html"));
433183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
434183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
435537716ad8dd10f984b6cfe6985afade1185c5e3cJordy RoseIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTableSimple) {
43666c40400e7d6272b0cd675ada18dd62c1f0362c7Anna Zaks  RunTest(FILE_PATH_LITERAL("table-simple.html"));
437183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis}
438183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
439183ff98f425d470c2a0276880aaf43496c9dad14Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTableSpans) {
440183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("table-spans.html"));
441312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
4428bef8238181a30e52dea380789a7e2d760eac532Ted Kremenek
4438bef8238181a30e52dea380789a7e2d760eac532Ted KremenekIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
444312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis                       AccessibilityToggleButton) {
445312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("togglebutton.html"));
446312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
447312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis
448312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityUl) {
449312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("ul.html"));
450312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
451312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis
452312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios KyrtzidisIN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityWbr) {
453312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis  RunTest(FILE_PATH_LITERAL("wbr.html"));
454312dbec867f6b8d6b86fd562c53352cd4db27468Argyrios Kyrtzidis}
455e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis
456e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis}  // namespace content
457e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis