OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/browser/extensions/extension_with_management_policy_apitest.h" | 5 #include "chrome/browser/extensions/extension_with_management_policy_apitest.h" |
6 #include "components/policy/core/browser/browser_policy_connector.h" | 6 #include "components/policy/core/browser/browser_policy_connector.h" |
7 #include "net/dns/mock_host_resolver.h" | 7 #include "net/dns/mock_host_resolver.h" |
8 #include "net/test/embedded_test_server/http_request.h" | 8 #include "net/test/embedded_test_server/http_request.h" |
9 | 9 |
10 ExtensionApiTestWithManagementPolicy::ExtensionApiTestWithManagementPolicy() | 10 ExtensionApiTestWithManagementPolicy::ExtensionApiTestWithManagementPolicy() |
11 : ExtensionApiTest() {} | 11 : ExtensionApiTest() {} |
12 | 12 |
13 ExtensionApiTestWithManagementPolicy::~ExtensionApiTestWithManagementPolicy() {} | 13 ExtensionApiTestWithManagementPolicy::~ExtensionApiTestWithManagementPolicy() {} |
14 | 14 |
15 void ExtensionApiTestWithManagementPolicy::SetUpInProcessBrowserTestFixture() { | 15 void ExtensionApiTestWithManagementPolicy::SetUpInProcessBrowserTestFixture() { |
16 ExtensionApiTest::SetUpInProcessBrowserTestFixture(); | 16 ExtensionApiTest::SetUpInProcessBrowserTestFixture(); |
| 17 embedded_test_server()->RegisterRequestMonitor( |
| 18 base::Bind(&ExtensionApiTestWithManagementPolicy::MonitorRequestHandler, |
| 19 base::Unretained(this))); |
17 EXPECT_CALL(policy_provider_, IsInitializationComplete(testing::_)) | 20 EXPECT_CALL(policy_provider_, IsInitializationComplete(testing::_)) |
18 .WillRepeatedly(testing::Return(true)); | 21 .WillRepeatedly(testing::Return(true)); |
19 policy_provider_.SetAutoRefresh(); | 22 policy_provider_.SetAutoRefresh(); |
20 policy::BrowserPolicyConnector::SetPolicyProviderForTesting( | 23 policy::BrowserPolicyConnector::SetPolicyProviderForTesting( |
21 &policy_provider_); | 24 &policy_provider_); |
22 } | 25 } |
23 | 26 |
24 void ExtensionApiTestWithManagementPolicy::SetUpOnMainThread() { | 27 void ExtensionApiTestWithManagementPolicy::SetUpOnMainThread() { |
25 ExtensionApiTest::SetUpOnMainThread(); | 28 ExtensionApiTest::SetUpOnMainThread(); |
26 host_resolver()->AddRule("*", "127.0.0.1"); | 29 host_resolver()->AddRule("*", "127.0.0.1"); |
27 } | 30 } |
| 31 |
| 32 void ExtensionApiTestWithManagementPolicy::MonitorRequestHandler( |
| 33 const net::test_server::HttpRequest& request) { |
| 34 auto host = request.headers.find("Host"); |
| 35 if (host != request.headers.end()) { |
| 36 ManagementPolicyRequestLog log; |
| 37 size_t delimiter_pos = host->second.find(":"); |
| 38 log.host = host->second.substr(0, delimiter_pos); |
| 39 request_log_.push_back(log); |
| 40 } |
| 41 } |
| 42 |
| 43 bool ExtensionApiTestWithManagementPolicy::BrowsedTo( |
| 44 const std::string& test_host) { |
| 45 return std::find_if(request_log_.begin(), request_log_.end(), |
| 46 [test_host](const ManagementPolicyRequestLog& log) { |
| 47 return log.host == test_host; |
| 48 }) != request_log_.end(); |
| 49 } |
| 50 |
| 51 void ExtensionApiTestWithManagementPolicy::ClearRequestLog() { |
| 52 request_log_.clear(); |
| 53 } |
OLD | NEW |