12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#ifndef UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#define UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include <string> 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include <vector> 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/compiler_specific.h" 13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/event_handler.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochtypedef std::vector<std::string> HandlerSequenceRecorder; 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace ui { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace test { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// A simple EventHandler that keeps track of the number of key events that it's 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// seen. 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)class TestEventHandler : public EventHandler { 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) TestEventHandler(); 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~TestEventHandler(); 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_key_events() const { return num_key_events_; } 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_mouse_events() const { return num_mouse_events_; } 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_scroll_events() const { return num_scroll_events_; } 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_touch_events() const { return num_touch_events_; } 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_gesture_events() const { return num_gesture_events_; } 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void Reset(); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_recorder(HandlerSequenceRecorder* recorder) { 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch recorder_ = recorder; 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_handler_name(const std::string& handler_name) { 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch handler_name_ = handler_name; 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // EventHandler overrides: 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual void OnKeyEvent(KeyEvent* event) OVERRIDE; 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual void OnMouseEvent(MouseEvent* event) OVERRIDE; 4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual void OnScrollEvent(ScrollEvent* event) OVERRIDE; 4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual void OnTouchEvent(TouchEvent* event) OVERRIDE; 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual void OnGestureEvent(GestureEvent* event) OVERRIDE; 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // How many events have been received of each type? 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_key_events_; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_mouse_events_; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_scroll_events_; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_touch_events_; 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_gesture_events_; 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch HandlerSequenceRecorder* recorder_; 58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch std::string handler_name_; 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TestEventHandler); 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace test 6423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace ui 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif // UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ 67