diff options
Diffstat (limited to 'net/proxy/proxy_script_fetcher_unittest.cc')
-rw-r--r-- | net/proxy/proxy_script_fetcher_unittest.cc | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/net/proxy/proxy_script_fetcher_unittest.cc b/net/proxy/proxy_script_fetcher_unittest.cc index 7d0cb83..3614cfe 100644 --- a/net/proxy/proxy_script_fetcher_unittest.cc +++ b/net/proxy/proxy_script_fetcher_unittest.cc @@ -8,6 +8,8 @@ #include "base/compiler_specific.h" #include "base/path_service.h" #include "net/base/net_util.h" +#include "net/disk_cache/disk_cache.h" +#include "net/http/http_cache.h" #include "net/url_request/url_request_unittest.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" @@ -29,8 +31,10 @@ class RequestContext : public URLRequestContext { RequestContext() { net::ProxyConfig no_proxy; proxy_service_ = net::ProxyService::CreateFixed(no_proxy); - http_transaction_factory_ = net::HttpNetworkLayer::CreateFactory( - proxy_service_); + + http_transaction_factory_ = + new net::HttpCache(net::HttpNetworkLayer::CreateFactory(proxy_service_), + disk_cache::CreateInMemoryCacheBackend(0)); } ~RequestContext() { delete http_transaction_factory_; @@ -240,6 +244,30 @@ TEST_F(ProxyScriptFetcherTest, ContentDisposition) { EXPECT_EQ("-downloadable.pac-\n", result.bytes); } +TEST_F(ProxyScriptFetcherTest, NoCache) { + scoped_refptr<HTTPTestServer> server = + HTTPTestServer::CreateServer(kDocRoot, NULL); + ASSERT_TRUE(NULL != server.get()); + SynchFetcher pac_fetcher; + + // Fetch a PAC script whose HTTP headers make it cacheable for 1 hour. + GURL url = server->TestServerPage("files/cacheable_1hr.pac"); + FetchResult result = pac_fetcher.Fetch(url); + EXPECT_EQ(net::OK, result.code); + EXPECT_EQ("-cacheable_1hr.pac-\n", result.bytes); + + // Now kill the HTTP server. + server->SendQuit(); + EXPECT_TRUE(server->WaitToFinish(20000)); + server = NULL; + + // Try to fetch the file again -- if should fail, since the server is not + // running anymore. (If it were instead being loaded from cache, we would + // get a success. + result = pac_fetcher.Fetch(url); + EXPECT_EQ(net::ERR_CONNECTION_REFUSED, result.code); +} + TEST_F(ProxyScriptFetcherTest, TooLarge) { scoped_refptr<HTTPTestServer> server = HTTPTestServer::CreateServer(kDocRoot, NULL); |