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/dev/ppb_testing_dev.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