Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(530)

Side by Side Diff: chrome/test/chromedriver/logging_unittest.cc

Issue 23566018: [chromedriver] Remove Logger and just use base LOG. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/test/chromedriver/logging.h"
6
7 #include "base/values.h" 5 #include "base/values.h"
8 #include "chrome/test/chromedriver/capabilities.h" 6 #include "chrome/test/chromedriver/capabilities.h"
9 #include "chrome/test/chromedriver/chrome/devtools_event_listener.h" 7 #include "chrome/test/chromedriver/chrome/devtools_event_listener.h"
8 #include "chrome/test/chromedriver/chrome/log.h"
10 #include "chrome/test/chromedriver/chrome/status.h" 9 #include "chrome/test/chromedriver/chrome/status.h"
10 #include "chrome/test/chromedriver/logging.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace { 13 namespace {
14 14
15 const char* const kAllWdLevels[] = { 15 const char* const kAllWdLevels[] = {
16 "ALL", "DEBUG", "INFO", "WARNING", "SEVERE", "OFF" 16 "ALL", "DEBUG", "INFO", "WARNING", "SEVERE", "OFF"
17 }; 17 };
18 18
19 } 19 }
20 20
21 TEST(Logging, NameLevelConversionHappy) { 21 TEST(Logging, NameLevelConversionHappy) {
22 // All names map to a valid enum value. 22 // All names map to a valid enum value.
23 for (int i = 0; static_cast<size_t>(i) < arraysize(kAllWdLevels); ++i) { 23 for (int i = 0; static_cast<size_t>(i) < arraysize(kAllWdLevels); ++i) {
24 WebDriverLog::WebDriverLevel level = 24 Log::Level level = static_cast<Log::Level>(-1);
25 static_cast<WebDriverLog::WebDriverLevel>(-1);
26 EXPECT_TRUE(WebDriverLog::NameToLevel(kAllWdLevels[i], &level)); 25 EXPECT_TRUE(WebDriverLog::NameToLevel(kAllWdLevels[i], &level));
27 EXPECT_LE(WebDriverLog::kWdAll, level); 26 EXPECT_LE(Log::kAll, level);
28 EXPECT_GE(WebDriverLog::kWdOff, level); 27 EXPECT_GE(Log::kOff, level);
29 } 28 }
30 } 29 }
31 30
32 TEST(Logging, NameToLevelErrors) { 31 TEST(Logging, NameToLevelErrors) {
33 WebDriverLog::WebDriverLevel level = 32 Log::Level level = static_cast<Log::Level>(-1);
34 static_cast<WebDriverLog::WebDriverLevel>(-1);
35 EXPECT_FALSE(WebDriverLog::NameToLevel("A", &level)); 33 EXPECT_FALSE(WebDriverLog::NameToLevel("A", &level));
36 EXPECT_FALSE(WebDriverLog::NameToLevel("B", &level)); 34 EXPECT_FALSE(WebDriverLog::NameToLevel("B", &level));
37 EXPECT_FALSE(WebDriverLog::NameToLevel("H", &level)); 35 EXPECT_FALSE(WebDriverLog::NameToLevel("H", &level));
38 EXPECT_FALSE(WebDriverLog::NameToLevel("R", &level)); 36 EXPECT_FALSE(WebDriverLog::NameToLevel("R", &level));
39 EXPECT_FALSE(WebDriverLog::NameToLevel("T", &level)); 37 EXPECT_FALSE(WebDriverLog::NameToLevel("T", &level));
40 EXPECT_FALSE(WebDriverLog::NameToLevel("Z", &level)); 38 EXPECT_FALSE(WebDriverLog::NameToLevel("Z", &level));
41 // The level variable was never modified. 39 // The level variable was never modified.
42 EXPECT_EQ(static_cast<WebDriverLog::WebDriverLevel>(-1), level); 40 EXPECT_EQ(static_cast<Log::Level>(-1), level);
43 } 41 }
44 42
45 namespace { 43 namespace {
46 44
47 void ValidateLogEntry(base::ListValue *entries, 45 void ValidateLogEntry(base::ListValue *entries,
48 int index, 46 int index,
49 const std::string& expected_level, 47 const std::string& expected_level,
50 const std::string& expected_message) { 48 const std::string& expected_message) {
51 const base::DictionaryValue *entry; 49 const base::DictionaryValue *entry;
52 ASSERT_TRUE(entries->GetDictionary(index, &entry)); 50 ASSERT_TRUE(entries->GetDictionary(index, &entry));
53 std::string level; 51 std::string level;
54 EXPECT_TRUE(entry->GetString("level", &level)); 52 EXPECT_TRUE(entry->GetString("level", &level));
55 EXPECT_EQ(expected_level, level); 53 EXPECT_EQ(expected_level, level);
56 std::string message; 54 std::string message;
57 ASSERT_TRUE(entry->GetString("message", &message)); 55 ASSERT_TRUE(entry->GetString("message", &message));
58 EXPECT_EQ(expected_message, message); 56 EXPECT_EQ(expected_message, message);
59 double timestamp = 0; 57 double timestamp = 0;
60 EXPECT_TRUE(entry->GetDouble("timestamp", &timestamp)); 58 EXPECT_TRUE(entry->GetDouble("timestamp", &timestamp));
61 EXPECT_LT(0, timestamp); 59 EXPECT_LT(0, timestamp);
62 } 60 }
63 61
64 } 62 } // namespace
65 63
66 TEST(WebDriverLog, Levels) { 64 TEST(WebDriverLog, Levels) {
67 WebDriverLog log("type", WebDriverLog::kWdInfo); 65 WebDriverLog log("type", Log::kInfo);
68 log.AddEntry(Log::kLog, std::string("info message")); 66 log.AddEntry(Log::kInfo, std::string("info message"));
69 log.AddEntry(Log::kError, "severe message"); 67 log.AddEntry(Log::kError, "severe message");
70 log.AddEntry(Log::kDebug, "debug message"); // Must not log 68 log.AddEntry(Log::kDebug, "debug message"); // Must not log
71 69
72 scoped_ptr<base::ListValue> entries(log.GetAndClearEntries()); 70 scoped_ptr<base::ListValue> entries(log.GetAndClearEntries());
73 71
74 ASSERT_EQ(2u, entries->GetSize()); 72 ASSERT_EQ(2u, entries->GetSize());
75 ValidateLogEntry(entries.get(), 0, "INFO", "info message"); 73 ValidateLogEntry(entries.get(), 0, "INFO", "info message");
76 ValidateLogEntry(entries.get(), 1, "SEVERE", "severe message"); 74 ValidateLogEntry(entries.get(), 1, "SEVERE", "severe message");
77 } 75 }
78 76
79 TEST(WebDriverLog, Off) { 77 TEST(WebDriverLog, Off) {
80 WebDriverLog log("type", WebDriverLog::kWdOff); 78 WebDriverLog log("type", Log::kOff);
81 log.AddEntry(Log::kError, "severe message"); // Must not log 79 log.AddEntry(Log::kError, "severe message"); // Must not log
82 log.AddEntry(Log::kDebug, "debug message"); // Must not log 80 log.AddEntry(Log::kDebug, "debug message"); // Must not log
83 81
84 scoped_ptr<base::ListValue> entries(log.GetAndClearEntries()); 82 scoped_ptr<base::ListValue> entries(log.GetAndClearEntries());
85 83
86 ASSERT_EQ(0u, entries->GetSize()); 84 ASSERT_EQ(0u, entries->GetSize());
87 } 85 }
88 86
89 TEST(WebDriverLog, All) { 87 TEST(WebDriverLog, All) {
90 WebDriverLog log("type", WebDriverLog::kWdAll); 88 WebDriverLog log("type", Log::kAll);
91 log.AddEntry(Log::kError, "severe message"); 89 log.AddEntry(Log::kError, "severe message");
92 log.AddEntry(Log::kDebug, "debug message"); 90 log.AddEntry(Log::kDebug, "debug message");
93 91
94 scoped_ptr<base::ListValue> entries(log.GetAndClearEntries()); 92 scoped_ptr<base::ListValue> entries(log.GetAndClearEntries());
95 93
96 ASSERT_EQ(2u, entries->GetSize()); 94 ASSERT_EQ(2u, entries->GetSize());
97 ValidateLogEntry(entries.get(), 0, "SEVERE", "severe message"); 95 ValidateLogEntry(entries.get(), 0, "SEVERE", "severe message");
98 ValidateLogEntry(entries.get(), 1, "DEBUG", "debug message"); 96 ValidateLogEntry(entries.get(), 1, "DEBUG", "debug message");
99 } 97 }
100 98
101 TEST(Logging, CreatePerformanceLog) { 99 TEST(Logging, CreatePerformanceLog) {
102 Capabilities capabilities; 100 Capabilities capabilities;
103 capabilities.logging_prefs.reset(new base::DictionaryValue()); 101 capabilities.logging_prefs["performance"] = Log::kInfo;
104 capabilities.logging_prefs->SetString("performance", "INFO"); 102 capabilities.logging_prefs["browser"] = Log::kInfo;
105 103
106 ScopedVector<DevToolsEventListener> listeners; 104 ScopedVector<DevToolsEventListener> listeners;
107 ScopedVector<WebDriverLog> logs; 105 ScopedVector<WebDriverLog> logs;
108 Status status = CreateLogs(capabilities, &logs, &listeners); 106 scoped_ptr<WebDriverLog> driver_log;
107 Status status = CreateLogs(capabilities, &logs, &driver_log, &listeners);
109 ASSERT_TRUE(status.IsOk()); 108 ASSERT_TRUE(status.IsOk());
110 ASSERT_EQ(2u, logs.size()); 109 ASSERT_EQ(2u, logs.size());
111 ASSERT_EQ(2u, listeners.size()); 110 ASSERT_EQ(2u, listeners.size());
112 ASSERT_EQ("performance", logs[0]->GetType()); 111 ASSERT_EQ("performance", logs[0]->type());
113 ASSERT_EQ("browser", logs[1]->GetType()); // Always created. 112 ASSERT_EQ("browser", logs[1]->type());
114 } 113 ASSERT_EQ("driver", driver_log->type());
115
116 TEST(Logging, CreateBrowserLogOff) {
117 Capabilities capabilities;
118 capabilities.logging_prefs.reset(new base::DictionaryValue());
119 capabilities.logging_prefs->SetString("browser", "OFF");
120
121 ScopedVector<DevToolsEventListener> listeners;
122 ScopedVector<WebDriverLog> logs;
123 Status status = CreateLogs(capabilities, &logs, &listeners);
124 ASSERT_TRUE(status.IsOk());
125 ASSERT_EQ(1u, logs.size());
126 ASSERT_EQ(0u, listeners.size());
127 ASSERT_EQ("browser", logs[0]->GetType());
128
129 // Verify the created log is "OFF" -- drops all messages.
130 logs[0]->AddEntry(Log::kError, "drop even errors");
131 scoped_ptr<base::ListValue> entries(logs[0]->GetAndClearEntries());
132 ASSERT_EQ(0u, entries->GetSize());
133 } 114 }
134 115
135 TEST(Logging, IgnoreUnknownLogType) { 116 TEST(Logging, IgnoreUnknownLogType) {
136 Capabilities capabilities; 117 Capabilities capabilities;
137 capabilities.logging_prefs.reset(new base::DictionaryValue()); 118 capabilities.logging_prefs["gaga"] = Log::kInfo;
138 capabilities.logging_prefs->SetString("gaga", "INFO");
139 119
140 ScopedVector<DevToolsEventListener> listeners; 120 ScopedVector<DevToolsEventListener> listeners;
141 ScopedVector<WebDriverLog> logs; 121 ScopedVector<WebDriverLog> logs;
142 Status status = CreateLogs(capabilities, &logs, &listeners); 122 scoped_ptr<WebDriverLog> driver_log;
123 Status status = CreateLogs(capabilities, &logs, &driver_log, &listeners);
143 EXPECT_TRUE(status.IsOk()); 124 EXPECT_TRUE(status.IsOk());
144 ASSERT_EQ(1u, logs.size()); 125 ASSERT_EQ(1u, logs.size());
145 ASSERT_EQ(1u, listeners.size()); 126 ASSERT_EQ(0u, listeners.size());
146 ASSERT_EQ("browser", logs[0]->GetType()); 127 ASSERT_EQ("browser", logs[0]->type());
147 } 128 }
148 129
149 TEST(Logging, BrowserLogCreatedWithoutLoggingPrefs) { 130 TEST(Logging, DefaultLogs) {
150 Capabilities capabilities; 131 Capabilities capabilities;
151 132
152 ScopedVector<DevToolsEventListener> listeners; 133 ScopedVector<DevToolsEventListener> listeners;
153 ScopedVector<WebDriverLog> logs; 134 ScopedVector<WebDriverLog> logs;
154 Status status = CreateLogs(capabilities, &logs, &listeners); 135 scoped_ptr<WebDriverLog> driver_log;
136 Status status = CreateLogs(capabilities, &logs, &driver_log, &listeners);
155 EXPECT_TRUE(status.IsOk()); 137 EXPECT_TRUE(status.IsOk());
156 ASSERT_EQ(1u, logs.size()); 138 ASSERT_EQ(1u, logs.size());
157 ASSERT_EQ(1u, listeners.size()); 139 ASSERT_EQ(0u, listeners.size());
158 ASSERT_EQ("browser", logs[0]->GetType()); 140 ASSERT_EQ("driver", driver_log->type());
159 141 ASSERT_EQ(Log::kWarning, driver_log->min_level());
160 // Verify the created "browser" log is "INFO" level.
161 logs[0]->AddEntry(Log::kLog, "info message");
162 logs[0]->AddEntry(Log::kDebug, "drop debug message");
163 scoped_ptr<base::ListValue> entries(logs[0]->GetAndClearEntries());
164 ASSERT_EQ(1u, entries->GetSize());
165 ValidateLogEntry(entries.get(), 0, "INFO", "info message");
166 } 142 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/logging.cc ('k') | chrome/test/chromedriver/server/chromedriver_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698