summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/contacts/gdata_contacts_service_unittest.cc4
-rw-r--r--chrome/browser/chromeos/login/oobe_browsertest.cc4
-rw-r--r--chrome/browser/extensions/api/streams_private/streams_private_apitest.cc11
-rw-r--r--chrome/browser/google_apis/drive_api_operations_unittest.cc33
-rw-r--r--chrome/browser/google_apis/gdata_wapi_operations_unittest.cc53
-rw-r--r--chrome/browser/google_apis/test_util.cc11
-rw-r--r--chrome/browser/google_apis/test_util.h5
-rw-r--r--chrome/browser/ui/app_list/search/webstore_provider_browsertest.cc5
-rw-r--r--content/browser/browser_plugin/browser_plugin_host_browsertest.cc145
-rw-r--r--content/browser/download/mhtml_generation_browsertest.cc6
-rw-r--r--content/browser/fileapi/file_system_browsertest.cc1
-rw-r--r--content/browser/loader/resource_dispatcher_host_browsertest.cc70
-rw-r--r--content/browser/media/webrtc_browsertest.cc31
-rw-r--r--content/browser/media/webrtc_internals_browsertest.cc7
-rw-r--r--content/browser/renderer_host/render_view_host_browsertest.cc21
-rw-r--r--content/browser/session_history_browsertest.cc37
-rw-r--r--content/browser/web_contents/web_contents_impl_browsertest.cc1
-rw-r--r--content/test/data/browser_plugin_dragging.html7
-rw-r--r--net/test/embedded_test_server/embedded_test_server.cc43
-rw-r--r--net/test/embedded_test_server/embedded_test_server.h4
-rw-r--r--net/test/embedded_test_server/embedded_test_server_unittest.cc4
-rw-r--r--net/test/embedded_test_server/http_response.cc9
-rw-r--r--net/test/embedded_test_server/http_response.h26
-rw-r--r--net/test/embedded_test_server/http_response_unittest.cc2
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");