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

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

Issue 454133003: [ChromeDriver] Implementing tracing support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing import ordering Created 6 years, 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/performance_logger.h" 5 #include "chrome/test/chromedriver/performance_logger.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/memory/scoped_vector.h" 10 #include "base/memory/scoped_vector.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "chrome/test/chromedriver/chrome/log.h" 13 #include "chrome/test/chromedriver/chrome/log.h"
14 #include "chrome/test/chromedriver/chrome/status.h" 14 #include "chrome/test/chromedriver/chrome/status.h"
15 #include "chrome/test/chromedriver/chrome/stub_devtools_client.h" 15 #include "chrome/test/chromedriver/chrome/stub_devtools_client.h"
16 #include "chrome/test/chromedriver/session.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 namespace { 19 namespace {
19 20
20 class FakeDevToolsClient : public StubDevToolsClient { 21 class FakeDevToolsClient : public StubDevToolsClient {
21 public: 22 public:
22 explicit FakeDevToolsClient(const std::string& id) 23 explicit FakeDevToolsClient(const std::string& id)
23 : id_(id), listener_(NULL) {} 24 : id_(id), listener_(NULL) {}
24 virtual ~FakeDevToolsClient() {} 25 virtual ~FakeDevToolsClient() {}
25 26
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 EXPECT_EQ("Page.enable", client.PopSentCommand()); 143 EXPECT_EQ("Page.enable", client.PopSentCommand());
143 EXPECT_EQ("Timeline.start", client.PopSentCommand()); 144 EXPECT_EQ("Timeline.start", client.PopSentCommand());
144 EXPECT_TRUE(client.PopSentCommand().empty()); 145 EXPECT_TRUE(client.PopSentCommand().empty());
145 } 146 }
146 147
147 } // namespace 148 } // namespace
148 149
149 TEST(PerformanceLogger, OneWebView) { 150 TEST(PerformanceLogger, OneWebView) {
150 FakeDevToolsClient client("webview-1"); 151 FakeDevToolsClient client("webview-1");
151 FakeLog log; 152 FakeLog log;
152 PerformanceLogger logger(&log); 153 Session session("test");
154 PerformanceLogger logger(&log, &session);
153 155
154 client.AddListener(&logger); 156 client.AddListener(&logger);
155 logger.OnConnected(&client); 157 logger.OnConnected(&client);
156 ExpectEnableDomains(client); 158 ExpectEnableDomains(client);
157 ASSERT_EQ(kOk, client.TriggerEvent("Network.gaga").code()); 159 ASSERT_EQ(kOk, client.TriggerEvent("Network.gaga").code());
158 ASSERT_EQ(kOk, client.TriggerEvent("Page.ulala").code()); 160 ASSERT_EQ(kOk, client.TriggerEvent("Page.ulala").code());
159 // Ignore -- different domain. 161 // Ignore -- different domain.
160 ASSERT_EQ(kOk, client.TriggerEvent("Console.bad").code()); 162 ASSERT_EQ(kOk, client.TriggerEvent("Console.bad").code());
161 163
162 ASSERT_EQ(2u, log.GetEntries().size()); 164 ASSERT_EQ(2u, log.GetEntries().size());
163 ValidateLogEntry(log.GetEntries()[0], "webview-1", "Network.gaga"); 165 ValidateLogEntry(log.GetEntries()[0], "webview-1", "Network.gaga");
164 ValidateLogEntry(log.GetEntries()[1], "webview-1", "Page.ulala"); 166 ValidateLogEntry(log.GetEntries()[1], "webview-1", "Page.ulala");
165 } 167 }
166 168
167 TEST(PerformanceLogger, TwoWebViews) { 169 TEST(PerformanceLogger, TwoWebViews) {
168 FakeDevToolsClient client1("webview-1"); 170 FakeDevToolsClient client1("webview-1");
169 FakeDevToolsClient client2("webview-2"); 171 FakeDevToolsClient client2("webview-2");
170 FakeLog log; 172 FakeLog log;
171 PerformanceLogger logger(&log); 173 Session session("test");
174 PerformanceLogger logger(&log, &session);
172 175
173 client1.AddListener(&logger); 176 client1.AddListener(&logger);
174 client2.AddListener(&logger); 177 client2.AddListener(&logger);
175 logger.OnConnected(&client1); 178 logger.OnConnected(&client1);
176 logger.OnConnected(&client2); 179 logger.OnConnected(&client2);
177 ExpectEnableDomains(client1); 180 ExpectEnableDomains(client1);
178 ExpectEnableDomains(client2); 181 ExpectEnableDomains(client2);
179 // OnConnected sends the enable command only to that client, not others. 182 // OnConnected sends the enable command only to that client, not others.
180 client1.ConnectIfNecessary(); 183 client1.ConnectIfNecessary();
181 ExpectEnableDomains(client1); 184 ExpectEnableDomains(client1);
182 EXPECT_TRUE(client2.PopSentCommand().empty()); 185 EXPECT_TRUE(client2.PopSentCommand().empty());
183 186
184 ASSERT_EQ(kOk, client1.TriggerEvent("Page.gaga1").code()); 187 ASSERT_EQ(kOk, client1.TriggerEvent("Page.gaga1").code());
185 ASSERT_EQ(kOk, client2.TriggerEvent("Timeline.gaga2").code()); 188 ASSERT_EQ(kOk, client2.TriggerEvent("Timeline.gaga2").code());
186 189
187 ASSERT_EQ(2u, log.GetEntries().size()); 190 ASSERT_EQ(2u, log.GetEntries().size());
188 ValidateLogEntry(log.GetEntries()[0], "webview-1", "Page.gaga1"); 191 ValidateLogEntry(log.GetEntries()[0], "webview-1", "Page.gaga1");
189 ValidateLogEntry(log.GetEntries()[1], "webview-2", "Timeline.gaga2"); 192 ValidateLogEntry(log.GetEntries()[1], "webview-2", "Timeline.gaga2");
190 } 193 }
191 194
192 TEST(PerformanceLogger, PerfLoggingPrefs) { 195 TEST(PerformanceLogger, PerfLoggingPrefs) {
193 FakeDevToolsClient client("webview-1"); 196 FakeDevToolsClient client("webview-1");
194 FakeLog log; 197 FakeLog log;
198 Session session("test");
195 PerfLoggingPrefs prefs; 199 PerfLoggingPrefs prefs;
196 ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kDefaultEnabled, 200 ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kDefaultEnabled,
197 prefs.network); 201 prefs.network);
198 prefs.network = PerfLoggingPrefs::InspectorDomainStatus::kExplicitlyDisabled; 202 prefs.network = PerfLoggingPrefs::InspectorDomainStatus::kExplicitlyDisabled;
199 // Trace categories should be ignored until tracing support is implemented.
200 prefs.trace_categories = "benchmark,webkit.console"; 203 prefs.trace_categories = "benchmark,webkit.console";
201 PerformanceLogger logger(&log, prefs); 204 PerformanceLogger logger(&log, &session, prefs);
202 205
203 client.AddListener(&logger); 206 client.AddListener(&logger);
204 logger.OnConnected(&client); 207 logger.OnConnected(&client);
205 EXPECT_EQ("Page.enable", client.PopSentCommand()); 208 EXPECT_EQ("Page.enable", client.PopSentCommand());
206 // Trace categories ignored, so Timeline shouldn't be implicitly disabled. 209 // No Timeline.enable command since specifying trace categories implicitly
207 EXPECT_EQ("Timeline.start", client.PopSentCommand()); 210 // disables Timeline feed.
208 EXPECT_TRUE(client.PopSentCommand().empty()); 211 EXPECT_TRUE(client.PopSentCommand().empty());
209 } 212 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698