events_test_utils.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. #ifndef UI_EVENTS_TEST_EVENTS_TEST_UTILS_H_
  5. #define UI_EVENTS_TEST_EVENTS_TEST_UTILS_H_
  6. #include "base/memory/raw_ptr.h"
  7. #include "ui/events/event.h"
  8. #include "ui/events/event_dispatcher.h"
  9. #include "ui/events/event_target.h"
  10. #include "ui/events/keycodes/dom/dom_key.h"
  11. namespace ui {
  12. class EventSource;
  13. class EventTestApi {
  14. public:
  15. explicit EventTestApi(Event* event);
  16. EventTestApi(const EventTestApi&) = delete;
  17. EventTestApi& operator=(const EventTestApi&) = delete;
  18. virtual ~EventTestApi();
  19. void set_time_stamp(base::TimeTicks time_stamp) {
  20. event_->time_stamp_ = time_stamp;
  21. }
  22. void set_source_device_id(int source_device_id) {
  23. event_->source_device_id_ = source_device_id;
  24. }
  25. private:
  26. EventTestApi();
  27. raw_ptr<Event> event_;
  28. };
  29. class LocatedEventTestApi : public EventTestApi {
  30. public:
  31. explicit LocatedEventTestApi(LocatedEvent* located_event);
  32. LocatedEventTestApi(const LocatedEventTestApi&) = delete;
  33. LocatedEventTestApi& operator=(const LocatedEventTestApi&) = delete;
  34. ~LocatedEventTestApi() override;
  35. void set_location(const gfx::Point& location) {
  36. located_event_->set_location(location);
  37. }
  38. void set_location_f(const gfx::PointF& location) {
  39. located_event_->set_location_f(location);
  40. }
  41. private:
  42. LocatedEventTestApi();
  43. raw_ptr<LocatedEvent> located_event_;
  44. };
  45. class KeyEventTestApi : public EventTestApi {
  46. public:
  47. explicit KeyEventTestApi(KeyEvent* key_event);
  48. KeyEventTestApi(const KeyEventTestApi&) = delete;
  49. KeyEventTestApi& operator=(const KeyEventTestApi&) = delete;
  50. ~KeyEventTestApi() override;
  51. void set_is_char(bool is_char) {
  52. key_event_->set_is_char(is_char);
  53. }
  54. DomKey dom_key() const { return key_event_->key_; }
  55. private:
  56. KeyEventTestApi();
  57. raw_ptr<KeyEvent> key_event_;
  58. };
  59. class EventTargetTestApi {
  60. public:
  61. explicit EventTargetTestApi(EventTarget* target);
  62. EventTargetTestApi(const EventTargetTestApi&) = delete;
  63. EventTargetTestApi& operator=(const EventTargetTestApi&) = delete;
  64. ui::EventHandlerList GetPreTargetHandlers() {
  65. ui::EventHandlerList list;
  66. target_->GetPreTargetHandlers(&list);
  67. return list;
  68. }
  69. private:
  70. EventTargetTestApi();
  71. raw_ptr<EventTarget> target_;
  72. };
  73. class EventSourceTestApi {
  74. public:
  75. explicit EventSourceTestApi(EventSource* event_source);
  76. EventSourceTestApi(const EventSourceTestApi&) = delete;
  77. EventSourceTestApi& operator=(const EventSourceTestApi&) = delete;
  78. [[nodiscard]] EventDispatchDetails SendEventToSink(Event* event);
  79. private:
  80. EventSourceTestApi();
  81. raw_ptr<EventSource> event_source_;
  82. };
  83. } // namespace ui
  84. #endif // UI_EVENTS_TEST_EVENTS_TEST_UTILS_H_