diff options
24 files changed, 344 insertions, 196 deletions
diff --git a/chrome/browser/chromeos/contacts/gdata_contacts_service_unittest.cc b/chrome/browser/chromeos/contacts/gdata_contacts_service_unittest.cc index 7103eae..fbf8809 100644 --- a/chrome/browser/chromeos/contacts/gdata_contacts_service_unittest.cc +++ b/chrome/browser/chromeos/contacts/gdata_contacts_service_unittest.cc @@ -167,11 +167,11 @@ class GDataContactsServiceTest : public testing::Test { const net::test_server::HttpRequest& request) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); // Requested url must not contain a query string. - scoped_ptr<net::test_server::HttpResponse> result = + scoped_ptr<net::test_server::BasicHttpResponse> result = google_apis::test_util::CreateHttpResponseFromFile( google_apis::test_util::GetTestFilePath( std::string("chromeos/gdata/contacts") + request.relative_url)); - return result.Pass(); + return result.PassAs<net::test_server::HttpResponse>(); } MessageLoopForUI message_loop_; diff --git a/chrome/browser/chromeos/login/oobe_browsertest.cc b/chrome/browser/chromeos/login/oobe_browsertest.cc index d52a391..3ecab68 100644 --- a/chrome/browser/chromeos/login/oobe_browsertest.cc +++ b/chrome/browser/chromeos/login/oobe_browsertest.cc @@ -175,7 +175,7 @@ class OobeTest : public chromeos::CrosInProcessBrowserTest { GURL url = test_server_->GetURL(request.relative_url); LOG(INFO) << "Http request: " << url.spec(); - scoped_ptr<HttpResponse> http_response(new HttpResponse()); + scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse()); if (url.path() == "/ServiceLogin") { http_response->set_code(net::test_server::SUCCESS); http_response->set_content(service_login_response_); @@ -197,7 +197,7 @@ class OobeTest : public chromeos::CrosInProcessBrowserTest { } else { NOTREACHED() << url.path(); } - return http_response.Pass(); + return http_response.PassAs<HttpResponse>(); } scoped_ptr<TestContentBrowserClient> content_browser_client_; diff --git a/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc b/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc index e24ef5e..36e06cc 100644 --- a/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc +++ b/chrome/browser/extensions/api/streams_private/streams_private_apitest.cc @@ -35,6 +35,7 @@ using content::ResourceController; using content::WebContents; using extensions::Event; using extensions::ExtensionSystem; +using net::test_server::BasicHttpResponse; using net::test_server::HttpRequest; using net::test_server::HttpResponse; using net::test_server::EmbeddedTestServer; @@ -45,14 +46,14 @@ namespace { // Test server's request handler. // Returns response that should be sent by the test server. scoped_ptr<HttpResponse> HandleRequest(const HttpRequest& request) { - scoped_ptr<HttpResponse> response(new HttpResponse()); + scoped_ptr<BasicHttpResponse> response(new BasicHttpResponse()); // For relative path "/doc_path.doc", return success response with MIME type // "application/msword". if (request.relative_url == "/doc_path.doc") { response->set_code(net::test_server::SUCCESS); response->set_content_type("application/msword"); - return response.Pass(); + return response.PassAs<HttpResponse>(); } // For relative path "/test_path_attch.txt", return success response with @@ -64,7 +65,7 @@ scoped_ptr<HttpResponse> HandleRequest(const HttpRequest& request) { response->set_content_type("plain/text"); response->AddCustomHeader("Content-Disposition", "attachment; filename=test_path.txt"); - return response.Pass(); + return response.PassAs<HttpResponse>(); } // For relative path "/test_path_attch.txt", return success response with // MIME type "plain/text" and content "txt content". @@ -72,13 +73,13 @@ scoped_ptr<HttpResponse> HandleRequest(const HttpRequest& request) { response->set_code(net::test_server::SUCCESS); response->set_content("txt content"); response->set_content_type("plain/text"); - return response.Pass(); + return response.PassAs<HttpResponse>(); } // No other requests should be handled in the tests. EXPECT_TRUE(false) << "NOTREACHED!"; response->set_code(net::test_server::NOT_FOUND); - return response.Pass(); + return response.PassAs<HttpResponse>(); } // Tests to verify that resources are correctly intercepted by diff --git a/chrome/browser/google_apis/drive_api_operations_unittest.cc b/chrome/browser/google_apis/drive_api_operations_unittest.cc index 958fe2a..f845d2a 100644 --- a/chrome/browser/google_apis/drive_api_operations_unittest.cc +++ b/chrome/browser/google_apis/drive_api_operations_unittest.cc @@ -155,10 +155,10 @@ class DriveApiOperationsTest : public testing::Test { http_request_ = request; // Return the response with just "204 No Content" status code. - scoped_ptr<net::test_server::HttpResponse> http_response( - new net::test_server::HttpResponse); + scoped_ptr<net::test_server::BasicHttpResponse> http_response( + new net::test_server::BasicHttpResponse); http_response->set_code(net::test_server::NO_CONTENT); - return http_response.Pass(); + return http_response.PassAs<net::test_server::HttpResponse>(); } // Reads the data file of |expected_data_file_path_| and returns its content @@ -176,7 +176,8 @@ class DriveApiOperationsTest : public testing::Test { http_request_ = request; // Return the response from the data file. - return test_util::CreateHttpResponseFromFile(expected_data_file_path_); + return test_util::CreateHttpResponseFromFile( + expected_data_file_path_).PassAs<net::test_server::HttpResponse>(); } // Returns the response based on set expected upload url. @@ -195,8 +196,8 @@ class DriveApiOperationsTest : public testing::Test { http_request_ = request; - scoped_ptr<net::test_server::HttpResponse> response( - new net::test_server::HttpResponse); + scoped_ptr<net::test_server::BasicHttpResponse> response( + new net::test_server::BasicHttpResponse); // Check an ETag. std::map<std::string, std::string>::const_iterator found = @@ -205,7 +206,7 @@ class DriveApiOperationsTest : public testing::Test { found->second != "*" && found->second != kTestETag) { response->set_code(net::test_server::PRECONDITION); - return response.Pass(); + return response.PassAs<net::test_server::HttpResponse>(); } // Check if the X-Upload-Content-Length is present. If yes, store the @@ -221,7 +222,7 @@ class DriveApiOperationsTest : public testing::Test { response->AddCustomHeader( "Location", test_server_.base_url().Resolve(expected_upload_path_).spec()); - return response.Pass(); + return response.PassAs<net::test_server::HttpResponse>(); } scoped_ptr<net::test_server::HttpResponse> HandleResumeUploadRequest( @@ -259,8 +260,8 @@ class DriveApiOperationsTest : public testing::Test { } if (received_bytes_ < content_length_) { - scoped_ptr<net::test_server::HttpResponse> response( - new net::test_server::HttpResponse); + scoped_ptr<net::test_server::BasicHttpResponse> response( + new net::test_server::BasicHttpResponse); // Set RESUME INCOMPLETE (308) status code. response->set_code(net::test_server::RESUME_INCOMPLETE); @@ -272,12 +273,12 @@ class DriveApiOperationsTest : public testing::Test { "Range", "bytes=0-" + base::Int64ToString(received_bytes_ - 1)); } - return response.Pass(); + return response.PassAs<net::test_server::HttpResponse>(); } // All bytes are received. Return the "success" response with the file's // (dummy) metadata. - scoped_ptr<net::test_server::HttpResponse> response = + scoped_ptr<net::test_server::BasicHttpResponse> response = test_util::CreateHttpResponseFromFile( test_util::GetTestFilePath("chromeos/drive/file_entry.json")); @@ -286,7 +287,7 @@ class DriveApiOperationsTest : public testing::Test { response->set_code(net::test_server::CREATED); } - return response.Pass(); + return response.PassAs<net::test_server::HttpResponse>(); } // Returns the response based on set expected content and its type. @@ -302,12 +303,12 @@ class DriveApiOperationsTest : public testing::Test { http_request_ = request; - scoped_ptr<net::test_server::HttpResponse> response( - new net::test_server::HttpResponse); + scoped_ptr<net::test_server::BasicHttpResponse> response( + new net::test_server::BasicHttpResponse); response->set_code(net::test_server::SUCCESS); response->set_content_type(expected_content_type_); response->set_content(expected_content_); - return response.Pass(); + return response.PassAs<net::test_server::HttpResponse>(); } // These are for the current upload file status. diff --git a/chrome/browser/google_apis/gdata_wapi_operations_unittest.cc b/chrome/browser/google_apis/gdata_wapi_operations_unittest.cc index abf2b027..d3ebf54 100644 --- a/chrome/browser/google_apis/gdata_wapi_operations_unittest.cc +++ b/chrome/browser/google_apis/gdata_wapi_operations_unittest.cc @@ -109,8 +109,10 @@ class GDataWapiOperationsTest : public testing::Test { // This is a request for copying a document. // TODO(satorux): we should generate valid JSON data for the newly // copied document but for now, just return "file_entry.json" - return test_util::CreateHttpResponseFromFile( - test_util::GetTestFilePath("chromeos/gdata/file_entry.json")); + scoped_ptr<net::test_server::BasicHttpResponse> result( + test_util::CreateHttpResponseFromFile( + test_util::GetTestFilePath("chromeos/gdata/file_entry.json"))); + return result.PassAs<net::test_server::HttpResponse>(); } if (!test_util::RemovePrefix(absolute_url.path(), @@ -121,22 +123,29 @@ class GDataWapiOperationsTest : public testing::Test { if (remaining_path.empty()) { // Process the default feed. - return test_util::CreateHttpResponseFromFile( - test_util::GetTestFilePath("chromeos/gdata/root_feed.json")); + scoped_ptr<net::test_server::BasicHttpResponse> result( + test_util::CreateHttpResponseFromFile( + test_util::GetTestFilePath("chromeos/gdata/root_feed.json"))); + return result.PassAs<net::test_server::HttpResponse>(); } else { // Process a feed for a single resource ID. const std::string resource_id = net::UnescapeURLComponent( remaining_path.substr(1), net::UnescapeRule::URL_SPECIAL_CHARS); if (resource_id == "file:2_file_resource_id") { - return test_util::CreateHttpResponseFromFile( - test_util::GetTestFilePath("chromeos/gdata/file_entry.json")); + scoped_ptr<net::test_server::BasicHttpResponse> result( + test_util::CreateHttpResponseFromFile( + test_util::GetTestFilePath("chromeos/gdata/file_entry.json"))); + return result.PassAs<net::test_server::HttpResponse>(); } else if (resource_id == "folder:root/contents" && request.method == net::test_server::METHOD_POST) { // This is a request for creating a directory in the root directory. // TODO(satorux): we should generate valid JSON data for the newly // created directory but for now, just return "directory_entry.json" - return test_util::CreateHttpResponseFromFile( - test_util::GetTestFilePath("chromeos/gdata/directory_entry.json")); + scoped_ptr<net::test_server::BasicHttpResponse> result( + test_util::CreateHttpResponseFromFile( + test_util::GetTestFilePath( + "chromeos/gdata/directory_entry.json"))); + return result.PassAs<net::test_server::HttpResponse>(); } else if (resource_id == "folder:root/contents/file:2_file_resource_id" && request.method == net::test_server::METHOD_DELETE) { @@ -144,15 +153,19 @@ class GDataWapiOperationsTest : public testing::Test { // TODO(satorux): Investigate what's returned from the server, and // copy it. For now, just return a random file, as the contents don't // matter. - return test_util::CreateHttpResponseFromFile( - test_util::GetTestFilePath("chromeos/gdata/testfile.txt")); + scoped_ptr<net::test_server::BasicHttpResponse> result( + test_util::CreateHttpResponseFromFile( + test_util::GetTestFilePath("chromeos/gdata/testfile.txt"))); + return result.PassAs<net::test_server::HttpResponse>(); } else if (resource_id == "invalid_resource_id") { // Check if this is an authorization request for an app. // This emulates to return invalid formatted result from the server. if (request.method == net::test_server::METHOD_PUT && request.content.find("<docs:authorizedApp>") != std::string::npos) { - return test_util::CreateHttpResponseFromFile( - test_util::GetTestFilePath("chromeos/gdata/testfile.txt")); + scoped_ptr<net::test_server::BasicHttpResponse> result( + test_util::CreateHttpResponseFromFile( + test_util::GetTestFilePath("chromeos/gdata/testfile.txt"))); + return result.PassAs<net::test_server::HttpResponse>(); } } } @@ -169,7 +182,7 @@ class GDataWapiOperationsTest : public testing::Test { if (absolute_url.path() != "/feeds/metadata/default") return scoped_ptr<net::test_server::HttpResponse>(); - scoped_ptr<net::test_server::HttpResponse> result( + scoped_ptr<net::test_server::BasicHttpResponse> result( test_util::CreateHttpResponseFromFile( test_util::GetTestFilePath( "chromeos/gdata/account_metadata.json"))); @@ -191,7 +204,7 @@ class GDataWapiOperationsTest : public testing::Test { result->set_content(content); } - return result.Pass(); + return result.PassAs<net::test_server::HttpResponse>(); } // Handles a request for creating a session for uploading. @@ -204,8 +217,8 @@ class GDataWapiOperationsTest : public testing::Test { "/feeds/upload/create-session/default/private/full", true)) { // case sensitive // This is an initiating upload URL. - scoped_ptr<net::test_server::HttpResponse> http_response( - new net::test_server::HttpResponse); + scoped_ptr<net::test_server::BasicHttpResponse> http_response( + new net::test_server::BasicHttpResponse); // Check an ETag. std::map<std::string, std::string>::const_iterator found = @@ -214,7 +227,7 @@ class GDataWapiOperationsTest : public testing::Test { found->second != "*" && found->second != kTestETag) { http_response->set_code(net::test_server::PRECONDITION); - return http_response.Pass(); + return http_response.PassAs<net::test_server::HttpResponse>(); } // Check if the X-Upload-Content-Length is present. If yes, store the @@ -237,7 +250,7 @@ class GDataWapiOperationsTest : public testing::Test { return scoped_ptr<net::test_server::HttpResponse>(); } http_response->AddCustomHeader("Location", upload_url.spec()); - return http_response.Pass(); + return http_response.PassAs<net::test_server::HttpResponse>(); } return scoped_ptr<net::test_server::HttpResponse>(); @@ -256,7 +269,7 @@ class GDataWapiOperationsTest : public testing::Test { // TODO(satorux): We should create a correct JSON data for the uploaded // file, but for now, just return file_entry.json. - scoped_ptr<net::test_server::HttpResponse> response = + scoped_ptr<net::test_server::BasicHttpResponse> response = test_util::CreateHttpResponseFromFile( test_util::GetTestFilePath("chromeos/gdata/file_entry.json")); // response.code() is set to SUCCESS. Change it to CREATED if it's a new @@ -299,7 +312,7 @@ class GDataWapiOperationsTest : public testing::Test { if (received_bytes_ < content_length_) response->set_code(net::test_server::RESUME_INCOMPLETE); - return response.Pass(); + return response.PassAs<net::test_server::HttpResponse>(); } MessageLoopForUI message_loop_; diff --git a/chrome/browser/google_apis/test_util.cc b/chrome/browser/google_apis/test_util.cc index f7e5a82..ef91aec 100644 --- a/chrome/browser/google_apis/test_util.cc +++ b/chrome/browser/google_apis/test_util.cc @@ -126,11 +126,11 @@ scoped_ptr<base::Value> LoadJSONFile(const std::string& relative_path) { } // Returns a HttpResponse created from the given file path. -scoped_ptr<net::test_server::HttpResponse> CreateHttpResponseFromFile( +scoped_ptr<net::test_server::BasicHttpResponse> CreateHttpResponseFromFile( const base::FilePath& file_path) { std::string content; if (!file_util::ReadFileToString(file_path, &content)) - return scoped_ptr<net::test_server::HttpResponse>(); + return scoped_ptr<net::test_server::BasicHttpResponse>(); std::string content_type = "text/plain"; if (EndsWith(file_path.AsUTF8Unsafe(), ".json", true /* case sensitive */)) { @@ -139,8 +139,8 @@ scoped_ptr<net::test_server::HttpResponse> CreateHttpResponseFromFile( content_type = "application/atom+xml"; } - scoped_ptr<net::test_server::HttpResponse> http_response( - new net::test_server::HttpResponse); + scoped_ptr<net::test_server::BasicHttpResponse> http_response( + new net::test_server::BasicHttpResponse); http_response->set_code(net::test_server::SUCCESS); http_response->set_content(content); http_response->set_content_type(content_type); @@ -157,7 +157,8 @@ scoped_ptr<net::test_server::HttpResponse> HandleDownloadRequest( std::string remaining_path; if (!RemovePrefix(absolute_url.path(), "/files/", &remaining_path)) return scoped_ptr<net::test_server::HttpResponse>(); - return CreateHttpResponseFromFile(GetTestFilePath(remaining_path)); + return CreateHttpResponseFromFile( + GetTestFilePath(remaining_path)).PassAs<net::test_server::HttpResponse>(); } bool VerifyJsonData(const base::FilePath& expected_json_file_path, diff --git a/chrome/browser/google_apis/test_util.h b/chrome/browser/google_apis/test_util.h index edb635d..8ee5ee7 100644 --- a/chrome/browser/google_apis/test_util.h +++ b/chrome/browser/google_apis/test_util.h @@ -26,8 +26,9 @@ class Value; namespace net { namespace test_server { -struct HttpRequest; +class BasicHttpResponse; class HttpResponse; +struct HttpRequest; } } @@ -89,7 +90,7 @@ bool CreateFileOfSpecifiedSize(const base::FilePath& temp_dir, scoped_ptr<base::Value> LoadJSONFile(const std::string& relative_path); // Returns a HttpResponse created from the given file path. -scoped_ptr<net::test_server::HttpResponse> CreateHttpResponseFromFile( +scoped_ptr<net::test_server::BasicHttpResponse> CreateHttpResponseFromFile( const base::FilePath& file_path); // Handles a request for downloading a file. Reads a file from the test diff --git a/chrome/browser/ui/app_list/search/webstore_provider_browsertest.cc b/chrome/browser/ui/app_list/search/webstore_provider_browsertest.cc index 05ef529..907e609 100644 --- a/chrome/browser/ui/app_list/search/webstore_provider_browsertest.cc +++ b/chrome/browser/ui/app_list/search/webstore_provider_browsertest.cc @@ -21,6 +21,7 @@ #include "net/test/embedded_test_server/http_response.h" using content::BrowserThread; +using net::test_server::BasicHttpResponse; using net::test_server::HttpRequest; using net::test_server::HttpResponse; using net::test_server::EmbeddedTestServer; @@ -93,7 +94,7 @@ class WebstoreProviderTest : public InProcessBrowserTest { private: scoped_ptr<HttpResponse> HandleRequest(const HttpRequest& request) { - scoped_ptr<HttpResponse> response(new HttpResponse); + scoped_ptr<BasicHttpResponse> response(new BasicHttpResponse); if (request.relative_url.find("/jsonsearch?") != std::string::npos) { if (mock_server_response_ == "404") { @@ -106,7 +107,7 @@ class WebstoreProviderTest : public InProcessBrowserTest { } } - return response.Pass(); + return response.PassAs<HttpResponse>(); } void OnSearchResultsFetched() { diff --git a/content/browser/browser_plugin/browser_plugin_host_browsertest.cc b/content/browser/browser_plugin/browser_plugin_host_browsertest.cc index 818aa27..c67be30 100644 --- a/content/browser/browser_plugin/browser_plugin_host_browsertest.cc +++ b/content/browser/browser_plugin/browser_plugin_host_browsertest.cc @@ -29,6 +29,9 @@ #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" #include "net/base/net_util.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "net/test/embedded_test_server/http_response.h" +#include "net/test/embedded_test_server/http_request.h" #include "net/test/spawned_test_server/spawned_test_server.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" #include "webkit/glue/webdropdata.h" @@ -309,8 +312,8 @@ class BrowserPluginHostTest : public ContentBrowserTest { const std::string& guest_url, bool is_guest_data_url, const std::string& embedder_code) { - ASSERT_TRUE(test_server()->Start()); - GURL test_url(test_server()->GetURL(embedder_url)); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); + GURL test_url(embedded_test_server()->GetURL(embedder_url)); NavigateToURL(shell(), test_url); WebContentsImpl* embedder_web_contents = static_cast<WebContentsImpl*>( @@ -326,7 +329,7 @@ class BrowserPluginHostTest : public ContentBrowserTest { ExecuteSyncJSFunction(rvh, embedder_code); if (!is_guest_data_url) { - test_url = test_server()->GetURL(guest_url); + test_url = embedded_test_server()->GetURL(guest_url); ExecuteSyncJSFunction( rvh, base::StringPrintf("SetSrc('%s');", test_url.spec().c_str())); } else { @@ -388,7 +391,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, content::BrowserPluginGuest::set_factory_for_testing( TestShortHangTimeoutGuestFactory::GetInstance()); const char kEmbedderURL[] = - "files/browser_plugin_embedder_guest_unresponsive.html"; + "/browser_plugin_embedder_guest_unresponsive.html"; StartBrowserPluginTest( kEmbedderURL, kHTMLForGuestBusyLoop, true, std::string()); // Wait until the busy loop starts. @@ -444,7 +447,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, NavigateAfterResize) { const gfx::Size nxt_size = gfx::Size(100, 200); const std::string embedder_code = base::StringPrintf( "SetSize(%d, %d);", nxt_size.width(), nxt_size.height()); - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, embedder_code); // Wait for the guest to receive a damage buffer of size 100x200. @@ -453,8 +456,8 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, NavigateAfterResize) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, AdvanceFocus) { - const char kEmbedderURL[] = "files/browser_plugin_focus.html"; - const char* kGuestURL = "files/browser_plugin_focus_child.html"; + const char kEmbedderURL[] = "/browser_plugin_focus.html"; + const char* kGuestURL = "/browser_plugin_focus_child.html"; StartBrowserPluginTest(kEmbedderURL, kGuestURL, false, std::string()); SimulateMouseClick(test_embedder()->web_contents(), 0, @@ -485,7 +488,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, EmbedderChangedAfterSwap) { ASSERT_TRUE(https_server.Start()); // 1. Load an embedder page with one guest in it. - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); // 2. Navigate to a URL in https, so we trigger a RenderViewHost swap. @@ -511,14 +514,14 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, EmbedderChangedAfterSwap) { // therefore the embedder created on first page navigation stays the same in // web_contents. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, EmbedderSameAfterNav) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); WebContentsImpl* embedder_web_contents = test_embedder()->web_contents(); // Navigate to another page in same host and port, so RenderViewHost swap // does not happen and existing embedder doesn't change in web_contents. - GURL test_url_new(test_server()->GetURL( - "files/browser_plugin_title_change.html")); + GURL test_url_new(embedded_test_server()->GetURL( + "/browser_plugin_title_change.html")); const string16 expected_title = ASCIIToUTF16("done"); content::TitleWatcher title_watcher(shell()->web_contents(), expected_title); NavigateToURL(shell(), test_url_new); @@ -536,7 +539,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, EmbedderSameAfterNav) { // This test verifies that hiding the embedder also hides the guest. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, BrowserPluginVisibilityChanged) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); // Hide the Browser Plugin. @@ -550,7 +553,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, BrowserPluginVisibilityChanged) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, EmbedderVisibilityChanged) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); // Hide the embedder. @@ -562,7 +565,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, EmbedderVisibilityChanged) { // This test verifies that calling the reload method reloads the guest. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, ReloadGuest) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); test_guest()->ResetUpdateRectCount(); @@ -576,7 +579,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, ReloadGuest) { // This test verifies that calling the stop method forwards the stop request // to the guest's WebContents. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, StopGuest) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( @@ -588,7 +591,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, StopGuest) { // Verifies that installing/uninstalling touch-event handlers in the guest // plugin correctly updates the touch-event handling state in the embedder. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, AcceptTouchEvents) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest( kEmbedderURL, kHTMLForGuestTouchHandler, true, std::string()); @@ -616,7 +619,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, AcceptTouchEvents) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, Renavigate) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest( kEmbedderURL, GetHTMLForGuestWithTitle("P1"), true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( @@ -712,7 +715,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, Renavigate) { // This tests verifies that reloading the embedder does not crash the browser // and that the guest is reset. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, ReloadEmbedder) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); @@ -763,7 +766,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, ReloadEmbedder) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, TerminateGuest) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( @@ -777,7 +780,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, TerminateGuest) { // This test verifies that the guest is responsive after crashing and going back // to a previous navigation entry. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, BackAfterTerminateGuest) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; StartBrowserPluginTest( kEmbedderURL, GetHTMLForGuestWithTitle("P1"), true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( @@ -820,7 +823,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, BackAfterTerminateGuest) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadStart) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, "about:blank", true, std::string()); const string16 expected_title = ASCIIToUTF16(kHTMLForGuest); @@ -836,18 +839,59 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadStart) { EXPECT_EQ(expected_title, actual_title); } +namespace { + +class EmptyHttpResponse : public net::test_server::HttpResponse { + public: + virtual std::string ToResponseString() const OVERRIDE { + return std::string(); + } +}; + +// Handles |request| by serving an empty response. +scoped_ptr<net::test_server::HttpResponse> EmptyResponseHandler( + const std::string& path, + const net::test_server::HttpRequest& request) { + if (StartsWithASCII(path, request.relative_url, true)) { + return scoped_ptr<net::test_server::HttpResponse>( + new EmptyHttpResponse); + } + + return scoped_ptr<net::test_server::HttpResponse>(NULL); +} + +// Handles |request| by serving a redirect response. +scoped_ptr<net::test_server::HttpResponse> RedirectResponseHandler( + const std::string& path, + const GURL& redirect_target, + const net::test_server::HttpRequest& request) { + if (!StartsWithASCII(path, request.relative_url, true)) + return scoped_ptr<net::test_server::HttpResponse>(NULL); + + scoped_ptr<net::test_server::BasicHttpResponse> http_response( + new net::test_server::BasicHttpResponse); + http_response->set_code(net::test_server::MOVED); + http_response->AddCustomHeader("Location", redirect_target.spec()); + return http_response.PassAs<net::test_server::HttpResponse>(); +} + +} // namespace + IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadAbort) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, "about:blank", true, std::string()); { // Navigate the guest to "close-socket". + const char kEmptyResponsePath[] = "/close-socket"; + embedded_test_server()->RegisterRequestHandler( + base::Bind(&EmptyResponseHandler, kEmptyResponsePath)); const string16 expected_title = ASCIIToUTF16("ERR_EMPTY_RESPONSE"); content::TitleWatcher title_watcher(test_embedder()->web_contents(), expected_title); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); - GURL test_url = test_server()->GetURL("close-socket"); + GURL test_url = embedded_test_server()->GetURL(kEmptyResponsePath); ExecuteSyncJSFunction( rvh, base::StringPrintf("SetSrc('%s');", test_url.spec().c_str())); string16 actual_title = title_watcher.WaitAndGetTitle(); @@ -890,7 +934,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadAbort) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadRedirect) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, "about:blank", true, std::string()); const string16 expected_title = ASCIIToUTF16("redirected"); @@ -898,8 +942,12 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadRedirect) { expected_title); // Navigate with a redirect and wait until the title changes. - GURL redirect_url(test_server()->GetURL( - "server-redirect?files/title1.html")); + const char kRedirectResponsePath[] = "/server-redirect"; + embedded_test_server()->RegisterRequestHandler( + base::Bind(&RedirectResponseHandler, + kRedirectResponsePath, + embedded_test_server()->GetURL("/title1.html"))); + GURL redirect_url(embedded_test_server()->GetURL(kRedirectResponsePath)); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); ExecuteSyncJSFunction( @@ -917,7 +965,8 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadRedirect) { value = content::ExecuteScriptAndGetValue(rvh, "redirectNewUrl"); EXPECT_TRUE(value->GetAsString(&result)); - EXPECT_EQ(test_server()->GetURL("files/title1.html").spec().c_str(), result); + EXPECT_EQ(embedded_test_server()->GetURL("/title1.html").spec().c_str(), + result); } // Always failing in the win7_aura try bot. See http://crbug.com/181107. @@ -930,7 +979,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadRedirect) { // Tests that a drag-n-drop over the browser plugin in the embedder happens // correctly. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, MAYBE_AcceptDragEvents) { - const char kEmbedderURL[] = "files/browser_plugin_dragging.html"; + const char kEmbedderURL[] = "/browser_plugin_dragging.html"; StartBrowserPluginTest( kEmbedderURL, kHTMLForGuestAcceptDrag, true, std::string()); @@ -986,8 +1035,8 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, MAYBE_AcceptDragEvents) { // message. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, PostMessage) { const char* kTesting = "testing123"; - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; - const char* kGuestURL = "files/browser_plugin_post_message_guest.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; + const char* kGuestURL = "/browser_plugin_post_message_guest.html"; StartBrowserPluginTest(kEmbedderURL, kGuestURL, false, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); @@ -1014,8 +1063,8 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, PostMessage) { // iframe targeting is fixed (see http://crbug.com/153701). IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, DISABLED_PostMessageToIFrame) { const char* kTesting = "testing123"; - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; - const char* kGuestURL = "files/browser_plugin_post_message_guest.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; + const char* kGuestURL = "/browser_plugin_post_message_guest.html"; StartBrowserPluginTest(kEmbedderURL, kGuestURL, false, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); @@ -1038,8 +1087,8 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, DISABLED_PostMessageToIFrame) { RenderViewHostImpl* guest_rvh = static_cast<RenderViewHostImpl*>( test_guest()->web_contents()->GetRenderViewHost()); - GURL test_url = test_server()->GetURL( - "files/browser_plugin_post_message_guest.html"); + GURL test_url = embedded_test_server()->GetURL( + "/browser_plugin_post_message_guest.html"); ExecuteSyncJSFunction( guest_rvh, base::StringPrintf( @@ -1061,7 +1110,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, DISABLED_PostMessageToIFrame) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadStop) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, "about:blank", true, std::string()); const string16 expected_title = ASCIIToUTF16("loadStop"); @@ -1078,7 +1127,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadStop) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadCommit) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, "about:blank", true, std::string()); const string16 expected_title = ASCIIToUTF16( @@ -1103,7 +1152,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, LoadCommit) { // This test verifies that if a browser plugin is hidden before navigation, // the guest starts off hidden. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, HiddenBeforeNavigation) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; const std::string embedder_code = "document.getElementById('plugin').style.visibility = 'hidden'"; StartBrowserPluginTest( @@ -1114,7 +1163,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, HiddenBeforeNavigation) { // This test verifies that if we lose the guest, and get a new one, // the new guest will inherit the visibility state of the old guest. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, VisibilityPreservation) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); @@ -1135,7 +1184,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, VisibilityPreservation) { // This test verifies that if a browser plugin is focused before navigation then // the guest starts off focused. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, FocusBeforeNavigation) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; const std::string embedder_code = "document.getElementById('plugin').focus();"; StartBrowserPluginTest( @@ -1154,7 +1203,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, FocusBeforeNavigation) { // the new guest will inherit the focus state of the old guest. // crbug.com/170249 IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, DISABLED_FocusPreservation) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); @@ -1193,7 +1242,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, DISABLED_FocusPreservation) { } IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, FocusTracksEmbedder) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; StartBrowserPluginTest(kEmbedderURL, kHTMLForGuest, true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( test_embedder()->web_contents()->GetRenderViewHost()); @@ -1221,7 +1270,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, FocusTracksEmbedder) { // This test verifies that if a browser plugin is in autosize mode before // navigation then the guest starts auto-sized. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, AutoSizeBeforeNavigation) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; const std::string embedder_code = "document.getElementById('plugin').minwidth = 300;" "document.getElementById('plugin').minheight = 200;" @@ -1237,7 +1286,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, AutoSizeBeforeNavigation) { // This test verifies that enabling autosize resizes the guest and triggers // a 'sizechanged' event. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, AutoSizeAfterNavigation) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; StartBrowserPluginTest( kEmbedderURL, kHTMLForGuestWithSize, true, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( @@ -1277,7 +1326,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, AutoSizeAfterNavigation) { // Test for regression http://crbug.com/162961. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, GetRenderViewHostAtPositionTest) { - const char kEmbedderURL[] = "files/browser_plugin_embedder.html"; + const char kEmbedderURL[] = "/browser_plugin_embedder.html"; const std::string embedder_code = base::StringPrintf("SetSize(%d, %d);", 100, 100); StartBrowserPluginTest(kEmbedderURL, kHTMLForGuestWithSize, true, @@ -1298,8 +1347,8 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, GetRenderViewHostAtPositionTest) { #endif IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, MAYBE_ChangeWindowName) { - const char kEmbedderURL[] = "files/browser_plugin_naming_embedder.html"; - const char* kGuestURL = "files/browser_plugin_naming_guest.html"; + const char kEmbedderURL[] = "/browser_plugin_naming_embedder.html"; + const char* kGuestURL = "/browser_plugin_naming_guest.html"; StartBrowserPluginTest(kEmbedderURL, kGuestURL, false, std::string()); RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( @@ -1345,7 +1394,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, MAYBE_ChangeWindowName) { // This test verifies that all autosize attributes can be removed // without crashing the plugin, or throwing errors. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, RemoveAutosizeAttributes) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; const std::string embedder_code = "document.getElementById('plugin').minwidth = 300;" "document.getElementById('plugin').minheight = 200;" @@ -1371,7 +1420,7 @@ IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, RemoveAutosizeAttributes) { // This test verifies that autosize works when some of the parameters are unset. IN_PROC_BROWSER_TEST_F(BrowserPluginHostTest, PartialAutosizeAttributes) { - const char* kEmbedderURL = "files/browser_plugin_embedder.html"; + const char* kEmbedderURL = "/browser_plugin_embedder.html"; const std::string embedder_code = "document.getElementById('plugin').minwidth = 300;" "document.getElementById('plugin').minheight = 200;" diff --git a/content/browser/download/mhtml_generation_browsertest.cc b/content/browser/download/mhtml_generation_browsertest.cc index e8a9042..07bffed 100644 --- a/content/browser/download/mhtml_generation_browsertest.cc +++ b/content/browser/download/mhtml_generation_browsertest.cc @@ -12,7 +12,7 @@ #include "content/shell/shell.h" #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" -#include "net/test/spawned_test_server/spawned_test_server.h" +#include "net/test/embedded_test_server/embedded_test_server.h" #include "testing/gtest/include/gtest/gtest.h" namespace content { @@ -48,12 +48,12 @@ class MHTMLGenerationTest : public ContentBrowserTest { // test is to ensure we were successfull in creating the MHTML data from the // renderer. IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTML) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); base::FilePath path(temp_dir_.path()); path = path.Append(FILE_PATH_LITERAL("test.mht")); - NavigateToURL(shell(), test_server()->GetURL("files/simple_page.html")); + NavigateToURL(shell(), embedded_test_server()->GetURL("/simple_page.html")); shell()->web_contents()->GenerateMHTML( path, base::Bind(&MHTMLGenerationTest::MHTMLGenerated, this)); diff --git a/content/browser/fileapi/file_system_browsertest.cc b/content/browser/fileapi/file_system_browsertest.cc index d8e55af..510064f 100644 --- a/content/browser/fileapi/file_system_browsertest.cc +++ b/content/browser/fileapi/file_system_browsertest.cc @@ -17,7 +17,6 @@ #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" #include "content/test/layout_browsertest.h" -#include "net/test/spawned_test_server/spawned_test_server.h" #include "webkit/quota/quota_manager.h" using quota::QuotaManager; diff --git a/content/browser/loader/resource_dispatcher_host_browsertest.cc b/content/browser/loader/resource_dispatcher_host_browsertest.cc index 43cb267..2cb1124 100644 --- a/content/browser/loader/resource_dispatcher_host_browsertest.cc +++ b/content/browser/loader/resource_dispatcher_host_browsertest.cc @@ -20,7 +20,9 @@ #include "content/test/net/url_request_failed_job.h" #include "content/test/net/url_request_mock_http_job.h" #include "net/base/net_errors.h" -#include "net/test/spawned_test_server/spawned_test_server.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "net/test/embedded_test_server/http_response.h" +#include "net/test/embedded_test_server/http_request.h" namespace content { @@ -88,9 +90,9 @@ class ResourceDispatcherHostBrowserTest : public ContentBrowserTest, // Test title for content created by javascript window.open(). // See http://crbug.com/5988 IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, DynamicTitle1) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); - GURL url(test_server()->GetURL("files/dynamic1.html")); + GURL url(embedded_test_server()->GetURL("/dynamic1.html")); string16 title; ASSERT_TRUE(GetPopupTitle(url, &title)); EXPECT_TRUE(StartsWith(title, ASCIIToUTF16("My Popup Title"), true)) @@ -100,9 +102,9 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, DynamicTitle1) { // Test title for content created by javascript window.open(). // See http://crbug.com/5988 IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, DynamicTitle2) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); - GURL url(test_server()->GetURL("files/dynamic2.html")); + GURL url(embedded_test_server()->GetURL("/dynamic2.html")); string16 title; ASSERT_TRUE(GetPopupTitle(url, &title)); EXPECT_TRUE(StartsWith(title, ASCIIToUTF16("My Dynamic Title"), true)) @@ -156,9 +158,9 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, // Test for bug #1091358. IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, SyncXMLHttpRequest) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); NavigateToURL( - shell(), test_server()->GetURL("files/sync_xmlhttprequest.html")); + shell(), embedded_test_server()->GetURL("/sync_xmlhttprequest.html")); // Let's check the XMLHttpRequest ran successfully. bool success = false; @@ -172,10 +174,10 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, SyncXMLHttpRequest) { // If this flakes, use http://crbug.com/62776. IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, SyncXMLHttpRequest_Disallowed) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); NavigateToURL( shell(), - test_server()->GetURL("files/sync_xmlhttprequest_disallowed.html")); + embedded_test_server()->GetURL("/sync_xmlhttprequest_disallowed.html")); // Let's check the XMLHttpRequest ran successfully. bool success = false; @@ -192,18 +194,18 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, // If this flakes, use http://crbug.com/56264. IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, SyncXMLHttpRequest_DuringUnload) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); BrowserContext::GetDownloadManager( shell()->web_contents()->GetBrowserContext())->AddObserver(this); CheckTitleTest( - test_server()->GetURL("files/sync_xmlhttprequest_during_unload.html"), + embedded_test_server()->GetURL("/sync_xmlhttprequest_during_unload.html"), "sync xhr on unload"); // Navigate to a new page, to dispatch unload event and trigger xhr. // (the bug would make this step hang the renderer). CheckTitleTest( - test_server()->GetURL("files/title2.html"), "Title Of Awesomeness"); + embedded_test_server()->GetURL("/title2.html"), "Title Of Awesomeness"); ASSERT_FALSE(got_downloads()); } @@ -211,9 +213,9 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, // Tests that onunload is run for cross-site requests. (Bug 1114994) IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, CrossSiteOnunloadCookie) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); - GURL url = test_server()->GetURL("files/onunload_cookie.html"); + GURL url = embedded_test_server()->GetURL("/onunload_cookie.html"); CheckTitleTest(url, "set cookie on unload"); // Navigate to a new cross-site page, to dispatch unload event and set the @@ -230,9 +232,9 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, // without network loads (e.g., about:blank, data URLs). IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, DISABLED_CrossSiteImmediateLoadOnunloadCookie) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); - GURL url = test_server()->GetURL("files/onunload_cookie.html"); + GURL url = embedded_test_server()->GetURL("/onunload_cookie.html"); CheckTitleTest(url, "set cookie on unload"); // Navigate to a cross-site page that loads immediately without making a @@ -243,18 +245,38 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, EXPECT_EQ("onunloadCookie=foo", GetCookies(url)); } +namespace { + +// Handles |request| by serving a redirect response. +scoped_ptr<net::test_server::HttpResponse> NoContentResponseHandler( + const std::string& path, + const net::test_server::HttpRequest& request) { + if (!StartsWithASCII(path, request.relative_url, true)) + return scoped_ptr<net::test_server::HttpResponse>(NULL); + + scoped_ptr<net::test_server::BasicHttpResponse> http_response( + new net::test_server::BasicHttpResponse); + http_response->set_code(net::test_server::NO_CONTENT); + return http_response.PassAs<net::test_server::HttpResponse>(); +} + +} // namespace + // Tests that the unload handler is not run for 204 responses. // If this flakes use http://crbug.com/80596. IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, CrossSiteNoUnloadOn204) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); // Start with a URL that sets a cookie in its unload handler. - GURL url = test_server()->GetURL("files/onunload_cookie.html"); + GURL url = embedded_test_server()->GetURL("/onunload_cookie.html"); CheckTitleTest(url, "set cookie on unload"); // Navigate to a cross-site URL that returns a 204 No Content response. - NavigateToURL(shell(), test_server()->GetURL("nocontent")); + const char kNoContentPath[] = "/nocontent"; + embedded_test_server()->RegisterRequestHandler( + base::Bind(&NoContentResponseHandler, kNoContentPath)); + NavigateToURL(shell(), embedded_test_server()->GetURL(kNoContentPath)); // Check that the unload cookie was not set. EXPECT_EQ("", GetCookies(url)); @@ -305,9 +327,9 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, // Flaky: http://crbug.com/100823 IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, CrossSiteNavigationErrorPage) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); - GURL url(test_server()->GetURL("files/onunload_cookie.html")); + GURL url(embedded_test_server()->GetURL("/onunload_cookie.html")); CheckTitleTest(url, "set cookie on unload"); // Navigate to a new cross-site URL that results in an error. @@ -337,7 +359,7 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, TitleWatcher title_watcher(shell()->web_contents(), expected_title16); bool success; - GURL test_url(test_server()->GetURL("files/title2.html")); + GURL test_url(embedded_test_server()->GetURL("/title2.html")); std::string redirect_script = "window.location='" + test_url.possibly_invalid_spec() + "';" + "window.domAutomationController.send(true);"; @@ -350,9 +372,9 @@ IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, CrossSiteNavigationErrorPage2) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); - GURL url(test_server()->GetURL("files/title2.html")); + GURL url(embedded_test_server()->GetURL("/title2.html")); CheckTitleTest(url, "Title Of Awesomeness"); // Navigate to a new cross-site URL that results in an error. diff --git a/content/browser/media/webrtc_browsertest.cc b/content/browser/media/webrtc_browsertest.cc index fcd6ad8..7c99007 100644 --- a/content/browser/media/webrtc_browsertest.cc +++ b/content/browser/media/webrtc_browsertest.cc @@ -10,7 +10,7 @@ #include "content/shell/shell.h" #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" -#include "net/test/spawned_test_server/spawned_test_server.h" +#include "net/test/embedded_test_server/embedded_test_server.h" #if defined(OS_WIN) #include "base/win/windows_version.h" @@ -29,8 +29,9 @@ class WebrtcBrowserTest: public ContentBrowserTest { ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( switches::kUseFakeDeviceForMediaStream)); - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); } + protected: bool ExecuteJavascript(const std::string& javascript) { return ExecuteScript(shell()->web_contents(), javascript); @@ -47,7 +48,7 @@ class WebrtcBrowserTest: public ContentBrowserTest { // see that the success callback is called. If the error callback is called or // none of the callbacks are called the tests will simply time out and fail. IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetVideoStreamAndStop) { - GURL url(test_server()->GetURL("files/media/getusermedia.html")); + GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("getUserMedia({video: true});")); @@ -56,7 +57,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetVideoStreamAndStop) { } IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndStop) { - GURL url(test_server()->GetURL("files/media/getusermedia.html")); + GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("getUserMedia({video: true, audio: true});")); @@ -65,7 +66,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndStop) { } IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndClone) { - GURL url(test_server()->GetURL("files/media/getusermedia.html")); + GURL url(embedded_test_server()->GetURL("/media/getusermedia.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("getUserMediaAndClone();")); @@ -84,7 +85,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, GetAudioAndVideoStreamAndClone) { // These tests will make a complete PeerConnection-based call and verify that // video is playing for the call. IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupVideoCall) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("call({video: true});")); @@ -99,7 +100,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupVideoCall) { #endif IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupAudioAndVideoCall) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("call({video: true, audio: true});")); @@ -107,7 +108,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupAudioAndVideoCall) { } IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MANUAL_CanSetupCallAndSendDtmf) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE( @@ -117,7 +118,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MANUAL_CanSetupCallAndSendDtmf) { // TODO(miu): Test is flaky. http://crbug.com/236102 IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, DISABLED_CanMakeEmptyCallThenAddStreamsAndRenegotiate) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); const char* kJavascript = @@ -145,7 +146,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, #endif IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CanSetupAudioAndVideoCallWithoutMsidAndBundle) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("callWithoutMsidAndBundle();")); @@ -155,7 +156,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, // This test will make a PeerConnection-based call and test an unreliable text // dataChannel. IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithDataOnly) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("callWithDataOnly();")); @@ -172,7 +173,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithDataOnly) { // This test will make a PeerConnection-based call and test an unreliable text // dataChannel and audio and video tracks. IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithDataAndMedia) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("callWithDataAndMedia();")); @@ -182,7 +183,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithDataAndMedia) { // This test will make a PeerConnection-based call and test an unreliable text // dataChannel and later add an audio and video track. IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithDataAndLaterAddMedia) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("callWithDataAndLaterAddMedia();")); @@ -200,7 +201,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, CallWithDataAndLaterAddMedia) { // MediaStream that has been created based on a MediaStream created with // getUserMedia. IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithNewVideoMediaStream) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE(ExecuteJavascript("callWithNewVideoMediaStream();")); @@ -214,7 +215,7 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MAYBE_CallWithNewVideoMediaStream) { // TODO(phoglund): This test is manual since not all buildbots has an audio // input. IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, MANUAL_CallAndModifyStream) { - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); EXPECT_TRUE( diff --git a/content/browser/media/webrtc_internals_browsertest.cc b/content/browser/media/webrtc_internals_browsertest.cc index 4c64474..46b513f 100644 --- a/content/browser/media/webrtc_internals_browsertest.cc +++ b/content/browser/media/webrtc_internals_browsertest.cc @@ -12,7 +12,7 @@ #include "content/shell/shell.h" #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" -#include "net/test/spawned_test_server/spawned_test_server.h" +#include "net/test/embedded_test_server/embedded_test_server.h" using std::string; namespace content { @@ -128,8 +128,6 @@ class WebRTCInternalsBrowserTest: public ContentBrowserTest { // assume this switch is set by default in content_browsertests. ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( switches::kUseFakeDeviceForMediaStream)); - - ASSERT_TRUE(test_server()->Start()); } protected: @@ -582,7 +580,8 @@ IN_PROC_BROWSER_TEST_F(WebRTCInternalsBrowserTest, ConvertedGraphs) { IN_PROC_BROWSER_TEST_F(WebRTCInternalsBrowserTest, MAYBE_WithRealPeerConnectionCall) { // Start a peerconnection call in the first window. - GURL url(test_server()->GetURL("files/media/peerconnection-call.html")); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); + GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); NavigateToURL(shell(), url); ASSERT_TRUE(ExecuteJavascript("call({video:true});")); ExpectTitle("OK"); diff --git a/content/browser/renderer_host/render_view_host_browsertest.cc b/content/browser/renderer_host/render_view_host_browsertest.cc index 1170fe5..8fb43e5 100644 --- a/content/browser/renderer_host/render_view_host_browsertest.cc +++ b/content/browser/renderer_host/render_view_host_browsertest.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/path_service.h" #include "base/time.h" #include "base/utf_string_conversions.h" #include "base/values.h" @@ -10,13 +11,14 @@ #include "content/common/view_messages.h" #include "content/public/browser/notification_types.h" #include "content/public/browser/web_contents_observer.h" +#include "content/public/common/content_paths.h" #include "content/public/test/browser_test_utils.h" #include "content/shell/shell.h" #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" #include "net/base/host_port_pair.h" #include "net/base/net_util.h" -#include "net/test/spawned_test_server/spawned_test_server.h" +#include "net/test/embedded_test_server/embedded_test_server.h" namespace content { @@ -59,30 +61,33 @@ class RenderViewHostTestWebContentsObserver : public WebContentsObserver { }; IN_PROC_BROWSER_TEST_F(RenderViewHostTest, FrameNavigateSocketAddress) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); RenderViewHostTestWebContentsObserver observer(shell()->web_contents()); - GURL test_url = test_server()->GetURL("files/simple_page.html"); + GURL test_url = embedded_test_server()->GetURL("/simple_page.html"); NavigateToURL(shell(), test_url); - EXPECT_EQ(test_server()->host_port_pair().ToString(), + EXPECT_EQ(net::HostPortPair::FromURL( + embedded_test_server()->base_url()).ToString(), observer.observed_socket_address().ToString()); EXPECT_EQ(1, observer.navigation_count()); } IN_PROC_BROWSER_TEST_F(RenderViewHostTest, BaseURLParam) { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); RenderViewHostTestWebContentsObserver observer(shell()->web_contents()); // Base URL is not set if it is the same as the URL. - GURL test_url = test_server()->GetURL("files/simple_page.tml"); + GURL test_url = embedded_test_server()->GetURL("/simple_page.html"); NavigateToURL(shell(), test_url); EXPECT_TRUE(observer.base_url().is_empty()); EXPECT_EQ(1, observer.navigation_count()); // But should be set to the original page when reading MHTML. - test_url = net::FilePathToFileURL(test_server()->document_root().Append( - FILE_PATH_LITERAL("google.mht"))); + base::FilePath content_test_data_dir; + ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &content_test_data_dir)); + test_url = net::FilePathToFileURL( + content_test_data_dir.AppendASCII("google.mht")); NavigateToURL(shell(), test_url); EXPECT_EQ("http://www.google.com/", observer.base_url().spec()); } diff --git a/content/browser/session_history_browsertest.cc b/content/browser/session_history_browsertest.cc index b2698b9d..d8a24ef 100644 --- a/content/browser/session_history_browsertest.cc +++ b/content/browser/session_history_browsertest.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/stringprintf.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" #include "content/public/browser/navigation_controller.h" @@ -14,17 +15,43 @@ #include "content/shell/shell.h" #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" -#include "net/test/spawned_test_server/spawned_test_server.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "net/test/embedded_test_server/http_response.h" +#include "net/test/embedded_test_server/http_request.h" #include "testing/gtest/include/gtest/gtest.h" namespace content { +namespace { + +// Handles |request| by serving a response with title set to request contents. +scoped_ptr<net::test_server::HttpResponse> HandleEchoTitleRequest( + const std::string& echotitle_path, + const net::test_server::HttpRequest& request) { + if (!StartsWithASCII(request.relative_url, echotitle_path, true)) + return scoped_ptr<net::test_server::HttpResponse>(NULL); + + scoped_ptr<net::test_server::BasicHttpResponse> http_response( + new net::test_server::BasicHttpResponse); + http_response->set_code(net::test_server::SUCCESS); + http_response->set_content( + base::StringPrintf( + "<html><head><title>%s</title></head></html>", + request.content.c_str())); + return http_response.PassAs<net::test_server::HttpResponse>(); +} + +} // namespace + class SessionHistoryTest : public ContentBrowserTest { protected: SessionHistoryTest() {} virtual void SetUpOnMainThread() OVERRIDE { - ASSERT_TRUE(test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); + embedded_test_server()->RegisterRequestHandler( + base::Bind(&HandleEchoTitleRequest, "/echotitle")); + NavigateToURL(shell(), GURL(kAboutBlankURL)); } @@ -66,7 +93,8 @@ class SessionHistoryTest : public ContentBrowserTest { } GURL GetURL(const std::string file) { - return test_server()->GetURL(std::string("files/session_history/") + file); + return embedded_test_server()->GetURL( + std::string("/session_history/") + file); } void NavigateAndCheckTitle(const char* filename, @@ -297,6 +325,9 @@ IN_PROC_BROWSER_TEST_F(SessionHistoryTest, CrossFrameFormBackForward) { // navigations. Bug 730379. // If this flakes use http://crbug.com/61619. IN_PROC_BROWSER_TEST_F(SessionHistoryTest, FragmentBackForward) { + embedded_test_server()->RegisterRequestHandler( + base::Bind(&HandleEchoTitleRequest, "/echotitle")); + ASSERT_FALSE(CanGoBack()); GURL fragment(GetURL("fragment.html")); diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc index 96cabcf..000da0e 100644 --- a/content/browser/web_contents/web_contents_impl_browsertest.cc +++ b/content/browser/web_contents/web_contents_impl_browsertest.cc @@ -17,7 +17,6 @@ #include "content/test/content_browser_test.h" #include "content/test/content_browser_test_utils.h" #include "net/test/embedded_test_server/embedded_test_server.h" -#include "net/test/spawned_test_server/spawned_test_server.h" namespace content { diff --git a/content/test/data/browser_plugin_dragging.html b/content/test/data/browser_plugin_dragging.html index 1a0c38c..66375e0 100644 --- a/content/test/data/browser_plugin_dragging.html +++ b/content/test/data/browser_plugin_dragging.html @@ -1,3 +1,7 @@ +<html> +<head></head> +<body> + <textarea id='id_message'> </textarea> @@ -26,3 +30,6 @@ function SetSrc(src) { plugin.src = src; } </script> + +</body> +</html> diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc index ea1d8c5..95ccbcb 100644 --- a/net/test/embedded_test_server/embedded_test_server.cc +++ b/net/test/embedded_test_server/embedded_test_server.cc @@ -25,36 +25,31 @@ namespace test_server { namespace { -// Callback to handle requests with default predefined response for requests -// matching the address |url|. -scoped_ptr<HttpResponse> HandleDefaultRequest(const GURL& url, - const HttpResponse& response, - const HttpRequest& request) { - const GURL request_url = url.Resolve(request.relative_url); - if (url.path() != request_url.path()) - return scoped_ptr<HttpResponse>(NULL); - return scoped_ptr<HttpResponse>(new HttpResponse(response)); -} - // Handles |request| by serving a file from under |server_root|. -scoped_ptr<HttpResponse> HandleFileRequest(const base::FilePath& server_root, - const HttpRequest& request) { +scoped_ptr<HttpResponse> HandleFileRequest( + const base::FilePath& server_root, + const HttpRequest& request) { // This is a test-only server. Ignore I/O thread restrictions. base::ThreadRestrictions::ScopedAllowIO allow_io; // Trim the first byte ('/'). std::string request_path(request.relative_url.substr(1)); + // Remove the query string if present. + size_t query_pos = request_path.find('?'); + if (query_pos != std::string::npos) + request_path = request_path.substr(0, query_pos); + std::string file_contents; if (!file_util::ReadFileToString( server_root.AppendASCII(request_path), &file_contents)) { return scoped_ptr<HttpResponse>(NULL); } - scoped_ptr<HttpResponse> http_response(new HttpResponse); + scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse); http_response->set_code(net::test_server::SUCCESS); http_response->set_content(file_contents); - return http_response.Pass(); + return http_response.PassAs<HttpResponse>(); } } // namespace @@ -157,20 +152,26 @@ void EmbeddedTestServer::HandleRequest(HttpConnection* connection, scoped_ptr<HttpRequest> request) { DCHECK(io_thread_->BelongsToCurrentThread()); + bool request_handled = false; + for (size_t i = 0; i < request_handlers_.size(); ++i) { scoped_ptr<HttpResponse> response = request_handlers_[i].Run(*request.get()); if (response.get()) { connection->SendResponse(response.Pass()); - return; + request_handled = true; + break; } } - LOG(WARNING) << "Request not handled. Returning 404: " - << request->relative_url; - scoped_ptr<HttpResponse> not_found_response(new HttpResponse()); - not_found_response->set_code(NOT_FOUND); - connection->SendResponse(not_found_response.Pass()); + if (!request_handled) { + LOG(WARNING) << "Request not handled. Returning 404: " + << request->relative_url; + scoped_ptr<BasicHttpResponse> not_found_response(new BasicHttpResponse); + not_found_response->set_code(NOT_FOUND); + connection->SendResponse( + not_found_response.PassAs<HttpResponse>()); + } // Drop the connection, since we do not support multiple requests per // connection. diff --git a/net/test/embedded_test_server/embedded_test_server.h b/net/test/embedded_test_server/embedded_test_server.h index 6966227..2cf9cb2 100644 --- a/net/test/embedded_test_server/embedded_test_server.h +++ b/net/test/embedded_test_server/embedded_test_server.h @@ -77,8 +77,8 @@ class HttpListenSocket : public TCPListenSocket { // class EmbeddedTestServer : public StreamListenSocket::Delegate { public: - typedef base::Callback<scoped_ptr<HttpResponse>(const HttpRequest& request)> - HandleRequestCallback; + typedef base::Callback<scoped_ptr<HttpResponse>( + const HttpRequest& request)> HandleRequestCallback; // Creates a http test server. |io_thread| is a task runner // with IO message loop, used as a backend thread. diff --git a/net/test/embedded_test_server/embedded_test_server_unittest.cc b/net/test/embedded_test_server/embedded_test_server_unittest.cc index 33f1ff4..c0eb4ed 100644 --- a/net/test/embedded_test_server/embedded_test_server_unittest.cc +++ b/net/test/embedded_test_server/embedded_test_server_unittest.cc @@ -91,11 +91,11 @@ class EmbeddedTestServerTest : public testing::Test, GURL absolute_url = server_->GetURL(request.relative_url); if (absolute_url.path() == path) { - scoped_ptr<HttpResponse> http_response(new HttpResponse); + scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse); http_response->set_code(code); http_response->set_content(content); http_response->set_content_type(content_type); - return http_response.Pass(); + return http_response.PassAs<HttpResponse>(); } return scoped_ptr<HttpResponse>(); diff --git a/net/test/embedded_test_server/http_response.cc b/net/test/embedded_test_server/http_response.cc index 2c05c06..4f2bfe8 100644 --- a/net/test/embedded_test_server/http_response.cc +++ b/net/test/embedded_test_server/http_response.cc @@ -11,13 +11,16 @@ namespace net { namespace test_server { -HttpResponse::HttpResponse() : code_(SUCCESS) { +HttpResponse::~HttpResponse() { } -HttpResponse::~HttpResponse() { +BasicHttpResponse::BasicHttpResponse() : code_(SUCCESS) { +} + +BasicHttpResponse::~BasicHttpResponse() { } -std::string HttpResponse::ToResponseString() const { +std::string BasicHttpResponse::ToResponseString() const { // Response line with headers. std::string response_builder; diff --git a/net/test/embedded_test_server/http_response.h b/net/test/embedded_test_server/http_response.h index b597cce..141c8cb 100644 --- a/net/test/embedded_test_server/http_response.h +++ b/net/test/embedded_test_server/http_response.h @@ -9,6 +9,7 @@ #include <string> #include "base/basictypes.h" +#include "base/compiler_specific.h" namespace net { namespace test_server { @@ -24,12 +25,23 @@ enum ResponseCode { ACCESS_DENIED = 500, }; -// Respresents a HTTP response. Since it can be big, it may be better to use -// scoped_ptr to pass it instead of copying. -class HttpResponse { +// Interface for HTTP response implementations. +class HttpResponse{ public: - HttpResponse(); - ~HttpResponse(); + virtual ~HttpResponse(); + + // Returns raw contents to be written to the network socket + // in response. If you intend to make this a valid HTTP response, + // it should start with "HTTP/x.x" line, followed by response headers. + virtual std::string ToResponseString() const = 0; +}; + +// This class is used to handle basic HTTP responses with commonly used +// response headers such as "Content-Type". +class BasicHttpResponse : public HttpResponse { + public: + BasicHttpResponse(); + virtual ~BasicHttpResponse(); // The response code. ResponseCode code() const { return code_; } @@ -56,13 +68,15 @@ class HttpResponse { } // Generates and returns a http response string. - std::string ToResponseString() const; + virtual std::string ToResponseString() const OVERRIDE; private: ResponseCode code_; std::string content_; std::string content_type_; std::map<std::string, std::string> custom_headers_; + + DISALLOW_COPY_AND_ASSIGN(BasicHttpResponse); }; } // namespace test_server diff --git a/net/test/embedded_test_server/http_response_unittest.cc b/net/test/embedded_test_server/http_response_unittest.cc index a56feee..82f5112 100644 --- a/net/test/embedded_test_server/http_response_unittest.cc +++ b/net/test/embedded_test_server/http_response_unittest.cc @@ -10,7 +10,7 @@ namespace net { namespace test_server { TEST(HttpResponseTest, GenerateResponse) { - HttpResponse response; + BasicHttpResponse response; response.set_code(SUCCESS); response.set_content("Sample content - Hello world!"); response.set_content_type("text/plain"); |