Home | History | Annotate | Download | only in tests
      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/private/input_event_private.h"
     16 #include "ppapi/cpp/rect.h"
     17 #include "ppapi/tests/test_case.h"
     18 #include "ppapi/tests/test_utils.h"
     19 
     20 class TestInputEvent : public TestCase {
     21  public:
     22   explicit TestInputEvent(TestingInstance* instance);
     23   ~TestInputEvent();
     24 
     25   virtual bool HandleInputEvent(const pp::InputEvent& input_event);
     26   virtual void HandleMessage(const pp::Var& message_data);
     27   virtual void DidChangeView(const pp::View& view);
     28 
     29   // TestCase implementation.
     30   virtual bool Init();
     31   virtual void RunTests(const std::string& test_filter);
     32 
     33  private:
     34   pp::InputEvent CreateMouseEvent(PP_InputEvent_Type type,
     35                                   PP_InputEvent_MouseButton buttons);
     36   pp::InputEvent CreateWheelEvent();
     37   pp::InputEvent CreateKeyEvent(PP_InputEvent_Type type,
     38                                 uint32_t key_code, const std::string& code);
     39   pp::InputEvent CreateCharEvent(const std::string& text);
     40   pp::InputEvent CreateTouchEvent(PP_InputEvent_Type type,
     41                                   const pp::FloatPoint& location);
     42 
     43   void PostMessageBarrier();
     44   bool SimulateInputEvent(const pp::InputEvent& input_event);
     45   bool AreEquivalentEvents(PP_Resource first, PP_Resource second);
     46 
     47   std::string TestEvents();
     48   std::string TestEventsLatencyTracking();
     49   std::string TestAcceptTouchEvent_1();
     50   std::string TestAcceptTouchEvent_2();
     51   std::string TestAcceptTouchEvent_3();
     52   std::string TestAcceptTouchEvent_4();
     53 
     54   const PPB_InputEvent* input_event_interface_;
     55   const PPB_InputEvent_Private* input_event_private_interface_;
     56   const PPB_MouseInputEvent* mouse_input_event_interface_;
     57   const PPB_WheelInputEvent* wheel_input_event_interface_;
     58   const PPB_KeyboardInputEvent* keyboard_input_event_interface_;
     59   const PPB_TouchInputEvent* touch_input_event_interface_;
     60 
     61   NestedEvent nested_event_;
     62 
     63   pp::Rect view_rect_;
     64   pp::InputEvent expected_input_event_;
     65   bool received_expected_event_;
     66   bool received_finish_message_;
     67   bool enable_latency_tracking_;
     68   bool last_latency_tracking_successful_;
     69 };
     70 
     71 #endif  // PPAPI_TESTS_TEST_INPUT_EVENT_H_
     72