| Index: content/browser/accessibility/browser_accessibility_win_unittest.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility_win_unittest.cc b/content/browser/accessibility/browser_accessibility_win_unittest.cc
|
| index e7acf8d4b490cae0c1ed602845d015b3a95692c7..77d0cfc12d575006191744b34edbda229613d61f 100644
|
| --- a/content/browser/accessibility/browser_accessibility_win_unittest.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_win_unittest.cc
|
| @@ -770,8 +770,14 @@ TEST_F(BrowserAccessibilityTest, EmptyDocHasUniqueIdWin) {
|
| }
|
|
|
| TEST_F(BrowserAccessibilityTest, TestIA2Attributes) {
|
| + ui::AXNodeData pseudo_before;
|
| + pseudo_before.id = 2;
|
| + pseudo_before.role = ui::AX_ROLE_DIV;
|
| + pseudo_before.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "<pseudo:before>");
|
| + pseudo_before.AddStringAttribute(ui::AX_ATTR_DISPLAY, "none");
|
| +
|
| ui::AXNodeData checkbox;
|
| - checkbox.id = 2;
|
| + checkbox.id = 3;
|
| checkbox.SetName("Checkbox");
|
| checkbox.role = ui::AX_ROLE_CHECK_BOX;
|
| checkbox.state = 1 << ui::AX_STATE_CHECKED;
|
| @@ -782,28 +788,41 @@ TEST_F(BrowserAccessibilityTest, TestIA2Attributes) {
|
| root.role = ui::AX_ROLE_ROOT_WEB_AREA;
|
| root.state = (1 << ui::AX_STATE_READ_ONLY) | (1 << ui::AX_STATE_FOCUSABLE);
|
| root.child_ids.push_back(2);
|
| + root.child_ids.push_back(3);
|
|
|
| CountedBrowserAccessibility::reset();
|
| scoped_ptr<BrowserAccessibilityManager> manager(
|
| BrowserAccessibilityManager::Create(
|
| - MakeAXTreeUpdate(root, checkbox),
|
| - nullptr, new CountedBrowserAccessibilityFactory()));
|
| - ASSERT_EQ(2, CountedBrowserAccessibility::num_instances());
|
| + MakeAXTreeUpdate(root, pseudo_before, checkbox), nullptr,
|
| + new CountedBrowserAccessibilityFactory()));
|
| + ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
|
|
|
| ASSERT_NE(nullptr, manager->GetRoot());
|
| BrowserAccessibilityWin* root_accessible =
|
| manager->GetRoot()->ToBrowserAccessibilityWin();
|
| ASSERT_NE(nullptr, root_accessible);
|
| - ASSERT_EQ(1, root_accessible->PlatformChildCount());
|
| - BrowserAccessibilityWin* checkbox_accessible =
|
| - root_accessible->PlatformGetChild(0)->ToBrowserAccessibilityWin();
|
| - ASSERT_NE(nullptr, checkbox_accessible);
|
| + ASSERT_EQ(2, root_accessible->PlatformChildCount());
|
| +
|
| + BrowserAccessibilityWin* pseudo_accessible =
|
| + root_accessible->PlatformGetChild(0)->ToBrowserAccessibilityWin();
|
| + ASSERT_NE(nullptr, pseudo_accessible);
|
|
|
| base::win::ScopedBstr attributes;
|
| - HRESULT hr = checkbox_accessible->get_attributes(attributes.Receive());
|
| + HRESULT hr = pseudo_accessible->get_attributes(attributes.Receive());
|
| EXPECT_EQ(S_OK, hr);
|
| EXPECT_NE(nullptr, static_cast<BSTR>(attributes));
|
| std::wstring attributes_str(attributes, attributes.Length());
|
| + EXPECT_EQ(L"display:none;tag:<pseudo\\:before>;", attributes_str);
|
| +
|
| + BrowserAccessibilityWin* checkbox_accessible =
|
| + root_accessible->PlatformGetChild(1)->ToBrowserAccessibilityWin();
|
| + ASSERT_NE(nullptr, checkbox_accessible);
|
| +
|
| + attributes.Reset();
|
| + hr = checkbox_accessible->get_attributes(attributes.Receive());
|
| + EXPECT_EQ(S_OK, hr);
|
| + EXPECT_NE(nullptr, static_cast<BSTR>(attributes));
|
| + attributes_str = std::wstring(attributes, attributes.Length());
|
| EXPECT_EQ(L"checkable:true;", attributes_str);
|
|
|
| manager.reset();
|
| @@ -1240,4 +1259,11 @@ TEST_F(BrowserAccessibilityTest, TestPlatformDeepestFirstLastChild) {
|
| EXPECT_EQ(nullptr, child2_child2_accessible->PlatformDeepestLastChild());
|
| }
|
|
|
| +TEST_F(BrowserAccessibilityTest, TestSanitizeStringAttributeForIA2) {
|
| + base::string16 input(L"\\:=,;");
|
| + base::string16 output;
|
| + BrowserAccessibilityWin::SanitizeStringAttributeForIA2(input, &output);
|
| + EXPECT_EQ(L"\\\\\\:\\=\\,\\;", output);
|
| +}
|
| +
|
| } // namespace content
|
|
|