blob: 4e04bacbe9997972df0df746226841ccea8db755 [file] [log] [blame]
Devlin Croninffbd2fe22018-07-20 17:20:171// 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
5#ifndef EXTENSIONS_BROWSER_TEST_EVENT_ROUTER_OBSERVER_H_
6#define EXTENSIONS_BROWSER_TEST_EVENT_ROUTER_OBSERVER_H_
7
8#include <map>
9#include <memory>
10#include <string>
11
12#include "extensions/browser/event_router.h"
13
14namespace extensions {
15
16class TestEventRouterObserver : public EventRouter::TestObserver {
17 public:
18 using EventMap = std::map<std::string, std::unique_ptr<Event>>;
19
20 explicit TestEventRouterObserver(EventRouter* event_router);
21 ~TestEventRouterObserver() override;
22
23 // Clears all recorded events.
24 void ClearEvents();
25
Devlin Cronin2ff75672018-09-06 01:34:3326 const EventMap& events() const { return events_; }
27 const EventMap& dispatched_events() const { return dispatched_events_; }
Devlin Croninffbd2fe22018-07-20 17:20:1728
29 private:
30 // EventRouter::TestObserver:
31 void OnWillDispatchEvent(const Event& event) override;
Ramin Halavatia4870222018-07-31 05:41:0432 void OnDidDispatchEventToProcess(const Event& event) override;
Devlin Croninffbd2fe22018-07-20 17:20:1733
34 EventMap events_;
Ramin Halavatia4870222018-07-31 05:41:0435 EventMap dispatched_events_;
Devlin Croninffbd2fe22018-07-20 17:20:1736 EventRouter* event_router_;
37
38 DISALLOW_COPY_AND_ASSIGN(TestEventRouterObserver);
39};
40
41} // namespace extensions
42
43#endif // EXTENSIONS_BROWSER_TEST_EVENT_ROUTER_OBSERVER_H_