| Index: chrome/browser/io_thread_browsertest.cc
|
| diff --git a/chrome/browser/io_thread_browsertest.cc b/chrome/browser/io_thread_browsertest.cc
|
| index 11dcd9e9b79642e3138aff7edaab910b43836219..b7c536e11e64a16791092430596c14d6d0872231 100644
|
| --- a/chrome/browser/io_thread_browsertest.cc
|
| +++ b/chrome/browser/io_thread_browsertest.cc
|
| @@ -59,14 +59,14 @@ class TestURLFetcherDelegate : public net::URLFetcherDelegate {
|
| DISALLOW_COPY_AND_ASSIGN(TestURLFetcherDelegate);
|
| };
|
|
|
| -class IOThreadPacTest : public InProcessBrowserTest {
|
| +class IOThreadBrowserTest : public InProcessBrowserTest {
|
| public:
|
| - IOThreadPacTest() {}
|
| - ~IOThreadPacTest() override {}
|
| + IOThreadBrowserTest() {}
|
| + ~IOThreadBrowserTest() override {}
|
|
|
| void SetUp() override {
|
| // Must start listening (And get a port for the proxy) before calling
|
| - // SetUp().
|
| + // SetUp(). Use two phase EmbeddedTestServer setup for proxy tests.
|
| ASSERT_TRUE(embedded_test_server()->InitializeAndListen());
|
| InProcessBrowserTest::SetUp();
|
| }
|
| @@ -84,10 +84,38 @@ class IOThreadPacTest : public InProcessBrowserTest {
|
| }
|
| };
|
|
|
| -class IOThreadPacTestWithHangingRequest : public IOThreadPacTest {
|
| +// Make sure that the system URLRequestContext does not cache responses. Main
|
| +// reason for this test is that caching requires memory, so this guards against
|
| +// accidentally hooking up a cache.
|
| +IN_PROC_BROWSER_TEST_F(IOThreadBrowserTest, NoCache) {
|
| + GURL cacheable_url = embedded_test_server()->GetURL("/cachetime");
|
| + // Request a cacheable resource. Request should succeed.
|
| + TestURLFetcherDelegate fetcher_delegate;
|
| + std::unique_ptr<net::URLFetcher> fetcher = net::URLFetcher::Create(
|
| + cacheable_url, net::URLFetcher::GET, &fetcher_delegate);
|
| + fetcher->SetRequestContext(
|
| + g_browser_process->io_thread()->system_url_request_context_getter());
|
| + fetcher->Start();
|
| + fetcher_delegate.WaitForCompletion();
|
| + EXPECT_EQ(200, fetcher->GetResponseCode());
|
| +
|
| + // Shut down server and re-request resource. Request should fail.
|
| + TestURLFetcherDelegate failed_fetcher_delegate;
|
| + EXPECT_TRUE(embedded_test_server()->ShutdownAndWaitUntilComplete());
|
| + fetcher = net::URLFetcher::Create(cacheable_url, net::URLFetcher::GET,
|
| + &failed_fetcher_delegate);
|
| + fetcher->SetRequestContext(
|
| + g_browser_process->io_thread()->system_url_request_context_getter());
|
| + fetcher->Start();
|
| + failed_fetcher_delegate.WaitForCompletion();
|
| + EXPECT_FALSE(fetcher->GetStatus().is_success());
|
| + EXPECT_EQ(net::ERR_CONNECTION_REFUSED, fetcher->GetStatus().error());
|
| +}
|
| +
|
| +class IOThreadBrowserTestWithHangingPacRequest : public IOThreadBrowserTest {
|
| public:
|
| - IOThreadPacTestWithHangingRequest() {}
|
| - ~IOThreadPacTestWithHangingRequest() override {}
|
| + IOThreadBrowserTestWithHangingPacRequest() {}
|
| + ~IOThreadBrowserTestWithHangingPacRequest() override {}
|
|
|
| void SetUpOnMainThread() override {
|
| // This must be created after the main message loop has been set up.
|
| @@ -99,7 +127,7 @@ class IOThreadPacTestWithHangingRequest : public IOThreadPacTest {
|
|
|
| embedded_test_server()->SetConnectionListener(connection_listener_.get());
|
|
|
| - IOThreadPacTest::SetUpOnMainThread();
|
| + IOThreadBrowserTest::SetUpOnMainThread();
|
| }
|
|
|
| void SetUpCommandLine(base::CommandLine* command_line) override {
|
| @@ -114,7 +142,7 @@ class IOThreadPacTestWithHangingRequest : public IOThreadPacTest {
|
|
|
| // Make sure that the SystemURLRequestContext is shut down correctly when
|
| // there's an in-progress PAC script fetch.
|
| -IN_PROC_BROWSER_TEST_F(IOThreadPacTestWithHangingRequest, Shutdown) {
|
| +IN_PROC_BROWSER_TEST_F(IOThreadBrowserTestWithHangingPacRequest, Shutdown) {
|
| // Request that should hang while trying to request the PAC script.
|
| // Enough requests are created on startup that this probably isn't needed, but
|
| // best to be safe.
|
| @@ -128,11 +156,13 @@ IN_PROC_BROWSER_TEST_F(IOThreadPacTestWithHangingRequest, Shutdown) {
|
| connection_listener_->WaitForConnections();
|
| }
|
|
|
| -class IOThreadPacTestWithFileURL : public IOThreadPacTest {
|
| +class IOThreadBrowserTestWithPacFileURL : public IOThreadBrowserTest {
|
| public:
|
| - IOThreadPacTestWithFileURL() { EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); }
|
| + IOThreadBrowserTestWithPacFileURL() {
|
| + EXPECT_TRUE(temp_dir_.CreateUniqueTempDir());
|
| + }
|
|
|
| - ~IOThreadPacTestWithFileURL() override {}
|
| + ~IOThreadBrowserTestWithPacFileURL() override {}
|
|
|
| void SetUpCommandLine(base::CommandLine* command_line) override {
|
| base::FilePath pac_file_path;
|
| @@ -158,7 +188,7 @@ class IOThreadPacTestWithFileURL : public IOThreadPacTest {
|
|
|
| // Make sure the system URLRequestContext can hadle fetching PAC scripts from
|
| // file URLs.
|
| -IN_PROC_BROWSER_TEST_F(IOThreadPacTestWithFileURL, FilePac) {
|
| +IN_PROC_BROWSER_TEST_F(IOThreadBrowserTestWithPacFileURL, FilePac) {
|
| TestURLFetcherDelegate fetcher_delegate;
|
| std::unique_ptr<net::URLFetcher> fetcher =
|
| net::URLFetcher::Create(GURL("http://foo:12345/echoheader?Foo"),
|
|
|