OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/browser/ui/libgtk2ui/x11_input_method_context_impl_gtk2.h" | |
6 | |
7 #include "base/strings/utf_string_conversions.h" | |
8 #include "testing/gtest/include/gtest/gtest.h" | |
9 | |
10 namespace libgtk2ui { | |
11 | |
12 class X11InputMethodContextImplGtk2FriendTest : public testing::Test { | |
13 }; | |
14 | |
15 TEST_F(X11InputMethodContextImplGtk2FriendTest, GtkCommitSignalTrap) { | |
16 libgtk2ui::X11InputMethodContextImplGtk2::GtkCommitSignalTrap trap; | |
17 | |
18 // Test the initial state. | |
19 EXPECT_FALSE(trap.IsSignalCaught()); | |
20 EXPECT_FALSE(trap.Trap(base::string16())); | |
21 EXPECT_FALSE(trap.IsSignalCaught()); | |
22 | |
23 // Cases which don't match the target keyval. | |
24 trap.StartTrap('t'); | |
25 EXPECT_FALSE(trap.Trap(base::UTF8ToUTF16("T"))); | |
26 EXPECT_FALSE(trap.IsSignalCaught()); | |
27 EXPECT_FALSE(trap.Trap(base::UTF8ToUTF16("true"))); | |
28 EXPECT_FALSE(trap.IsSignalCaught()); | |
29 | |
30 // Do not catch when the trap is not activated. | |
31 trap.StopTrap(); | |
32 EXPECT_FALSE(trap.Trap(base::UTF8ToUTF16("t"))); | |
33 EXPECT_FALSE(trap.IsSignalCaught()); | |
34 | |
35 // Successive calls don't break anything. | |
36 trap.StopTrap(); | |
37 trap.StopTrap(); | |
38 EXPECT_FALSE(trap.Trap(base::UTF8ToUTF16("t"))); | |
39 EXPECT_FALSE(trap.IsSignalCaught()); | |
40 trap.StartTrap('f'); | |
41 trap.StartTrap('t'); | |
42 EXPECT_TRUE(trap.Trap(base::UTF8ToUTF16("t"))); | |
43 EXPECT_TRUE(trap.IsSignalCaught()); | |
44 | |
45 // StartTrap() resets the state. | |
46 trap.StartTrap('t'); | |
47 EXPECT_FALSE(trap.IsSignalCaught()); | |
48 // Many times calls to Trap() are okay. | |
49 EXPECT_FALSE(trap.Trap(base::UTF8ToUTF16("f"))); | |
50 EXPECT_FALSE(trap.IsSignalCaught()); | |
51 EXPECT_TRUE(trap.Trap(base::UTF8ToUTF16("t"))); | |
52 EXPECT_TRUE(trap.IsSignalCaught()); | |
53 } | |
54 | |
55 } // namespace libgtk2ui | |
OLD | NEW |