blob: 8e878766c108fd6a50ef0752d28e5d084ed69478 [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) {
36 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,"
56 "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