Home | History | Annotate | Download | only in test
      1 // Copyright 2014 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_PLATFORM_EVENT_WAITER_H_
      6 #define UI_EVENTS_TEST_PLATFORM_EVENT_WAITER_H_
      7 
      8 #include "base/callback.h"
      9 #include "ui/events/platform/platform_event_observer.h"
     10 
     11 namespace ui {
     12 
     13 class PlatformEventWaiter : public PlatformEventObserver {
     14  public:
     15   typedef base::Callback<bool(const PlatformEvent&)> PlatformEventMatcher;
     16 
     17   static PlatformEventWaiter* Create(const base::Closure& success_callback,
     18                                      const PlatformEventMatcher& event_matcher);
     19 
     20  private:
     21   PlatformEventWaiter(const base::Closure& success_callback,
     22                       const PlatformEventMatcher& event_matcher);
     23   virtual ~PlatformEventWaiter();
     24 
     25   // PlatformEventObserver:
     26   virtual void WillProcessEvent(const PlatformEvent& event) OVERRIDE;
     27   virtual void DidProcessEvent(const PlatformEvent& event) OVERRIDE;
     28 
     29   base::Closure success_callback_;
     30   PlatformEventMatcher event_matcher_;
     31 
     32   DISALLOW_COPY_AND_ASSIGN(PlatformEventWaiter);
     33 };
     34 
     35 }  // namespace ui
     36 
     37 #endif  // UI_EVENTS_TEST_PLATFORM_EVENT_WAITER_H_
     38