1 // Copyright (c) 2012 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.
5 #ifndef PPAPI_TESTS_TEST_IME_INPUT_EVENT_H_
6 #define PPAPI_TESTS_TEST_IME_INPUT_EVENT_H_
12 #include "ppapi/c/ppb_input_event.h"
13 #include "ppapi/cpp/input_event.h"
14 #include "ppapi/tests/test_case.h"
16 class TestImeInputEvent
: public TestCase
{
18 explicit TestImeInputEvent(TestingInstance
* instance
);
21 // TestCase implementation.
22 virtual void RunTests(const std::string
& test_filter
);
24 virtual bool HandleInputEvent(const pp::InputEvent
& input_event
);
25 virtual void HandleMessage(const pp::Var
& message_data
);
26 virtual void DidChangeView(const pp::View
& view
);
29 pp::InputEvent
CreateImeCompositionStartEvent();
30 pp::InputEvent
CreateImeCompositionUpdateEvent(
31 const std::string
& text
,
32 const std::vector
<uint32_t>& segments
,
33 int32_t target_segment
,
34 const std::pair
<uint32_t, uint32_t>& selection
);
35 pp::InputEvent
CreateImeCompositionEndEvent(const std::string
& text
);
36 pp::InputEvent
CreateImeTextEvent(const std::string
& text
);
37 pp::InputEvent
CreateCharEvent(const std::string
& text
);
39 void GetFocusBySimulatingMouseClick();
40 bool SimulateInputEvent(const pp::InputEvent
& input_event
);
41 bool AreEquivalentEvents(PP_Resource first
, PP_Resource second
);
44 std::string
TestImeCommit();
45 std::string
TestImeCancel();
46 std::string
TestImeUnawareCommit();
47 std::string
TestImeUnawareCancel();
49 const PPB_InputEvent
* input_event_interface_
;
50 const PPB_KeyboardInputEvent
* keyboard_input_event_interface_
;
51 const PPB_IMEInputEvent
* ime_input_event_interface_
;
54 bool received_unexpected_event_
;
55 bool received_finish_message_
;
56 std::vector
<pp::InputEvent
> expected_events_
;
59 #endif // PPAPI_TESTS_TEST_IME_INPUT_EVENT_H_