blob: 1992683551cb2486348ae655e5bca182ff6e3659 [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
26 const EventMap& events() { return events_; }
27
28 private:
29 // EventRouter::TestObserver:
30 void OnWillDispatchEvent(const Event& event) override;
31
32 EventMap events_;
33 EventRouter* event_router_;
34
35 DISALLOW_COPY_AND_ASSIGN(TestEventRouterObserver);
36};
37
38} // namespace extensions
39
40#endif // EXTENSIONS_BROWSER_TEST_EVENT_ROUTER_OBSERVER_H_