blob: 7bd5e5ce62378802bc8f3c1b1989ed2db93e34be [file] [log] [blame]
Ben Chanbc49ac72012-04-10 19:59:45 -07001// Copyright (c) 2012 The Chromium OS 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 "shill/scope_logger.h"
6
7#include <gmock/gmock.h>
8#include <gtest/gtest.h>
9
10namespace shill {
11
12class ScopeLoggerTest : public testing::Test {
13 protected:
14 ScopeLoggerTest() : logger_(ScopeLogger::GetInstance()) {}
15
16 void TearDown() {
17 logger_->set_verbose_level(0);
18 logger_->DisableAllScopes();
19 }
20
21 ScopeLogger *logger_;
22};
23
24TEST_F(ScopeLoggerTest, DefaultConstruction) {
25 ASSERT_TRUE(logger_ != NULL);
26
27 for (int scope = 0; scope < ScopeLogger::kNumScopes; ++scope) {
28 for (int verbose_level = 0; verbose_level < 5; ++verbose_level) {
29 EXPECT_FALSE(logger_->IsLogEnabled(
30 static_cast<ScopeLogger::Scope>(scope), verbose_level));
31 }
32 }
33}
34
35TEST_F(ScopeLoggerTest, GetAllScopeNames) {
Ben Chan1c722602012-04-17 17:37:35 -070036 EXPECT_EQ("cellular+"
37 "connection+"
38 "crypto+"
39 "dbus+"
40 "device+"
41 "dhclient+"
42 "ethernet+"
43 "inet+"
44 "manager+"
45 "metrics+"
46 "modem+"
47 "portal+"
48 "profile+"
49 "resolv+"
50 "resolvfiles+"
51 "rtnl+"
52 "service+"
53 "storage+"
54 "task+"
55 "vpn+"
Ben Chanbc49ac72012-04-10 19:59:45 -070056 "wifi",
57 logger_->GetAllScopeNames());
58}
59
60TEST_F(ScopeLoggerTest, GetEnabledScopeNames) {
61 EXPECT_EQ("", logger_->GetEnabledScopeNames());
62
63 logger_->SetScopeEnabled(ScopeLogger::kWiFi, true);
64 EXPECT_EQ("wifi", logger_->GetEnabledScopeNames());
65
66 logger_->SetScopeEnabled(ScopeLogger::kService, true);
67 EXPECT_EQ("service+wifi", logger_->GetEnabledScopeNames());
68
69 logger_->SetScopeEnabled(ScopeLogger::kVPN, true);
70 EXPECT_EQ("service+vpn+wifi", logger_->GetEnabledScopeNames());
71
72 logger_->SetScopeEnabled(ScopeLogger::kWiFi, false);
73 EXPECT_EQ("service+vpn", logger_->GetEnabledScopeNames());
74}
75
76TEST_F(ScopeLoggerTest, EnableScopesByName) {
77 logger_->EnableScopesByName("");
78 EXPECT_EQ("", logger_->GetEnabledScopeNames());
79
80 logger_->EnableScopesByName("+wifi");
81 EXPECT_EQ("wifi", logger_->GetEnabledScopeNames());
82
83 logger_->EnableScopesByName("+service");
84 EXPECT_EQ("service+wifi", logger_->GetEnabledScopeNames());
85
86 logger_->EnableScopesByName("+vpn+wifi");
87 EXPECT_EQ("service+vpn+wifi", logger_->GetEnabledScopeNames());
88
89 logger_->EnableScopesByName("-wifi");
90 EXPECT_EQ("service+vpn", logger_->GetEnabledScopeNames());
91
92 logger_->EnableScopesByName("-vpn-service+wifi");
93 EXPECT_EQ("wifi", logger_->GetEnabledScopeNames());
94
95 logger_->EnableScopesByName("+-wifi-");
96 EXPECT_EQ("", logger_->GetEnabledScopeNames());
97
98 logger_->EnableScopesByName("-vpn+vpn+wifi-wifi");
99 EXPECT_EQ("vpn", logger_->GetEnabledScopeNames());
100
101 logger_->EnableScopesByName("wifi");
102 EXPECT_EQ("wifi", logger_->GetEnabledScopeNames());
103
104 logger_->EnableScopesByName("");
105 EXPECT_EQ("", logger_->GetEnabledScopeNames());
106}
107
108TEST_F(ScopeLoggerTest, EnableScopesByNameWithUnknownScopeName) {
109 logger_->EnableScopesByName("foo");
110 EXPECT_EQ("", logger_->GetEnabledScopeNames());
111
112 logger_->EnableScopesByName("wifi+foo+vpn");
113 EXPECT_EQ("vpn+wifi", logger_->GetEnabledScopeNames());
114}
115
116TEST_F(ScopeLoggerTest, SetScopeEnabled) {
117 EXPECT_FALSE(logger_->IsLogEnabled(ScopeLogger::kService, 0));
118
119 logger_->SetScopeEnabled(ScopeLogger::kService, true);
120 EXPECT_TRUE(logger_->IsLogEnabled(ScopeLogger::kService, 0));
121
122 logger_->SetScopeEnabled(ScopeLogger::kService, false);
123 EXPECT_FALSE(logger_->IsLogEnabled(ScopeLogger::kService, 0));
124}
125
126TEST_F(ScopeLoggerTest, SetVerboseLevel) {
127 logger_->SetScopeEnabled(ScopeLogger::kService, true);
128 EXPECT_TRUE(logger_->IsLogEnabled(ScopeLogger::kService, 0));
129 EXPECT_FALSE(logger_->IsLogEnabled(ScopeLogger::kService, 1));
130 EXPECT_FALSE(logger_->IsLogEnabled(ScopeLogger::kService, 2));
131
132 logger_->set_verbose_level(1);
133 EXPECT_TRUE(logger_->IsLogEnabled(ScopeLogger::kService, 0));
134 EXPECT_TRUE(logger_->IsLogEnabled(ScopeLogger::kService, 1));
135 EXPECT_FALSE(logger_->IsLogEnabled(ScopeLogger::kService, 2));
136
137 logger_->set_verbose_level(2);
138 EXPECT_TRUE(logger_->IsLogEnabled(ScopeLogger::kService, 0));
139 EXPECT_TRUE(logger_->IsLogEnabled(ScopeLogger::kService, 1));
140 EXPECT_TRUE(logger_->IsLogEnabled(ScopeLogger::kService, 2));
141}
142
143} // namespace shill