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 |