OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "ui/base/keycodes/keyboard_code_conversion.h" | 5 #include "chrome/browser/extensions/key_identifier_conversion_views.h" |
| 6 |
| 7 #include "base/basictypes.h" |
| 8 #include "base/logging.h" |
| 9 #include "base/message_loop.h" |
| 10 #include "chrome/browser/browser_thread.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" |
6 #include "ui/base/keycodes/keyboard_codes.h" | 12 #include "ui/base/keycodes/keyboard_codes.h" |
7 #include "base/logging.h" | |
8 #include "testing/gtest/include/gtest/gtest.h" | |
9 | 13 |
10 namespace ui { | 14 namespace { |
11 | 15 |
12 TEST(KeyCodeFromKeyIdentifierTest, MatchOnIdentifier) { | 16 class KeyEventFromKeyIdentifierTest : public testing::Test { |
13 EXPECT_EQ(VKEY_APPS, KeyCodeFromKeyIdentifier("Apps")); | 17 protected: |
14 EXPECT_EQ(VKEY_UNKNOWN, KeyCodeFromKeyIdentifier("Nonsense")); | 18 KeyEventFromKeyIdentifierTest() |
| 19 : ui_thread_(BrowserThread::UI, &message_loop_) {} |
| 20 |
| 21 MessageLoopForUI message_loop_; |
| 22 BrowserThread ui_thread_; |
| 23 }; |
| 24 |
| 25 TEST_F(KeyEventFromKeyIdentifierTest, MatchOnIdentifier) { |
| 26 EXPECT_EQ(ui::VKEY_APPS, KeyEventFromKeyIdentifier("Apps").GetKeyCode()); |
| 27 EXPECT_EQ(ui::VKEY_UNKNOWN, |
| 28 KeyEventFromKeyIdentifier("Nonsense").GetKeyCode()); |
15 } | 29 } |
16 | 30 |
17 TEST(KeyCodeFromKeyIdentifierTest, MatchOnCharacter) { | 31 TEST_F(KeyEventFromKeyIdentifierTest, MatchOnCharacter) { |
18 EXPECT_EQ(VKEY_A, KeyCodeFromKeyIdentifier("a")); | 32 EXPECT_EQ(ui::VKEY_A, KeyEventFromKeyIdentifier("a").GetKeyCode()); |
19 EXPECT_EQ(VKEY_A, KeyCodeFromKeyIdentifier("A")); | 33 EXPECT_EQ(ui::VKEY_A, KeyEventFromKeyIdentifier("A").GetKeyCode()); |
20 EXPECT_EQ(VKEY_OEM_PERIOD, KeyCodeFromKeyIdentifier(">")); | 34 EXPECT_EQ(ui::VKEY_OEM_PERIOD, KeyEventFromKeyIdentifier(">").GetKeyCode()); |
21 | 35 |
22 std::string non_printing_char(" "); | 36 std::string non_printing_char(" "); |
23 non_printing_char[0] = static_cast<char>(1); | 37 non_printing_char[0] = static_cast<char>(1); |
24 EXPECT_EQ(VKEY_UNKNOWN, KeyCodeFromKeyIdentifier(non_printing_char)); | 38 EXPECT_EQ(ui::VKEY_UNKNOWN, |
| 39 KeyEventFromKeyIdentifier(non_printing_char).GetKeyCode()); |
25 } | 40 } |
26 | 41 |
27 TEST(KeyCodeFromKeyIdentifierTest, MatchOnUnicodeCodepoint) { | 42 TEST_F(KeyEventFromKeyIdentifierTest, MatchOnUnicodeCodepoint) { |
28 EXPECT_EQ(VKEY_A, KeyCodeFromKeyIdentifier("U+0041")); | 43 EXPECT_EQ(ui::VKEY_A, KeyEventFromKeyIdentifier("U+0041").GetKeyCode()); |
29 EXPECT_EQ(VKEY_A, KeyCodeFromKeyIdentifier("U+0061")); | 44 EXPECT_EQ(ui::VKEY_A, KeyEventFromKeyIdentifier("U+0061").GetKeyCode()); |
30 EXPECT_EQ(VKEY_DELETE, KeyCodeFromKeyIdentifier("U+007F")); | 45 EXPECT_EQ(ui::VKEY_DELETE, KeyEventFromKeyIdentifier("U+007F").GetKeyCode()); |
31 | 46 |
32 // this one exists in the map, but has no valid VKEY | 47 // this one exists in the map, but has no valid ui::VKEY |
33 EXPECT_EQ(VKEY_UNKNOWN, KeyCodeFromKeyIdentifier("U+030A")); | 48 EXPECT_EQ(ui::VKEY_UNKNOWN, KeyEventFromKeyIdentifier("U+030A").GetKeyCode()); |
34 | 49 |
35 // this one is not in the map | 50 // this one is not in the map |
36 EXPECT_EQ(VKEY_UNKNOWN, KeyCodeFromKeyIdentifier("U+0001")); | 51 EXPECT_EQ(ui::VKEY_UNKNOWN, KeyEventFromKeyIdentifier("U+0001").GetKeyCode()); |
37 } | 52 } |
38 | 53 |
39 TEST(KeyCodeFromKeyIdentifierTest, DoesNotMatchEmptyString) { | 54 TEST_F(KeyEventFromKeyIdentifierTest, DoesNotMatchEmptyString) { |
40 EXPECT_EQ(VKEY_UNKNOWN, KeyCodeFromKeyIdentifier("")); | 55 EXPECT_EQ(ui::VKEY_UNKNOWN, KeyEventFromKeyIdentifier("").GetKeyCode()); |
41 } | 56 } |
42 | 57 |
43 } // namespace ui | 58 TEST_F(KeyEventFromKeyIdentifierTest, ShiftModifiersAreSet) { |
| 59 EXPECT_EQ(0, KeyEventFromKeyIdentifier("1").GetFlags()); |
| 60 |
| 61 const char* keys_with_shift[] = { |
| 62 "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", |
| 63 "{", "}", "|", ":", "<", ">", "?", "\"" |
| 64 }; |
| 65 int kNumKeysWithShift = arraysize(keys_with_shift); |
| 66 |
| 67 for (int i = 0; i < kNumKeysWithShift; ++i) { |
| 68 EXPECT_EQ(views::Event::EF_SHIFT_DOWN, |
| 69 KeyEventFromKeyIdentifier(keys_with_shift[i]).GetFlags()); |
| 70 } |
| 71 } |
| 72 |
| 73 } // namespace |
OLD | NEW |