test_event_rewriter.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2018 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_TEST_EVENT_REWRITER_H_
  5. #define UI_EVENTS_TEST_TEST_EVENT_REWRITER_H_
  6. #include <memory>
  7. #include "ui/events/event_rewriter.h"
  8. namespace ui {
  9. namespace test {
  10. // Counts number of events observed.
  11. class TestEventRewriter : public ui::EventRewriter {
  12. public:
  13. TestEventRewriter();
  14. TestEventRewriter(const TestEventRewriter&) = delete;
  15. TestEventRewriter& operator=(const TestEventRewriter&) = delete;
  16. ~TestEventRewriter() override;
  17. void clear_events_seen() { events_seen_ = 0; }
  18. int events_seen() const { return events_seen_; }
  19. const ui::Event* last_event() const { return last_event_.get(); }
  20. void ResetLastEvent() { last_event_.reset(); }
  21. // ui::EventRewriter:
  22. ui::EventDispatchDetails RewriteEvent(
  23. const ui::Event& event,
  24. const Continuation continuation) override;
  25. private:
  26. int events_seen_ = 0;
  27. std::unique_ptr<ui::Event> last_event_;
  28. };
  29. } // namespace test
  30. } // namespace ui
  31. #endif // UI_EVENTS_TEST_TEST_EVENT_REWRITER_H_