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 UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ 6#define UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ 7 8#include <string> 9#include <vector> 10 11#include "base/basictypes.h" 12#include "base/compiler_specific.h" 13#include "ui/events/event_handler.h" 14 15typedef std::vector<std::string> HandlerSequenceRecorder; 16 17namespace ui { 18namespace test { 19 20// A simple EventHandler that keeps track of the number of key events that it's 21// seen. 22class TestEventHandler : public EventHandler { 23 public: 24 TestEventHandler(); 25 virtual ~TestEventHandler(); 26 27 int num_key_events() const { return num_key_events_; } 28 int num_mouse_events() const { return num_mouse_events_; } 29 int num_scroll_events() const { return num_scroll_events_; } 30 int num_touch_events() const { return num_touch_events_; } 31 int num_gesture_events() const { return num_gesture_events_; } 32 33 void Reset(); 34 35 void set_recorder(HandlerSequenceRecorder* recorder) { 36 recorder_ = recorder; 37 } 38 void set_handler_name(const std::string& handler_name) { 39 handler_name_ = handler_name; 40 } 41 42 // EventHandler overrides: 43 virtual void OnKeyEvent(KeyEvent* event) OVERRIDE; 44 virtual void OnMouseEvent(MouseEvent* event) OVERRIDE; 45 virtual void OnScrollEvent(ScrollEvent* event) OVERRIDE; 46 virtual void OnTouchEvent(TouchEvent* event) OVERRIDE; 47 virtual void OnGestureEvent(GestureEvent* event) OVERRIDE; 48 49 private: 50 // How many events have been received of each type? 51 int num_key_events_; 52 int num_mouse_events_; 53 int num_scroll_events_; 54 int num_touch_events_; 55 int num_gesture_events_; 56 57 HandlerSequenceRecorder* recorder_; 58 std::string handler_name_; 59 60 DISALLOW_COPY_AND_ASSIGN(TestEventHandler); 61}; 62 63} // namespace test 64} // namespace ui 65 66#endif // UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ 67