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. 4 5 #ifndef PPAPI_TESTS_TEST_INPUT_EVENT_H_ 6 #define PPAPI_TESTS_TEST_INPUT_EVENT_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "ppapi/c/ppb_input_event.h" 12 #include "ppapi/c/private/ppb_testing_private.h" 13 #include "ppapi/cpp/input_event.h" 14 #include "ppapi/cpp/point.h" 15 #include "ppapi/cpp/rect.h" 16 #include "ppapi/tests/test_case.h" 17 #include "ppapi/tests/test_utils.h" 18 19 class TestInputEvent : public TestCase { 20 public: 21 explicit TestInputEvent(TestingInstance* instance); 22 ~TestInputEvent(); 23 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); 27 28 // TestCase implementation. 29 virtual bool Init(); 30 virtual void RunTests(const std::string& test_filter); 31 32 private: 33 pp::InputEvent CreateMouseEvent(PP_InputEvent_Type type, 34 PP_InputEvent_MouseButton buttons); 35 pp::InputEvent CreateWheelEvent(); 36 pp::InputEvent CreateKeyEvent(PP_InputEvent_Type type, 37 uint32_t key_code); 38 pp::InputEvent CreateCharEvent(const std::string& text); 39 pp::InputEvent CreateTouchEvent(PP_InputEvent_Type type, 40 const pp::FloatPoint& location); 41 42 void PostMessageBarrier(); 43 bool SimulateInputEvent(const pp::InputEvent& input_event); 44 bool AreEquivalentEvents(PP_Resource first, PP_Resource second); 45 46 std::string TestEvents(); 47 std::string TestAcceptTouchEvent_1(); 48 std::string TestAcceptTouchEvent_2(); 49 std::string TestAcceptTouchEvent_3(); 50 std::string TestAcceptTouchEvent_4(); 51 52 const PPB_InputEvent* input_event_interface_; 53 const PPB_MouseInputEvent* mouse_input_event_interface_; 54 const PPB_WheelInputEvent* wheel_input_event_interface_; 55 const PPB_KeyboardInputEvent* keyboard_input_event_interface_; 56 const PPB_TouchInputEvent* touch_input_event_interface_; 57 58 NestedEvent nested_event_; 59 60 pp::Rect view_rect_; 61 pp::InputEvent expected_input_event_; 62 bool received_expected_event_; 63 bool received_finish_message_; 64 }; 65 66 #endif // PPAPI_TESTS_TEST_INPUT_EVENT_H_ 67