Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Unified Diff: content/browser/accessibility/dump_accessibility_tree_browsertest.cc

Issue 10837065: Revert 149510 - Allow filters in accessibility tests to specify which attributes to check. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/dump_accessibility_tree_browsertest.cc
===================================================================
--- content/browser/accessibility/dump_accessibility_tree_browsertest.cc (revision 149548)
+++ content/browser/accessibility/dump_accessibility_tree_browsertest.cc (working copy)
@@ -2,13 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include <set>
#include <string>
#include <vector>
#include "base/logging.h"
#include "base/path_service.h"
-#include "base/string_split.h"
#include "base/string_util.h"
#include "base/string16.h"
#include "base/utf_string_conversions.h"
@@ -28,6 +26,8 @@
#include "testing/gtest/include/gtest/gtest.h"
namespace {
+// Required to enter html content into a url.
+ static const std::string kUrlPreamble = "data:text/html,\n<!doctype html>";
static const char kCommentToken = '#';
static const char* kMarkSkipFile = "#<skip";
static const char* kMarkEndOfFile = "<-- End-of-file -->";
@@ -51,7 +51,7 @@
// Utility helper that does a comment aware equality check.
// Returns array of lines from expected file which are different.
std::vector<int> DiffLines(std::vector<std::string>& expected_lines,
- std::vector<std::string>& actual_lines) {
+ std::vector<std::string>& actual_lines) {
int actual_lines_count = actual_lines.size();
int expected_lines_count = expected_lines.size();
std::vector<int> diff_lines;
@@ -74,42 +74,16 @@
return diff_lines;
}
- void AddDefaultFilters(std::set<string16>* allow_filters,
- std::set<string16>* deny_filters) {
- allow_filters->insert(ASCIIToUTF16("FOCUSABLE"));
- allow_filters->insert(ASCIIToUTF16("READONLY"));
- }
-
- void ParseFilters(const std::string& test_html,
- std::set<string16>* allow_filters,
- std::set<string16>* deny_filters) {
- std::vector<std::string> lines;
- base::SplitString(test_html, '\n', &lines);
- for (std::vector<std::string>::const_iterator iter = lines.begin();
- iter != lines.end();
- ++iter) {
- const std::string& line = *iter;
- const std::string& allow_str = helper_.GetAllowString();
- const std::string& deny_str = helper_.GetDenyString();
- if (StartsWithASCII(line, allow_str, true))
- allow_filters->insert(UTF8ToUTF16(line.substr(allow_str.size())));
- else if (StartsWithASCII(line, deny_str, true))
- deny_filters->insert(UTF8ToUTF16(line.substr(deny_str.size())));
- }
- }
-
- void RunTest(const FilePath::CharType* file_path);
-
DumpAccessibilityTreeHelper helper_;
};
-void DumpAccessibilityTreeTest::RunTest(const FilePath::CharType* file_path) {
- NavigateToURL(shell(), GURL("about:blank"));
+IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
+ DISABLED_PlatformTreeDifferenceTest) {
RenderWidgetHostViewPort* host_view = static_cast<RenderWidgetHostViewPort*>(
shell()->web_contents()->GetRenderWidgetHostView());
- RenderWidgetHostImpl* host =
- RenderWidgetHostImpl::From(host_view->GetRenderWidgetHost());
- RenderViewHostImpl* view_host = static_cast<RenderViewHostImpl*>(host);
+ RenderWidgetHost* host = host_view->GetRenderWidgetHost();
+ RenderViewHostImpl* view_host =
+ static_cast<RenderViewHostImpl*>(RenderWidgetHostImpl::From(host));
view_host->set_save_accessibility_tree_for_testing(true);
view_host->SetAccessibilityMode(AccessibilityModeComplete);
@@ -120,141 +94,107 @@
EXPECT_TRUE(file_util::PathExists(test_path))
<< test_path.LossyDisplayName();
- FilePath html_file = test_path.Append(FilePath(file_path));
// Output the test path to help anyone who encounters a failure and needs
// to know where to look.
- printf("Testing: %s\n", html_file.MaybeAsASCII().c_str());
+ printf("Path to test files: %s\n", test_path.MaybeAsASCII().c_str());
- std::string html_contents;
- file_util::ReadFileToString(html_file, &html_contents);
+ // Grab all HTML files.
+ file_util::FileEnumerator file_enumerator(test_path,
+ false,
+ file_util::FileEnumerator::FILES,
+ FILE_PATH_LITERAL("*.html"));
- // Parse filters in the test file.
- std::set<string16> allow_filters;
- std::set<string16> deny_filters;
- AddDefaultFilters(&allow_filters, &deny_filters);
- ParseFilters(html_contents, &allow_filters, &deny_filters);
- helper_.SetFilters(allow_filters, deny_filters);
+ // TODO(dtseng): Make each of these a gtest with script.
+ FilePath html_file(file_enumerator.Next());
+ ASSERT_FALSE(html_file.empty());
+ do {
+ std::string html_contents;
+ file_util::ReadFileToString(html_file, &html_contents);
- // Read the expected file.
- std::string expected_contents_raw;
- FilePath expected_file =
- FilePath(html_file.RemoveExtension().value() +
- helper_.GetExpectedFileSuffix());
- file_util::ReadFileToString(
- expected_file,
- &expected_contents_raw);
+ // Read the expected file.
+ std::string expected_contents_raw;
+ FilePath expected_file =
+ FilePath(html_file.RemoveExtension().value() +
+ helper_.GetExpectedFileSuffix());
+ file_util::ReadFileToString(
+ expected_file,
+ &expected_contents_raw);
- // Tolerate Windows-style line endings (\r\n) in the expected file:
- // normalize by deleting all \r from the file (if any) to leave only \n.
- std::string expected_contents;
- RemoveChars(expected_contents_raw, "\r", &expected_contents);
+ // Tolerate Windows-style line endings (\r\n) in the expected file:
+ // normalize by deleting all \r from the file (if any) to leave only \n.
+ std::string expected_contents;
+ RemoveChars(expected_contents_raw, "\r", &expected_contents);
- if (!expected_contents.compare(0, strlen(kMarkSkipFile), kMarkSkipFile)) {
- printf("Skipping this test on this platform.\n");
- return;
- }
+ if (!expected_contents.compare(0, strlen(kMarkSkipFile), kMarkSkipFile)) {
+ printf("Skipping %s\n", html_file.BaseName().MaybeAsASCII().c_str());
+ continue;
+ }
- // Load the page.
- WindowedNotificationObserver tree_updated_observer(
- NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED,
- NotificationService::AllSources());
- string16 html_contents16;
- html_contents16 = UTF8ToUTF16(html_contents);
- GURL url = GetTestUrl("accessibility",
- html_file.BaseName().MaybeAsASCII().c_str());
- NavigateToURL(shell(), url);
+ printf("Testing %s\n", html_file.BaseName().MaybeAsASCII().c_str());
- // Wait for the tree.
- tree_updated_observer.Wait();
+ // Load the page.
+ WindowedNotificationObserver tree_updated_observer(
+ NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED,
+ NotificationService::AllSources());
+ string16 html_contents16;
+ html_contents16 = UTF8ToUTF16(html_contents);
+ GURL url(UTF8ToUTF16(kUrlPreamble) + html_contents16);
+ NavigateToURL(shell(), url);
- // Perform a diff (or write the initial baseline).
- string16 actual_contents_utf16;
- helper_.DumpAccessibilityTree(
- host_view->GetBrowserAccessibilityManager()->GetRoot(),
- &actual_contents_utf16);
- std::string actual_contents = UTF16ToUTF8(actual_contents_utf16);
- std::vector<std::string> actual_lines, expected_lines;
- Tokenize(actual_contents, "\n", &actual_lines);
- Tokenize(expected_contents, "\n", &expected_lines);
- // Marking the end of the file with a line of text ensures that
- // file length differences are found.
- expected_lines.push_back(kMarkEndOfFile);
- actual_lines.push_back(kMarkEndOfFile);
+ // Wait for the tree.
+ tree_updated_observer.Wait();
- std::vector<int> diff_lines = DiffLines(expected_lines, actual_lines);
- bool is_different = diff_lines.size() > 0;
- EXPECT_FALSE(is_different);
- if (is_different) {
- // Mark the expected lines which did not match actual output with a *.
- printf("* Line Expected\n");
- printf("- ---- --------\n");
- for (int line = 0, diff_index = 0;
- line < static_cast<int>(expected_lines.size());
- ++line) {
- bool is_diff = false;
- if (diff_index < static_cast<int>(diff_lines.size()) &&
- diff_lines[diff_index] == line) {
- is_diff = true;
- ++ diff_index;
+ // Perform a diff (or write the initial baseline).
+ string16 actual_contents_utf16;
+ helper_.DumpAccessibilityTree(
+ host_view->GetBrowserAccessibilityManager()->GetRoot(),
+ &actual_contents_utf16);
+ std::string actual_contents = UTF16ToUTF8(actual_contents_utf16);
+ std::vector<std::string> actual_lines, expected_lines;
+ Tokenize(actual_contents, "\n", &actual_lines);
+ Tokenize(expected_contents, "\n", &expected_lines);
+ // Marking the end of the file with a line of text ensures that
+ // file length differences are found.
+ expected_lines.push_back(kMarkEndOfFile);
+ actual_lines.push_back(kMarkEndOfFile);
+
+ std::vector<int> diff_lines = DiffLines(expected_lines, actual_lines);
+ bool is_different = diff_lines.size() > 0;
+ EXPECT_FALSE(is_different);
+ if (is_different) {
+ // Mark the expected lines which did not match actual output with a *.
+ printf("* Line Expected\n");
+ printf("- ---- --------\n");
+ for (int line = 0, diff_index = 0;
+ line < static_cast<int>(expected_lines.size());
+ ++line) {
+ bool is_diff = false;
+ if (diff_index < static_cast<int>(diff_lines.size()) &&
+ diff_lines[diff_index] == line) {
+ is_diff = true;
+ ++ diff_index;
+ }
+ printf("%1s %4d %s\n", is_diff? kSignalDiff : "", line + 1,
+ expected_lines[line].c_str());
}
- printf("%1s %4d %s\n", is_diff? kSignalDiff : "", line + 1,
- expected_lines[line].c_str());
+ printf("\nActual\n");
+ printf("------\n");
+ printf("%s\n", actual_contents.c_str());
}
- printf("\nActual\n");
- printf("------\n");
- printf("%s\n", actual_contents.c_str());
- }
- if (!file_util::PathExists(expected_file)) {
- FilePath actual_file =
- FilePath(html_file.RemoveExtension().value() +
- helper_.GetActualFileSuffix());
+ if (!file_util::PathExists(expected_file)) {
+ FilePath actual_file =
+ FilePath(html_file.RemoveExtension().value() +
+ helper_.GetActualFileSuffix());
- EXPECT_TRUE(file_util::WriteFile(
- actual_file, actual_contents.c_str(), actual_contents.size()));
+ EXPECT_TRUE(file_util::WriteFile(
+ actual_file, actual_contents.c_str(), actual_contents.size()));
- ADD_FAILURE() << "No expectation found. Create it by doing:\n"
- << "mv " << actual_file.LossyDisplayName() << " "
- << expected_file.LossyDisplayName();
- }
+ ADD_FAILURE() << "No expectation found. Create it by doing:\n"
+ << "mv " << actual_file.LossyDisplayName() << " "
+ << expected_file.LossyDisplayName();
+ }
+ } while (!(html_file = file_enumerator.Next()).empty());
}
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityA) {
- RunTest(FILE_PATH_LITERAL("a.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAName) {
- RunTest(FILE_PATH_LITERAL("a-name.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAOnclick) {
- RunTest(FILE_PATH_LITERAL("a-onclick.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityAriaApplication) {
- RunTest(FILE_PATH_LITERAL("aria-application.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAWithImg) {
- RunTest(FILE_PATH_LITERAL("a-with-img.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityContenteditableDescendants) {
- RunTest(FILE_PATH_LITERAL("contenteditable-descendants.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFooter) {
- RunTest(FILE_PATH_LITERAL("footer.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityListMarkers) {
- RunTest(FILE_PATH_LITERAL("list-markers.html"));
-}
-
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityUl) {
- RunTest(FILE_PATH_LITERAL("ul.html"));
-}
-
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698