events_test_utils.h revision f2477e01787aa58f445919b809d89e252beef54f
1// Copyright 2013 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_EVENTS_TEST_UTILS_H_
6#define UI_EVENTS_TEST_EVENTS_TEST_UTILS_H_
7
8#include "ui/events/event.h"
9#include "ui/events/event_target.h"
10
11namespace ui {
12
13class EventTestApi {
14 public:
15  explicit EventTestApi(Event* event);
16  virtual ~EventTestApi();
17
18  void set_time_stamp(base::TimeDelta time_stamp) {
19    event_->time_stamp_ = time_stamp;
20  }
21
22 private:
23  EventTestApi();
24
25  Event* event_;
26
27  DISALLOW_COPY_AND_ASSIGN(EventTestApi);
28};
29
30class LocatedEventTestApi : public EventTestApi {
31 public:
32  explicit LocatedEventTestApi(LocatedEvent* located_event);
33  virtual ~LocatedEventTestApi();
34
35  void set_location(const gfx::Point& location) {
36    located_event_->location_ = location;
37  }
38
39 private:
40  LocatedEventTestApi();
41
42  LocatedEvent* located_event_;
43
44  DISALLOW_COPY_AND_ASSIGN(LocatedEventTestApi);
45};
46
47class EventTargetTestApi {
48 public:
49  explicit EventTargetTestApi(EventTarget* target);
50
51  const EventHandlerList& pre_target_handlers() {
52    return target_->pre_target_list_;
53  }
54
55 private:
56  EventTargetTestApi();
57
58  EventTarget* target_;
59
60  DISALLOW_COPY_AND_ASSIGN(EventTargetTestApi);
61};
62
63}  // namespace ui
64
65#endif  // UI_EVENTS_TEST_EVENTS_TEST_UTILS_H_
66