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

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

Issue 883083002: [chromedriver] Add Network Conditions Override Manager and tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add a filtered-out offline test Created 5 years, 9 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
(Empty)
1 // Copyright (c) 2015 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 "base/values.h"
6 #include "chrome/test/chromedriver/chrome/network_conditions.h"
7 #include "chrome/test/chromedriver/chrome/network_conditions_override_manager.h"
8 #include "chrome/test/chromedriver/chrome/recorder_devtools_client.h"
9 #include "chrome/test/chromedriver/chrome/status.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace {
13
14 void AssertNetworkConditionsCommand(
15 const Command& command,
16 const NetworkConditions& network_conditions) {
17 ASSERT_EQ("Network.emulateNetworkConditions", command.method);
18 bool offline;
19 double latency, download_throughput, upload_throughput;
20 ASSERT_TRUE(command.params.GetBoolean("offline", &offline));
21 ASSERT_TRUE(command.params.GetDouble("latency", &latency));
22 ASSERT_TRUE(command.params.GetDouble("downloadThroughput",
23 &download_throughput));
24 ASSERT_TRUE(command.params.GetDouble("uploadThroughput",
25 &upload_throughput));
26 ASSERT_EQ(network_conditions.offline, offline);
27 ASSERT_EQ(network_conditions.latency, latency);
28 ASSERT_EQ(network_conditions.download_throughput, download_throughput);
29 ASSERT_EQ(network_conditions.upload_throughput, upload_throughput);
30 }
31
32 } // namespace
33
34 TEST(NetworkConditionsOverrideManager, OverrideSendsCommand) {
35 RecorderDevToolsClient client;
36 NetworkConditionsOverrideManager manager(&client);
37 NetworkConditions network_conditions = {false, 100, 750*1024, 750*1024};
38 manager.OverrideNetworkConditions(network_conditions);
39 ASSERT_EQ(3u, client.commands_.size());
40 ASSERT_NO_FATAL_FAILURE(
41 AssertNetworkConditionsCommand(client.commands_[2], network_conditions));
42
43 network_conditions.latency = 200;
44 manager.OverrideNetworkConditions(network_conditions);
45 ASSERT_EQ(6u, client.commands_.size());
46 ASSERT_NO_FATAL_FAILURE(
47 AssertNetworkConditionsCommand(client.commands_[5], network_conditions));
48 }
49
50 TEST(NetworkConditionsOverrideManager, SendsCommandOnConnect) {
51 RecorderDevToolsClient client;
52 NetworkConditionsOverrideManager manager(&client);
53 ASSERT_EQ(0u, client.commands_.size());
54 ASSERT_EQ(kOk, manager.OnConnected(&client).code());
55
56 NetworkConditions network_conditions = {false, 100, 750*1024, 750*1024};
57 manager.OverrideNetworkConditions(network_conditions);
58 ASSERT_EQ(3u, client.commands_.size());
59 ASSERT_EQ(kOk, manager.OnConnected(&client).code());
60 ASSERT_EQ(6u, client.commands_.size());
61 ASSERT_NO_FATAL_FAILURE(
62 AssertNetworkConditionsCommand(client.commands_[5], network_conditions));
63 }
64
65 TEST(NetworkConditionsOverrideManager, SendsCommandOnNavigation) {
66 RecorderDevToolsClient client;
67 NetworkConditionsOverrideManager manager(&client);
68 base::DictionaryValue main_frame_params;
69 ASSERT_EQ(kOk,
70 manager.OnEvent(&client, "Page.frameNavigated", main_frame_params)
71 .code());
72 ASSERT_EQ(0u, client.commands_.size());
73
74 NetworkConditions network_conditions = {false, 100, 750*1024, 750*1024};
75 manager.OverrideNetworkConditions(network_conditions);
76 ASSERT_EQ(3u, client.commands_.size());
77 ASSERT_EQ(kOk,
78 manager.OnEvent(&client, "Page.frameNavigated", main_frame_params)
79 .code());
80 ASSERT_EQ(6u, client.commands_.size());
81 ASSERT_NO_FATAL_FAILURE(
82 AssertNetworkConditionsCommand(client.commands_[2], network_conditions));
83
84 base::DictionaryValue sub_frame_params;
85 sub_frame_params.SetString("frame.parentId", "id");
86 ASSERT_EQ(
87 kOk,
88 manager.OnEvent(&client, "Page.frameNavigated", sub_frame_params).code());
89 ASSERT_EQ(6u, client.commands_.size());
90 ASSERT_NO_FATAL_FAILURE(
91 AssertNetworkConditionsCommand(client.commands_[5], network_conditions));
92 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698