| Index: net/url_request/url_request_unittest.h
|
| diff --git a/net/url_request/url_request_unittest.h b/net/url_request/url_request_unittest.h
|
| index 8f090ef8032daa6817ba41c47886aa18e068780b..969e0346698fba45fc63cd0de31c47a51c5900ec 100644
|
| --- a/net/url_request/url_request_unittest.h
|
| +++ b/net/url_request/url_request_unittest.h
|
| @@ -26,7 +26,6 @@
|
| #include "net/base/host_resolver.h"
|
| #include "net/base/io_buffer.h"
|
| #include "net/base/net_errors.h"
|
| -#include "net/base/net_test_constants.h"
|
| #include "net/base/ssl_config_service_defaults.h"
|
| #include "net/disk_cache/disk_cache.h"
|
| #include "net/ftp/ftp_network_layer.h"
|
| @@ -402,15 +401,8 @@ class TestDelegate : public URLRequest::Delegate {
|
| class BaseTestServer : public base::RefCounted<BaseTestServer> {
|
| protected:
|
| BaseTestServer() {}
|
| - BaseTestServer(int connection_attempts, int connection_timeout)
|
| - : launcher_(connection_attempts, connection_timeout) {}
|
|
|
| public:
|
| - void set_forking(bool forking) {
|
| - launcher_.set_forking(forking);
|
| - }
|
| -
|
| - // Used with e.g. HTTPTestServer::SendQuit()
|
| bool WaitToFinish(int milliseconds) {
|
| return launcher_.WaitToFinish(milliseconds);
|
| }
|
| @@ -442,8 +434,6 @@ class BaseTestServer : public base::RefCounted<BaseTestServer> {
|
| "@" + host_name_ + ":" + port_str_ + "/" + path);
|
| }
|
|
|
| - virtual bool MakeGETRequest(const std::string& page_name) = 0;
|
| -
|
| FilePath GetDataDirectory() {
|
| return launcher_.GetDocumentRootPath();
|
| }
|
| @@ -473,29 +463,6 @@ class BaseTestServer : public base::RefCounted<BaseTestServer> {
|
| return true;
|
| }
|
|
|
| - // Used by MakeGETRequest to implement sync load behavior.
|
| - class SyncTestDelegate : public TestDelegate {
|
| - public:
|
| - SyncTestDelegate() : event_(false, false), success_(false) {
|
| - }
|
| - virtual void OnResponseCompleted(URLRequest* request) {
|
| - MessageLoop::current()->DeleteSoon(FROM_HERE, request);
|
| - success_ = request->status().is_success();
|
| - event_.Signal();
|
| - }
|
| - bool Wait(int64 secs) {
|
| - TimeDelta td = TimeDelta::FromSeconds(secs);
|
| - if (event_.TimedWait(td))
|
| - return true;
|
| - return false;
|
| - }
|
| - bool did_succeed() const { return success_; }
|
| - private:
|
| - base::WaitableEvent event_;
|
| - bool success_;
|
| - DISALLOW_COPY_AND_ASSIGN(SyncTestDelegate);
|
| - };
|
| -
|
| net::TestServerLauncher launcher_;
|
| std::string scheme_;
|
| std::string host_name_;
|
| @@ -507,65 +474,20 @@ class BaseTestServer : public base::RefCounted<BaseTestServer> {
|
| // HTTP
|
| class HTTPTestServer : public BaseTestServer {
|
| protected:
|
| - explicit HTTPTestServer() : loop_(NULL) {
|
| - }
|
| -
|
| - explicit HTTPTestServer(int connection_attempts, int connection_timeout)
|
| - : BaseTestServer(connection_attempts, connection_timeout), loop_(NULL) {
|
| - }
|
| -
|
| - virtual ~HTTPTestServer() {}
|
| + HTTPTestServer() {}
|
|
|
| public:
|
| // Creates and returns a new HTTPTestServer. If |loop| is non-null, requests
|
| // are serviced on it, otherwise a new thread and message loop are created.
|
| static scoped_refptr<HTTPTestServer> CreateServer(
|
| - const std::wstring& document_root,
|
| - MessageLoop* loop) {
|
| - return CreateServerWithFileRootURL(document_root, std::wstring(), loop);
|
| - }
|
| -
|
| - static scoped_refptr<HTTPTestServer> CreateServer(
|
| - const std::wstring& document_root,
|
| - MessageLoop* loop,
|
| - int connection_attempts,
|
| - int connection_timeout) {
|
| - return CreateServerWithFileRootURL(document_root, std::wstring(), loop,
|
| - connection_attempts,
|
| - connection_timeout);
|
| - }
|
| -
|
| - static scoped_refptr<HTTPTestServer> CreateServerWithFileRootURL(
|
| - const std::wstring& document_root,
|
| - const std::wstring& file_root_url,
|
| - MessageLoop* loop) {
|
| - return CreateServerWithFileRootURL(document_root, file_root_url, loop,
|
| - net::kDefaultTestConnectionAttempts,
|
| - net::kDefaultTestConnectionTimeout);
|
| - }
|
| -
|
| - static scoped_refptr<HTTPTestServer> CreateForkingServer(
|
| const std::wstring& document_root) {
|
| - scoped_refptr<HTTPTestServer> test_server =
|
| - new HTTPTestServer(net::kDefaultTestConnectionAttempts,
|
| - net::kDefaultTestConnectionTimeout);
|
| - test_server->set_forking(true);
|
| - FilePath no_cert;
|
| - FilePath docroot = FilePath::FromWStringHack(document_root);
|
| - if (!StartTestServer(test_server.get(), docroot, no_cert, std::wstring()))
|
| - return NULL;
|
| - return test_server;
|
| + return CreateServerWithFileRootURL(document_root, std::wstring());
|
| }
|
|
|
| static scoped_refptr<HTTPTestServer> CreateServerWithFileRootURL(
|
| const std::wstring& document_root,
|
| - const std::wstring& file_root_url,
|
| - MessageLoop* loop,
|
| - int connection_attempts,
|
| - int connection_timeout) {
|
| - scoped_refptr<HTTPTestServer> test_server =
|
| - new HTTPTestServer(connection_attempts, connection_timeout);
|
| - test_server->loop_ = loop;
|
| + const std::wstring& file_root_url) {
|
| + scoped_refptr<HTTPTestServer> test_server(new HTTPTestServer());
|
| FilePath no_cert;
|
| FilePath docroot = FilePath::FromWStringHack(document_root);
|
| if (!StartTestServer(test_server.get(), docroot, no_cert, file_root_url))
|
| @@ -582,75 +504,7 @@ class HTTPTestServer : public BaseTestServer {
|
| file_root_url);
|
| }
|
|
|
| - // A subclass may wish to send the request in a different manner
|
| - virtual bool MakeGETRequest(const std::string& page_name) {
|
| - const GURL& url = TestServerPage(page_name);
|
| -
|
| - // Spin up a background thread for this request so that we have access to
|
| - // an IO message loop, and in cases where this thread already has an IO
|
| - // message loop, we also want to avoid spinning a nested message loop.
|
| - SyncTestDelegate d;
|
| - {
|
| - MessageLoop* loop = loop_;
|
| - scoped_ptr<base::Thread> io_thread;
|
| -
|
| - if (!loop) {
|
| - io_thread.reset(new base::Thread("MakeGETRequest"));
|
| - base::Thread::Options options;
|
| - options.message_loop_type = MessageLoop::TYPE_IO;
|
| - io_thread->StartWithOptions(options);
|
| - loop = io_thread->message_loop();
|
| - }
|
| - loop->PostTask(FROM_HERE, NewRunnableFunction(
|
| - &HTTPTestServer::StartGETRequest, url, &d));
|
| -
|
| - // Build bot wait for only 300 seconds we should ensure wait do not take
|
| - // more than 300 seconds
|
| - if (!d.Wait(250))
|
| - return false;
|
| - }
|
| - return d.did_succeed();
|
| - }
|
| -
|
| - static void StartGETRequest(const GURL& url, URLRequest::Delegate* delegate) {
|
| - URLRequest* request = new URLRequest(url, delegate);
|
| - request->set_context(new TestURLRequestContext());
|
| - request->set_method("GET");
|
| - request->Start();
|
| - EXPECT_TRUE(request->is_pending());
|
| - }
|
| -
|
| - // Some tests use browser javascript to fetch a 'kill' url that causes
|
| - // the server to exit by itself (rather than letting TestServerLauncher's
|
| - // destructor kill it).
|
| - // This method does the same thing so we can unit test that mechanism.
|
| - // You can then use WaitToFinish() to sleep until the server terminates.
|
| - void SendQuit() {
|
| - // Append the time to avoid problems where the kill page
|
| - // is being cached rather than being executed on the server
|
| - std::string page_name = StringPrintf("kill?%u",
|
| - static_cast<int>(base::Time::Now().ToInternalValue()));
|
| - int retry_count = 5;
|
| - while (retry_count > 0) {
|
| - bool r = MakeGETRequest(page_name);
|
| - // BUG #1048625 causes the kill GET to fail. For now we just retry.
|
| - // Once the bug is fixed, we should remove the while loop and put back
|
| - // the following DCHECK.
|
| - // DCHECK(r);
|
| - if (r)
|
| - break;
|
| - retry_count--;
|
| - }
|
| - // Make sure we were successful in stopping the testserver.
|
| - DCHECK_GT(retry_count, 0);
|
| - }
|
| -
|
| virtual std::string scheme() { return "http"; }
|
| -
|
| - private:
|
| - // If non-null a background thread isn't created and instead this message loop
|
| - // is used.
|
| - MessageLoop* loop_;
|
| };
|
|
|
| //-----------------------------------------------------------------------------
|
| @@ -750,22 +604,6 @@ class FTPTestServer : public BaseTestServer {
|
| return test_server;
|
| }
|
|
|
| - virtual bool MakeGETRequest(const std::string& page_name) {
|
| - const GURL& url = TestServerPage(page_name);
|
| - TestDelegate d;
|
| - URLRequest request(url, &d);
|
| - request.set_context(new TestURLRequestContext());
|
| - request.set_method("GET");
|
| - request.Start();
|
| - EXPECT_TRUE(request.is_pending());
|
| -
|
| - MessageLoop::current()->Run();
|
| - if (request.is_pending())
|
| - return false;
|
| -
|
| - return true;
|
| - }
|
| -
|
| private:
|
| ~FTPTestServer() {}
|
| };
|
|
|