summaryrefslogtreecommitdiffstats
path: root/content/browser
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-02 01:04:42 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-02 01:04:42 +0000
commita515f3fbb078ae5d3d6fa89e58d2547fb808cb60 (patch)
treea379b2ab776970a7435e3884d71ae640144c95ad /content/browser
parent221c45d997d7cd70cc4c1af5ff7614875d5b8844 (diff)
downloadchromium_src-a515f3fbb078ae5d3d6fa89e58d2547fb808cb60.zip
chromium_src-a515f3fbb078ae5d3d6fa89e58d2547fb808cb60.tar.gz
chromium_src-a515f3fbb078ae5d3d6fa89e58d2547fb808cb60.tar.bz2
Revert 149510 - Allow filters in accessibility tests to specify which attributes to check.
This may have caused the Win 7 WebKit canary bot to begin crashing; see http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=accessibility%2Floading-iframe-updates-axtree.html If rolling this out does not fix the bot, I will put it back in later tonight. With this change, a DumpAccessibilityTree test can specify filters to control which attributes are printed. This keeps each test expectation file small and readable, while making it easy to test for all sorts of attributes, including obscure ones. Each platform will have a few attributes that print by default, like the role and name. HTML files add rules of this form to override the defaults: @MAC-DENY:subrole* @MAC-DENY:value* @MAC-ALLOW:description* You can also specify @MAC-ALLOW:* or @WIN-ALLOW:* if you want to dump everything - helpful during development sometimes. BUG=124314 Review URL: https://chromiumcodereview.appspot.com/10662003 TBR=dmazzoni@chromium.org Review URL: https://chromiumcodereview.appspot.com/10837065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149550 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser')
-rw-r--r--content/browser/accessibility/browser_accessibility_win.h11
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_browsertest.cc262
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_helper.cc47
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_helper.h35
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_helper_mac.mm49
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_helper_win.cc67
6 files changed, 138 insertions, 333 deletions
diff --git a/content/browser/accessibility/browser_accessibility_win.h b/content/browser/accessibility/browser_accessibility_win.h
index c4385d0..03f70a7 100644
--- a/content/browser/accessibility/browser_accessibility_win.h
+++ b/content/browser/accessibility/browser_accessibility_win.h
@@ -747,14 +747,9 @@ BrowserAccessibilityWin
REFIID iid,
void** object);
- // Accessors.
- int32 ia_role() const { return ia_role_; }
- int32 ia_state() const { return ia_state_; }
- int32 ia2_role() const { return ia2_role_; }
- int32 ia2_state() const { return ia2_state_; }
- const std::vector<string16>& ia2_attributes() const {
- return ia2_attributes_;\
- }
+ // Accessors to IA2 role and state.
+ int32 ia2_role() { return ia2_role_; }
+ int32 ia2_state() { return ia2_state_; }
private:
// Add one to the reference count and return the same object. Always
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 7a38620..c8e508c 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -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 @@ class DumpAccessibilityTreeTest : public ContentBrowserTest {
// 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 @@ class DumpAccessibilityTreeTest : public ContentBrowserTest {
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 @@ void DumpAccessibilityTreeTest::RunTest(const FilePath::CharType* file_path) {
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());
-
- std::string html_contents;
- file_util::ReadFileToString(html_file, &html_contents);
-
- // 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);
-
- // 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);
-
- if (!expected_contents.compare(0, strlen(kMarkSkipFile), kMarkSkipFile)) {
- printf("Skipping this test on this platform.\n");
- return;
- }
-
- // 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);
-
- // Wait for the tree.
- tree_updated_observer.Wait();
-
- // 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);
+ printf("Path to test files: %s\n", test_path.MaybeAsASCII().c_str());
+
+ // Grab all HTML files.
+ file_util::FileEnumerator file_enumerator(test_path,
+ false,
+ file_util::FileEnumerator::FILES,
+ FILE_PATH_LITERAL("*.html"));
+
+ // 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);
+
+ // 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 %s\n", html_file.BaseName().MaybeAsASCII().c_str());
+ continue;
+ }
- 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("Testing %s\n", html_file.BaseName().MaybeAsASCII().c_str());
+
+ // 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);
+
+ // Wait for the tree.
+ tree_updated_observer.Wait();
+
+ // 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());
-
- 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();
- }
-}
-
-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"));
-}
+ if (!file_util::PathExists(expected_file)) {
+ FilePath actual_file =
+ FilePath(html_file.RemoveExtension().value() +
+ helper_.GetActualFileSuffix());
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFooter) {
- RunTest(FILE_PATH_LITERAL("footer.html"));
-}
+ EXPECT_TRUE(file_util::WriteFile(
+ actual_file, actual_contents.c_str(), actual_contents.size()));
-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"));
+ ADD_FAILURE() << "No expectation found. Create it by doing:\n"
+ << "mv " << actual_file.LossyDisplayName() << " "
+ << expected_file.LossyDisplayName();
+ }
+ } while (!(html_file = file_enumerator.Next()).empty());
}
} // namespace content
diff --git a/content/browser/accessibility/dump_accessibility_tree_helper.cc b/content/browser/accessibility/dump_accessibility_tree_helper.cc
index cd54007..1d667c9 100644
--- a/content/browser/accessibility/dump_accessibility_tree_helper.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_helper.cc
@@ -4,21 +4,12 @@
#include "content/browser/accessibility/dump_accessibility_tree_helper.h"
-#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
-#include "base/string_util.h"
namespace {
const int kIndentSpaces = 4;
}
-DumpAccessibilityTreeHelper::DumpAccessibilityTreeHelper() {
- Initialize();
-}
-
-DumpAccessibilityTreeHelper::~DumpAccessibilityTreeHelper() {
-}
-
void DumpAccessibilityTreeHelper::DumpAccessibilityTree(
BrowserAccessibility* node, string16* contents) {
RecursiveDumpAccessibilityTree(node, contents, 0);
@@ -37,41 +28,3 @@ void DumpAccessibilityTreeHelper::RecursiveDumpAccessibilityTree(
indent + kIndentSpaces);
}
}
-
-void DumpAccessibilityTreeHelper::SetFilters(
- const std::set<string16>& allow_filters,
- const std::set<string16>& deny_filters) {
- allow_filters_ = allow_filters;
- deny_filters_ = deny_filters;
-}
-
-bool DumpAccessibilityTreeHelper::MatchesFilters(
- const string16& text, bool default_result) {
- std::set<string16>::const_iterator iter = allow_filters_.begin();
- for (iter = allow_filters_.begin(); iter != allow_filters_.end(); ++iter) {
- if (MatchPattern(text, *iter))
- return true;
- }
- for (iter = deny_filters_.begin(); iter != deny_filters_.end(); ++iter) {
- if (MatchPattern(text, *iter))
- return false;
- }
- return default_result;
-}
-
-void DumpAccessibilityTreeHelper::StartLine() {
- line_.clear();
-}
-
-void DumpAccessibilityTreeHelper::Add(
- bool include_by_default, const string16& attr) {
- if (!MatchesFilters(attr, include_by_default))
- return;
- if (!line_.empty())
- line_ += ASCIIToUTF16(" ");
- line_ += attr;
-}
-
-string16 DumpAccessibilityTreeHelper::FinishLine() {
- return line_;
-}
diff --git a/content/browser/accessibility/dump_accessibility_tree_helper.h b/content/browser/accessibility/dump_accessibility_tree_helper.h
index 0a63872..314ef74 100644
--- a/content/browser/accessibility/dump_accessibility_tree_helper.h
+++ b/content/browser/accessibility/dump_accessibility_tree_helper.h
@@ -5,8 +5,6 @@
#ifndef CONTENT_BROWSER_ACCESSIBILITY_DUMP_ACCESSIBILITY_TREE_HELPER_H_
#define CONTENT_BROWSER_ACCESSIBILITY_DUMP_ACCESSIBILITY_TREE_HELPER_H_
-#include <set>
-
#include "base/file_path.h"
#include "base/string16.h"
#include "base/utf_string_conversions.h"
@@ -17,18 +15,10 @@
// implemented.
class DumpAccessibilityTreeHelper {
public:
- DumpAccessibilityTreeHelper();
- virtual ~DumpAccessibilityTreeHelper();
-
// Dumps a BrowserAccessibility tree into a string.
void DumpAccessibilityTree(BrowserAccessibility* node,
string16* contents);
- // Set regular expression filters that apply to each component of every
- // line before it's output.
- void SetFilters(const std::set<string16>& allow_filters,
- const std::set<string16>& deny_filters);
-
// Suffix of the expectation file corresponding to html file.
// Example:
// HTML test: test-file.html
@@ -37,20 +27,6 @@ class DumpAccessibilityTreeHelper {
const FilePath::StringType GetActualFileSuffix() const;
const FilePath::StringType GetExpectedFileSuffix() const;
- // A platform-specific string that indicates a given line in a file
- // is an allow or deny filter. Example:
- // Mac values:
- // GetAllowString() -> "@MAC-ALLOW:"
- // GetDenyString() -> "@MAC-DENY:"
- // Example html:
- // <!--
- // @MAC-ALLOW:roleDescription*
- // @MAC-DENY:subrole*
- // -->
- // <p>Text</p>
- const std::string GetAllowString() const;
- const std::string GetDenyString() const;
-
protected:
void RecursiveDumpAccessibilityTree(BrowserAccessibility* node,
string16* contents,
@@ -62,17 +38,6 @@ class DumpAccessibilityTreeHelper {
string16 ToString(BrowserAccessibility* node, char* prefix);
void Initialize();
-
- bool MatchesFilters(const string16& text, bool default_result);
- void StartLine();
- void Add(bool include_by_default, const string16& attr);
- string16 FinishLine();
-
- std::set<string16> allow_filters_;
- std::set<string16> deny_filters_;
- string16 line_;
-
- DISALLOW_COPY_AND_ASSIGN(DumpAccessibilityTreeHelper);
};
#endif // CONTENT_BROWSER_ACCESSIBILITY_DUMP_ACCESSIBILITY_TREE_HELPER_H_
diff --git a/content/browser/accessibility/dump_accessibility_tree_helper_mac.mm b/content/browser/accessibility/dump_accessibility_tree_helper_mac.mm
index 8c4549b..04b72e0 100644
--- a/content/browser/accessibility/dump_accessibility_tree_helper_mac.mm
+++ b/content/browser/accessibility/dump_accessibility_tree_helper_mac.mm
@@ -11,35 +11,26 @@
#include "content/browser/accessibility/browser_accessibility_cocoa.h"
#include "content/browser/accessibility/browser_accessibility_mac.h"
-namespace {
-string16 Format(BrowserAccessibility* node,
- const char *prefix,
- SEL selector,
- const char *suffix) {
- BrowserAccessibilityCocoa* cocoa_node = node->ToBrowserAccessibilityCocoa();
- NSString* format_str =
- [NSString stringWithFormat:@"%s%%@%s", prefix, suffix];
- NSString* tmp = [NSString stringWithFormat:format_str,
- [cocoa_node performSelector:selector]];
- return UTF8ToUTF16([tmp cStringUsingEncoding:NSUTF8StringEncoding]);
-}
-}
-
void DumpAccessibilityTreeHelper::Initialize() {}
string16 DumpAccessibilityTreeHelper::ToString(BrowserAccessibility* node,
char* prefix) {
- StartLine();
- Add(true, Format(node, "", @selector(role), ""));
- Add(true, Format(node, "subrole=", @selector(subrole), ""));
- Add(false, Format(node, "roleDescription='",
- @selector(roleDescription),
- "'"));
- Add(true, Format(node, "title='", @selector(title), "'"));
- Add(true, Format(node, "value='", @selector(value), "'"));
- Add(false, Format(node, "description='", @selector(description), "'"));
- Add(false, Format(node, "help='", @selector(help), "'"));
- return ASCIIToUTF16(prefix) + FinishLine() + ASCIIToUTF16("\n");
+ BrowserAccessibilityCocoa* cocoa_node = node->ToBrowserAccessibilityCocoa();
+ NSString* dump =
+ [NSString stringWithFormat:@"%s%@ "
+ "subrole=%@ "
+ "roleDescription='%@' "
+ "title='%@' "
+ "value='%@'\n",
+ prefix,
+ [cocoa_node role],
+ [cocoa_node subrole],
+ [cocoa_node roleDescription],
+ [cocoa_node title],
+ [cocoa_node value]];
+ std::string tempVal = [dump cStringUsingEncoding:NSUTF8StringEncoding];
+
+ return UTF8ToUTF16(tempVal);
}
const FilePath::StringType DumpAccessibilityTreeHelper::GetActualFileSuffix()
@@ -51,11 +42,3 @@ const FilePath::StringType DumpAccessibilityTreeHelper::GetExpectedFileSuffix()
const {
return FILE_PATH_LITERAL("-expected-mac.txt");
}
-
-const std::string DumpAccessibilityTreeHelper::GetAllowString() const {
- return "@MAC-ALLOW:";
-}
-
-const std::string DumpAccessibilityTreeHelper::GetDenyString() const {
- return "@MAC-DENY:";
-}
diff --git a/content/browser/accessibility/dump_accessibility_tree_helper_win.cc b/content/browser/accessibility/dump_accessibility_tree_helper_win.cc
index 6aae2be..6d75527 100644
--- a/content/browser/accessibility/dump_accessibility_tree_helper_win.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_helper_win.cc
@@ -12,60 +12,38 @@
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
#include "content/browser/accessibility/browser_accessibility_win.h"
-#include "content/common/accessibility_node_data.h"
#include "content/public/test/accessibility_test_utils_win.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/iaccessible2/ia2_api_all.h"
-#include "ui/base/win/atl_module.h"
-void DumpAccessibilityTreeHelper::Initialize() {
- ui::win::CreateATLModuleIfNeeded();
-}
-
string16 DumpAccessibilityTreeHelper::ToString(
BrowserAccessibility* node, char* prefix) {
BrowserAccessibilityWin* acc_obj = node->ToBrowserAccessibilityWin();
- // Get the computed name.
+ // Get state string.
VARIANT variant_self;
variant_self.vt = VT_I4;
variant_self.lVal = CHILDID_SELF;
- CComBSTR msaa_name_variant;
- HRESULT hresult = acc_obj->get_accName(variant_self, &msaa_name_variant);
- string16 name;
- if (S_OK == hresult)
- name = msaa_name_variant.m_str;
-
- // Get state strings.
- std::vector<string16> state_strings;
- IAccessibleStateToStringVector(acc_obj->ia_state(), &state_strings);
- IAccessible2StateToStringVector(acc_obj->ia2_state(), &state_strings);
+ VARIANT msaa_state_variant;
+ HRESULT hresult = acc_obj->get_accState(variant_self, &msaa_state_variant);
+ EXPECT_EQ(S_OK, hresult);
+ EXPECT_EQ(VT_I4, msaa_state_variant.vt);
+ string16 state_str = IAccessibleStateToString(msaa_state_variant.lVal);
+ string16 state2_str = IAccessible2StateToString(acc_obj->ia2_state());
+ if (!state2_str.empty()) {
+ if (!state_str.empty())
+ state_str += L",";
+ state_str += state2_str;
+ }
- // Get the description and attributes.
- string16 description;
- acc_obj->GetStringAttribute(content::AccessibilityNodeData::ATTR_DESCRIPTION,
- &description);
- const std::vector<string16>& ia2_attributes = acc_obj->ia2_attributes();
+ // Get role string.
+ string16 role_str = IAccessible2RoleToString(acc_obj->ia2_role());
- // Build the line.
- StartLine();
- Add(true, IAccessible2RoleToString(acc_obj->ia2_role()));
- Add(true, L"name='" + name + L"'");
- for (std::vector<string16>::const_iterator it = state_strings.begin();
- it != state_strings.end();
- ++it) {
- Add(false, *it);
- }
- for (std::vector<string16>::const_iterator it = ia2_attributes.begin();
- it != ia2_attributes.end();
- ++it) {
- Add(false, *it);
- }
- Add(false, L"role_name='" + acc_obj->role_name() + L"'");
- Add(false, L"value='" + acc_obj->value() + L"'");
- Add(false, L"description='" + description + L"'");
- return UTF8ToUTF16(prefix) + FinishLine() + ASCIIToUTF16("\n");
+ return UTF8ToUTF16(prefix) +
+ role_str +
+ L" name='" + acc_obj->name() +
+ L"' state=" + state_str + L"\n";
}
const FilePath::StringType DumpAccessibilityTreeHelper::GetActualFileSuffix()
@@ -77,12 +55,3 @@ const FilePath::StringType DumpAccessibilityTreeHelper::GetExpectedFileSuffix()
const {
return FILE_PATH_LITERAL("-expected-win.txt");
}
-
-
-const std::string DumpAccessibilityTreeHelper::GetAllowString() const {
- return "@WIN-ALLOW:";
-}
-
-const std::string DumpAccessibilityTreeHelper::GetDenyString() const {
- return "@WIN-DENY:";
-}