OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/accessibility_events.h" | 5 #include "chrome/browser/accessibility_events.h" |
6 #include "chrome/browser/chromeos/login/wizard_accessibility_handler.h" | 6 #include "chrome/browser/chromeos/login/wizard_accessibility_handler.h" |
| 7 #include "chrome/common/chrome_notification_types.h" |
7 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
8 | 9 |
9 using chromeos::EarconType; | 10 using chromeos::EarconType; |
10 using chromeos::WizardAccessibilityHandler; | 11 using chromeos::WizardAccessibilityHandler; |
11 | 12 |
12 namespace chromeos { | 13 namespace chromeos { |
13 | 14 |
14 class WizardAccessibilityHandlerTest : public testing::Test { | 15 class WizardAccessibilityHandlerTest : public testing::Test { |
15 protected: | 16 protected: |
16 void ChangeText(WizardAccessibilityHandler* handler, | 17 void ChangeText(WizardAccessibilityHandler* handler, |
17 AccessibilityTextBoxInfo* textbox_info, | 18 AccessibilityTextBoxInfo* textbox_info, |
18 const std::string& value, | 19 const std::string& value, |
19 int selection_start, | 20 int selection_start, |
20 int selection_end, | 21 int selection_end, |
21 std::string* description) { | 22 std::string* description) { |
22 textbox_info->SetValue(value, selection_start, selection_end); | 23 textbox_info->SetValue(value, selection_start, selection_end); |
23 EarconType earcon = chromeos::NO_EARCON; | 24 EarconType earcon = chromeos::NO_EARCON; |
24 handler->DescribeAccessibilityEvent( | 25 handler->DescribeAccessibilityEvent( |
25 NotificationType::ACCESSIBILITY_TEXT_CHANGED, | 26 chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED, |
26 textbox_info, | 27 textbox_info, |
27 description, | 28 description, |
28 &earcon); | 29 &earcon); |
29 } | 30 } |
30 }; | 31 }; |
31 | 32 |
32 TEST_F(WizardAccessibilityHandlerTest, TestFocusEvents) { | 33 TEST_F(WizardAccessibilityHandlerTest, TestFocusEvents) { |
33 WizardAccessibilityHandler handler; | 34 WizardAccessibilityHandler handler; |
34 | 35 |
35 std::string description; | 36 std::string description; |
36 EarconType earcon; | 37 EarconType earcon; |
37 | 38 |
38 // No need to test every possible control, but test several types | 39 // No need to test every possible control, but test several types |
39 // to exercise different types of string concatenation. | 40 // to exercise different types of string concatenation. |
40 | 41 |
41 // NOTE: unittests are forced to run under the en-US locale, so it's | 42 // NOTE: unittests are forced to run under the en-US locale, so it's |
42 // safe to do these string comparisons without using l10n_util. | 43 // safe to do these string comparisons without using l10n_util. |
43 | 44 |
44 // Test a simple control. | 45 // Test a simple control. |
45 std::string button_name = "Save"; | 46 std::string button_name = "Save"; |
46 AccessibilityButtonInfo button_info(NULL, button_name); | 47 AccessibilityButtonInfo button_info(NULL, button_name); |
47 handler.DescribeAccessibilityEvent( | 48 handler.DescribeAccessibilityEvent( |
48 NotificationType::ACCESSIBILITY_CONTROL_FOCUSED, | 49 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, |
49 &button_info, | 50 &button_info, |
50 &description, | 51 &description, |
51 &earcon); | 52 &earcon); |
52 EXPECT_EQ(chromeos::EARCON_BUTTON, earcon); | 53 EXPECT_EQ(chromeos::EARCON_BUTTON, earcon); |
53 EXPECT_EQ("Save Button", description); | 54 EXPECT_EQ("Save Button", description); |
54 | 55 |
55 // Test a control with multiple states. | 56 // Test a control with multiple states. |
56 std::string checkbox_name = "Accessibility"; | 57 std::string checkbox_name = "Accessibility"; |
57 AccessibilityCheckboxInfo checkbox_info(NULL, checkbox_name, false); | 58 AccessibilityCheckboxInfo checkbox_info(NULL, checkbox_name, false); |
58 handler.DescribeAccessibilityEvent( | 59 handler.DescribeAccessibilityEvent( |
59 NotificationType::ACCESSIBILITY_CONTROL_FOCUSED, | 60 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, |
60 &checkbox_info, | 61 &checkbox_info, |
61 &description, | 62 &description, |
62 &earcon); | 63 &earcon); |
63 EXPECT_EQ(chromeos::EARCON_CHECK_OFF, earcon); | 64 EXPECT_EQ(chromeos::EARCON_CHECK_OFF, earcon); |
64 EXPECT_EQ("Accessibility Unchecked check box", description); | 65 EXPECT_EQ("Accessibility Unchecked check box", description); |
65 checkbox_info.SetChecked(true); | 66 checkbox_info.SetChecked(true); |
66 handler.DescribeAccessibilityEvent( | 67 handler.DescribeAccessibilityEvent( |
67 NotificationType::ACCESSIBILITY_CONTROL_FOCUSED, | 68 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, |
68 &checkbox_info, | 69 &checkbox_info, |
69 &description, | 70 &description, |
70 &earcon); | 71 &earcon); |
71 EXPECT_EQ(chromeos::EARCON_CHECK_ON, earcon); | 72 EXPECT_EQ(chromeos::EARCON_CHECK_ON, earcon); |
72 EXPECT_EQ("Accessibility Checked check box", description); | 73 EXPECT_EQ("Accessibility Checked check box", description); |
73 | 74 |
74 // Test a control with a value and index. | 75 // Test a control with a value and index. |
75 std::string combobox_name = "Language"; | 76 std::string combobox_name = "Language"; |
76 std::string combobox_value = "English"; | 77 std::string combobox_value = "English"; |
77 AccessibilityComboBoxInfo combobox_info( | 78 AccessibilityComboBoxInfo combobox_info( |
78 NULL, combobox_name, combobox_value, 12, 35); | 79 NULL, combobox_name, combobox_value, 12, 35); |
79 handler.DescribeAccessibilityEvent( | 80 handler.DescribeAccessibilityEvent( |
80 NotificationType::ACCESSIBILITY_CONTROL_FOCUSED, | 81 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, |
81 &combobox_info, | 82 &combobox_info, |
82 &description, | 83 &description, |
83 &earcon); | 84 &earcon); |
84 EXPECT_EQ(chromeos::EARCON_LISTBOX, earcon); | 85 EXPECT_EQ(chromeos::EARCON_LISTBOX, earcon); |
85 EXPECT_EQ("English Language Combo box 13 of 35", description); | 86 EXPECT_EQ("English Language Combo box 13 of 35", description); |
86 } | 87 } |
87 | 88 |
88 TEST_F(WizardAccessibilityHandlerTest, TestTextEvents) { | 89 TEST_F(WizardAccessibilityHandlerTest, TestTextEvents) { |
89 WizardAccessibilityHandler handler; | 90 WizardAccessibilityHandler handler; |
90 | 91 |
91 std::string description; | 92 std::string description; |
92 EarconType earcon; | 93 EarconType earcon; |
93 | 94 |
94 AccessibilityTextBoxInfo textbox_info(NULL, "", false); | 95 AccessibilityTextBoxInfo textbox_info(NULL, "", false); |
95 handler.DescribeAccessibilityEvent( | 96 handler.DescribeAccessibilityEvent( |
96 NotificationType::ACCESSIBILITY_CONTROL_FOCUSED, | 97 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, |
97 &textbox_info, | 98 &textbox_info, |
98 &description, | 99 &description, |
99 &earcon); | 100 &earcon); |
100 EXPECT_EQ("Text box", description); | 101 EXPECT_EQ("Text box", description); |
101 EXPECT_EQ(chromeos::EARCON_TEXTBOX, earcon); | 102 EXPECT_EQ(chromeos::EARCON_TEXTBOX, earcon); |
102 | 103 |
103 // Type "hello world.", one character at a time. | 104 // Type "hello world.", one character at a time. |
104 ChangeText(&handler, &textbox_info, "h", 1, 1, &description); | 105 ChangeText(&handler, &textbox_info, "h", 1, 1, &description); |
105 EXPECT_EQ("h", description); | 106 EXPECT_EQ("h", description); |
106 ChangeText(&handler, &textbox_info, "he", 2, 2, &description); | 107 ChangeText(&handler, &textbox_info, "he", 2, 2, &description); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 EXPECT_EQ("Space", description); | 156 EXPECT_EQ("Space", description); |
156 ChangeText(&handler, &textbox_info, " world.", 4, 4, &description); | 157 ChangeText(&handler, &textbox_info, " world.", 4, 4, &description); |
157 EXPECT_EQ("Unselected", description); | 158 EXPECT_EQ("Unselected", description); |
158 | 159 |
159 // If the string suddenly changes, it should just speak the new value. | 160 // If the string suddenly changes, it should just speak the new value. |
160 ChangeText(&handler, &textbox_info, "Potato", 0, 0, &description); | 161 ChangeText(&handler, &textbox_info, "Potato", 0, 0, &description); |
161 EXPECT_EQ("Potato", description); | 162 EXPECT_EQ("Potato", description); |
162 } | 163 } |
163 | 164 |
164 } | 165 } |
OLD | NEW |