test_event_processor.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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_TEST_EVENT_PROCESSOR_H_
  5. #define UI_EVENTS_TEST_TEST_EVENT_PROCESSOR_H_
  6. #include <memory>
  7. #include "ui/events/event_processor.h"
  8. namespace ui {
  9. namespace test {
  10. class TestEventProcessor : public EventProcessor {
  11. public:
  12. TestEventProcessor();
  13. TestEventProcessor(const TestEventProcessor&) = delete;
  14. TestEventProcessor& operator=(const TestEventProcessor&) = delete;
  15. ~TestEventProcessor() override;
  16. int num_times_processing_started() const {
  17. return num_times_processing_started_;
  18. }
  19. int num_times_processing_finished() const {
  20. return num_times_processing_finished_;
  21. }
  22. void set_should_processing_occur(bool occur) {
  23. should_processing_occur_ = occur;
  24. }
  25. EventTarget* GetRoot();
  26. void SetRoot(std::unique_ptr<EventTarget> root);
  27. void Reset();
  28. // EventProcessor:
  29. bool CanDispatchToTarget(EventTarget* target) override;
  30. EventTarget* GetRootForEvent(Event* event) override;
  31. EventTargeter* GetDefaultEventTargeter() override;
  32. EventDispatchDetails OnEventFromSource(Event* event) override;
  33. void OnEventProcessingStarted(Event* event) override;
  34. void OnEventProcessingFinished(Event* event) override;
  35. private:
  36. std::unique_ptr<EventTarget> root_;
  37. // Used in our override of OnEventProcessingStarted(). If this value is
  38. // false, mark incoming events as handled.
  39. bool should_processing_occur_;
  40. // Counts the number of times OnEventProcessingStarted() has been called.
  41. int num_times_processing_started_;
  42. // Counts the number of times OnEventProcessingFinished() has been called.
  43. int num_times_processing_finished_;
  44. };
  45. } // namespace test
  46. } // namespace ui
  47. #endif // UI_EVENTS_TEST_TEST_EVENT_PROCESSOR_H_