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

Unified Diff: chrome/browser/devtools/devtools_network_controller_unittest.cc

Issue 342473004: DevTools: make network conditions emulation scoped (browser) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed nits Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/devtools/devtools_network_controller_unittest.cc
diff --git a/chrome/browser/devtools/devtools_network_controller_unittest.cc b/chrome/browser/devtools/devtools_network_controller_unittest.cc
index 708b9e15be7141de6f6317897d124b3331ab7f01..99827449ff5c90c4abba4e7c6f494ac25e8f3e61 100644
--- a/chrome/browser/devtools/devtools_network_controller_unittest.cc
+++ b/chrome/browser/devtools/devtools_network_controller_unittest.cc
@@ -17,9 +17,8 @@
namespace test {
-const char kHttpDotCom[] = "http://dot.com";
-const char kHttpDotOrg[] = "http://dot.org";
-const char kCom[] = "com";
+const char kClientId[] = "42";
+const char kAnotherClientId[] = "24";
class TestCallback {
public:
@@ -44,7 +43,9 @@ class DevToolsNetworkControllerHelper {
mock_transaction_(kSimpleGET_Transaction),
buffer_(new net::IOBuffer(64)) {
mock_transaction_.test_mode = TEST_MODE_SYNC_NET_START;
- mock_transaction_.url = kHttpDotCom;
+ mock_transaction_.url = "http://dot.com";
+ mock_transaction_.request_headers =
+ "X-DevTools-Emulate-Network-Conditions-Client-Id: 42\r\n";
AddMockTransaction(&mock_transaction_);
scoped_ptr<net::HttpTransaction> network_transaction;
@@ -60,13 +61,11 @@ class DevToolsNetworkControllerHelper {
return request_.get();
}
- void SetNetworkState(bool offline) {
- std::vector<std::string> domains;
- domains.push_back(kCom);
+ void SetNetworkState(const std::string id, bool offline) {
scoped_refptr<DevToolsNetworkConditions> conditions;
if (offline)
- conditions = new DevToolsNetworkConditions(domains, 0.0);
- controller_.SetNetworkStateOnIO(conditions);
+ conditions = new DevToolsNetworkConditions(0, 0, 0);
+ controller_.SetNetworkStateOnIO(id, conditions);
}
int Start() {
@@ -102,24 +101,44 @@ class DevToolsNetworkControllerHelper {
TEST(DevToolsNetworkControllerTest, SingleDisableEnable) {
DevToolsNetworkControllerHelper helper;
DevToolsNetworkController* controller = helper.controller();
- net::HttpRequestInfo* request = helper.GetRequest();
+ helper.Start();
- EXPECT_FALSE(controller->ShouldFail(request));
- helper.SetNetworkState(true);
- EXPECT_TRUE(controller->ShouldFail(request));
- helper.SetNetworkState(false);
- EXPECT_FALSE(controller->ShouldFail(request));
+ EXPECT_FALSE(controller->ShouldFail(helper.transaction()));
+ helper.SetNetworkState(kClientId, true);
+ EXPECT_TRUE(controller->ShouldFail(helper.transaction()));
+ helper.SetNetworkState(kClientId, false);
+ EXPECT_FALSE(controller->ShouldFail(helper.transaction()));
+
+ base::RunLoop().RunUntilIdle();
+}
+
+TEST(DevToolsNetworkControllerTest, RealmIsolation) {
+ DevToolsNetworkControllerHelper helper;
+ DevToolsNetworkController* controller = helper.controller();
+ helper.Start();
+
+ EXPECT_FALSE(controller->ShouldFail(helper.transaction()));
+ helper.SetNetworkState(kAnotherClientId, true);
+ EXPECT_FALSE(controller->ShouldFail(helper.transaction()));
+ helper.SetNetworkState(kClientId, true);
+ EXPECT_TRUE(controller->ShouldFail(helper.transaction()));
+
+ helper.SetNetworkState(kAnotherClientId, false);
+ helper.SetNetworkState(kClientId, false);
+ base::RunLoop().RunUntilIdle();
}
TEST(DevToolsNetworkControllerTest, FailOnStart) {
DevToolsNetworkControllerHelper helper;
- helper.SetNetworkState(true);
+ helper.SetNetworkState(kClientId, true);
int rv = helper.Start();
EXPECT_EQ(rv, net::ERR_INTERNET_DISCONNECTED);
base::RunLoop().RunUntilIdle();
EXPECT_EQ(helper.callback()->run_count(), 0);
+
+ helper.SetNetworkState(kClientId, false);
}
TEST(DevToolsNetworkControllerTest, FailRunningTransaction) {
@@ -134,7 +153,7 @@ TEST(DevToolsNetworkControllerTest, FailRunningTransaction) {
EXPECT_EQ(rv, net::ERR_IO_PENDING);
EXPECT_EQ(callback->run_count(), 0);
- helper.SetNetworkState(true);
+ helper.SetNetworkState(kClientId, true);
EXPECT_EQ(callback->run_count(), 1);
EXPECT_EQ(callback->value(), net::ERR_INTERNET_DISCONNECTED);
@@ -145,9 +164,11 @@ TEST(DevToolsNetworkControllerTest, FailRunningTransaction) {
EXPECT_EQ(callback->run_count(), 1);
// Check that transaction in not failed second time.
- helper.SetNetworkState(false);
- helper.SetNetworkState(true);
+ helper.SetNetworkState(kClientId, false);
+ helper.SetNetworkState(kClientId, true);
EXPECT_EQ(callback->run_count(), 1);
+
+ helper.SetNetworkState(kClientId, false);
}
TEST(DevToolsNetworkControllerTest, ReadAfterFail) {
@@ -157,7 +178,7 @@ TEST(DevToolsNetworkControllerTest, ReadAfterFail) {
EXPECT_EQ(rv, net::OK);
EXPECT_TRUE(helper.transaction()->request());
- helper.SetNetworkState(true);
+ helper.SetNetworkState(kClientId, true);
EXPECT_TRUE(helper.transaction()->failed());
scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(64));
@@ -167,29 +188,22 @@ TEST(DevToolsNetworkControllerTest, ReadAfterFail) {
// Check that callback is never invoked.
base::RunLoop().RunUntilIdle();
EXPECT_EQ(helper.callback()->run_count(), 0);
+
+ helper.SetNetworkState(kClientId, false);
}
TEST(DevToolsNetworkControllerTest, AllowsDevToolsRequests) {
DevToolsNetworkControllerHelper helper;
helper.mock_transaction()->request_headers =
+ "X-DevTools-Emulate-Network-Conditions-Client-Id: 42\r\n"
"X-DevTools-Request-Initiator: frontend\r\n";
DevToolsNetworkController* controller = helper.controller();
- net::HttpRequestInfo* request = helper.GetRequest();
- EXPECT_FALSE(controller->ShouldFail(request));
- helper.SetNetworkState(true);
- EXPECT_FALSE(controller->ShouldFail(request));
-}
-
-TEST(DevToolsNetworkControllerTest, AllowsNotMatchingRequests) {
- DevToolsNetworkControllerHelper helper;
- helper.mock_transaction()->url = kHttpDotOrg;
- DevToolsNetworkController* controller = helper.controller();
- net::HttpRequestInfo* request = helper.GetRequest();
+ EXPECT_FALSE(controller->ShouldFail(helper.transaction()));
+ helper.SetNetworkState(kClientId, true);
+ EXPECT_FALSE(controller->ShouldFail(helper.transaction()));
- EXPECT_FALSE(controller->ShouldFail(request));
- helper.SetNetworkState(true);
- EXPECT_FALSE(controller->ShouldFail(request));
+ helper.SetNetworkState(kClientId, false);
}
} // namespace test

Powered by Google App Engine
This is Rietveld 408576698