blob: 7bf58e113c1e938a303e8c32e0a8a50da382d381 [file] [log] [blame]
Michael Giuffrida2f2cf6c2017-09-06 19:23:301// Copyright 2017 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#include "extensions/browser/test_event_router.h"
6#include "base/logging.h"
7#include "content/public/browser/browser_context.h"
8#include "extensions/browser/extension_prefs.h"
9
10namespace extensions {
11
12TestEventRouter::EventObserver::~EventObserver() {}
13
14void TestEventRouter::EventObserver::OnDispatchEventToExtension(
15 const std::string& extension_id,
16 const Event& event) {}
17
18void TestEventRouter::EventObserver::OnBroadcastEvent(const Event& event) {}
19
20TestEventRouter::TestEventRouter(content::BrowserContext* context)
21 : EventRouter(context, ExtensionPrefs::Get(context)) {}
22
23TestEventRouter::~TestEventRouter() {}
24
25int TestEventRouter::GetEventCount(std::string event_name) const {
26 if (seen_events_.count(event_name) == 0)
27 return 0;
28 return seen_events_.find(event_name)->second;
29}
30
31void TestEventRouter::AddEventObserver(EventObserver* obs) {
32 observers_.AddObserver(obs);
33}
34
35void TestEventRouter::RemoveEventObserver(EventObserver* obs) {
36 observers_.RemoveObserver(obs);
37}
38
39void TestEventRouter::BroadcastEvent(std::unique_ptr<Event> event) {
40 IncrementEventCount(event->event_name);
41
42 for (auto& observer : observers_)
43 observer.OnBroadcastEvent(*event);
44}
45
46void TestEventRouter::DispatchEventToExtension(const std::string& extension_id,
47 std::unique_ptr<Event> event) {
48 if (!expected_extension_id_.empty())
49 DCHECK_EQ(expected_extension_id_, extension_id);
50
51 IncrementEventCount(event->event_name);
52
53 for (auto& observer : observers_)
54 observer.OnDispatchEventToExtension(extension_id, *event);
55}
56
57void TestEventRouter::IncrementEventCount(const std::string& event_name) {
58 if (seen_events_.count(event_name) == 0)
59 seen_events_[event_name] = 0;
60 seen_events_[event_name]++;
61}
62
63} // namespace extensions