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_IME_INPUT_EVENT_H_
      6 #define PPAPI_TESTS_TEST_IME_INPUT_EVENT_H_
      7 
      8 #include <string>
      9 #include <utility>
     10 #include <vector>
     11 
     12 #include "ppapi/c/ppb_input_event.h"
     13 #include "ppapi/cpp/input_event.h"
     14 #include "ppapi/tests/test_case.h"
     15 
     16 class TestImeInputEvent : public TestCase {
     17  public:
     18   explicit TestImeInputEvent(TestingInstance* instance);
     19   ~TestImeInputEvent();
     20 
     21   // TestCase implementation.
     22   virtual void RunTests(const std::string& test_filter);
     23   virtual bool Init();
     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  private:
     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);
     38 
     39   void GetFocusBySimulatingMouseClick();
     40   bool SimulateInputEvent(const pp::InputEvent& input_event);
     41   bool AreEquivalentEvents(PP_Resource first, PP_Resource second);
     42 
     43   // The test cases.
     44   std::string TestImeCommit();
     45   std::string TestImeCancel();
     46   std::string TestImeUnawareCommit();
     47   std::string TestImeUnawareCancel();
     48 
     49   const PPB_InputEvent* input_event_interface_;
     50   const PPB_KeyboardInputEvent* keyboard_input_event_interface_;
     51   const PPB_IMEInputEvent* ime_input_event_interface_;
     52 
     53   pp::Rect view_rect_;
     54   bool received_unexpected_event_;
     55   bool received_finish_message_;
     56   std::vector<pp::InputEvent> expected_events_;
     57 };
     58 
     59 #endif  // PPAPI_TESTS_TEST_IME_INPUT_EVENT_H_
     60