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

Unified Diff: ui/views/accessibility/native_view_accessibility_win_unittest.cc

Issue 23441024: Implement put_accvalue for textfields and location bar. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add test, address feedback Created 7 years, 3 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: ui/views/accessibility/native_view_accessibility_win_unittest.cc
diff --git a/ui/views/accessibility/native_view_accessibility_win_unittest.cc b/ui/views/accessibility/native_view_accessibility_win_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..77ab6d0ab5dfdc7565d041b6f36ee9a680a857fc
--- /dev/null
+++ b/ui/views/accessibility/native_view_accessibility_win_unittest.cc
@@ -0,0 +1,65 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <oleacc.h>
+
+#include "base/win/scoped_bstr.h"
+#include "base/win/scoped_comptr.h"
+#include "base/win/scoped_variant.h"
+#include "ui/views/controls/textfield/textfield.h"
+#include "ui/views/test/views_test_base.h"
+
+namespace views {
+namespace test {
+
+typedef ViewsTestBase NativeViewAcccessibilityWinTest;
+
+TEST_F(NativeViewAcccessibilityWinTest, TextfieldAccessibility) {
+ Widget widget;
+ Widget::InitParams init_params =
+ CreateParams(Widget::InitParams::TYPE_WINDOW);
+ init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+ widget.Init(init_params);
+
+ View* content = new View;
+ widget.SetContentsView(content);
+
+ Textfield* textfield = new Textfield;
+ textfield->SetAccessibleName(L"Name");
+ textfield->SetText(L"Value");
+ content->AddChildView(textfield);
+
+ base::win::ScopedComPtr<IAccessible> content_accessible(
+ content->GetNativeViewAccessible());
+ LONG child_count = 0;
+ ASSERT_EQ(S_OK, content_accessible->get_accChildCount(&child_count));
+ ASSERT_EQ(1L, child_count);
+
+ base::win::ScopedComPtr<IDispatch> textfield_dispatch;
+ base::win::ScopedComPtr<IAccessible> textfield_accessible;
+ base::win::ScopedVariant child_index(1);
+ ASSERT_EQ(S_OK, content_accessible->get_accChild(
+ child_index, textfield_dispatch.Receive()));
+ ASSERT_EQ(S_OK, textfield_dispatch.QueryInterface(
+ textfield_accessible.Receive()));
+
+ base::win::ScopedBstr name;
+ base::win::ScopedVariant childid_self(CHILDID_SELF);
+ ASSERT_EQ(S_OK, textfield_accessible->get_accName(
+ childid_self, name.Receive()));
+ ASSERT_STREQ(L"Name", name);
+
+ base::win::ScopedBstr value;
+ ASSERT_EQ(S_OK, textfield_accessible->get_accValue(
+ childid_self, value.Receive()));
+ ASSERT_STREQ(L"Value", value);
+
+ base::win::ScopedBstr new_value(L"New value");
+ ASSERT_EQ(S_OK, textfield_accessible->put_accValue(childid_self, new_value));
+
+ ASSERT_STREQ(L"New value", textfield->text().c_str());
+}
+
+} // namespace test
+} // namespace views

Powered by Google App Engine
This is Rietveld 408576698