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