summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-23 23:39:35 +0000
committerajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-23 23:39:35 +0000
commit37ac95b451ae3cdddf327b9bfc3ba350b149b5ff (patch)
treee4f65b78b410d48cb7ff06c0193fb34980e5334b /content
parentb785a42692ee2b57600f8b2df66f785387d3f7c0 (diff)
downloadchromium_src-37ac95b451ae3cdddf327b9bfc3ba350b149b5ff.zip
chromium_src-37ac95b451ae3cdddf327b9bfc3ba350b149b5ff.tar.gz
chromium_src-37ac95b451ae3cdddf327b9bfc3ba350b149b5ff.tar.bz2
Correctly integrate StoragePartition into TestingProfile.
Until this CL, TestingProfile had 3 distinct URLRequestContexts it would return to the user: one via profile->GetDefaultStoragePartition()->GetRequestContext(), one via profile->GetRequestContext(), and one via profile->GetResourceContext->GetRequestContext(). All of these had different cookie stores. This CL unified them so they all return the one from profile->GetDefaultStoragePartition()->GetRequestContext(). This correctly mimics how production code works. Doing this had a bunch of implications: (1) Removes TestingProfile::CreateRequestContext()/ResetRequestContext() (2) Changes MockRequestContext to share the URLRequestContext with TestingProfile. (3) TestingProfile now requires all BrowserThreads. Point (3) effectively adds TestBrowserThreadBundle into a bunch more spots. Because of that, we also have the following changes: (a) AshTestBase now has a TestBrowserThreadBundle (b) Removed a bunch of real threads from tests. (c) TemplateUrlService has reworked synchronization semantics. (d) Removed MultiThreadTestHelper. (e) Added TestingIOThread class + testing API in IOThread to mock out various IO thread tasks which enervated with the new TestBrowserThreadBundle. TBR=bauerb,brettw,isherman,joth,jyasskin,mattm,mmenke,mnissler,pkasting,rkc,rlp,satorux,tim,xians,joth BUG=159193 Review URL: https://chromiumcodereview.appspot.com/17127002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213272 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/loader/resource_loader_unittest.cc21
-rw-r--r--content/public/test/mock_resource_context.cc11
-rw-r--r--content/public/test/mock_resource_context.h10
-rw-r--r--content/public/test/test_browser_context.cc16
-rw-r--r--content/test/webrtc_audio_device_test.cc2
-rw-r--r--content/test/webrtc_audio_device_test.h1
6 files changed, 35 insertions, 26 deletions
diff --git a/content/browser/loader/resource_loader_unittest.cc b/content/browser/loader/resource_loader_unittest.cc
index 4801876..634a553 100644
--- a/content/browser/loader/resource_loader_unittest.cc
+++ b/content/browser/loader/resource_loader_unittest.cc
@@ -4,16 +4,18 @@
#include "content/browser/loader/resource_loader.h"
-#include "base/message_loop/message_loop.h"
+#include "base/run_loop.h"
#include "content/browser/browser_thread_impl.h"
#include "content/browser/loader/resource_loader_delegate.h"
#include "content/public/browser/resource_request_info.h"
#include "content/public/test/mock_resource_context.h"
+#include "content/public/test/test_browser_thread_bundle.h"
#include "content/test/test_content_browser_client.h"
#include "net/cert/x509_certificate.h"
#include "net/ssl/client_cert_store.h"
#include "net/ssl/ssl_cert_request_info.h"
#include "net/url_request/url_request.h"
+#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
@@ -144,13 +146,9 @@ class SelectCertificateBrowserClient : public TestContentBrowserClient {
class ResourceLoaderTest : public testing::Test,
public ResourceLoaderDelegate {
protected:
- // testing::Test:
- virtual void SetUp() OVERRIDE {
- message_loop_.reset(new base::MessageLoop(base::MessageLoop::TYPE_IO));
- ui_thread_.reset(
- new BrowserThreadImpl(BrowserThread::UI, message_loop_.get()));
- io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO,
- message_loop_.get()));
+ ResourceLoaderTest()
+ : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
+ resource_context_(&test_url_request_context_) {
}
// ResourceLoaderDelegate:
@@ -179,10 +177,9 @@ class ResourceLoaderTest : public testing::Test,
virtual void DidReceiveResponse(ResourceLoader* loader) OVERRIDE {}
virtual void DidFinishLoading(ResourceLoader* loader) OVERRIDE {}
- scoped_ptr<base::MessageLoop> message_loop_;
- scoped_ptr<BrowserThreadImpl> ui_thread_;
- scoped_ptr<BrowserThreadImpl> io_thread_;
+ content::TestBrowserThreadBundle thread_bundle_;
+ net::TestURLRequestContext test_url_request_context_;
content::MockResourceContext resource_context_;
};
@@ -236,7 +233,7 @@ TEST_F(ResourceLoaderTest, ClientCertStoreLookup) {
// Everything is set up. Trigger the resource loader certificate request event
// and run the message loop.
loader.OnCertificateRequested(raw_ptr_to_request, cert_request_info.get());
- message_loop_->RunUntilIdle();
+ base::RunLoop().RunUntilIdle();
// Restore the original content browser client.
SetBrowserClientForTesting(old_client);
diff --git a/content/public/test/mock_resource_context.cc b/content/public/test/mock_resource_context.cc
index 2758c2f..adbb6b5 100644
--- a/content/public/test/mock_resource_context.cc
+++ b/content/public/test/mock_resource_context.cc
@@ -5,12 +5,16 @@
#include "content/public/test/mock_resource_context.h"
#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_test_util.h"
namespace content {
MockResourceContext::MockResourceContext()
- : test_request_context_(new net::TestURLRequestContext) {
+ : test_request_context_(NULL) {
+}
+
+MockResourceContext::MockResourceContext(
+ net::URLRequestContext* test_request_context)
+ : test_request_context_(test_request_context) {
}
MockResourceContext::~MockResourceContext() {}
@@ -20,7 +24,8 @@ net::HostResolver* MockResourceContext::GetHostResolver() {
}
net::URLRequestContext* MockResourceContext::GetRequestContext() {
- return test_request_context_.get();
+ CHECK(test_request_context_);
+ return test_request_context_;
}
} // namespace content
diff --git a/content/public/test/mock_resource_context.h b/content/public/test/mock_resource_context.h
index b29cbbe..e42f5c6 100644
--- a/content/public/test/mock_resource_context.h
+++ b/content/public/test/mock_resource_context.h
@@ -10,11 +10,19 @@
#include "base/memory/scoped_ptr.h"
#include "content/public/browser/resource_context.h"
+namespace net {
+class URLRequestContext;
+}
+
namespace content {
class MockResourceContext : public ResourceContext {
public:
MockResourceContext();
+
+ // Does not take ownership of |test_request_context|.
+ explicit MockResourceContext(net::URLRequestContext* test_request_context);
+
virtual ~MockResourceContext();
// ResourceContext implementation:
@@ -22,7 +30,7 @@ class MockResourceContext : public ResourceContext {
virtual net::URLRequestContext* GetRequestContext() OVERRIDE;
private:
- scoped_ptr<net::URLRequestContext> test_request_context_;
+ net::URLRequestContext* test_request_context_;
DISALLOW_COPY_AND_ASSIGN(MockResourceContext);
};
diff --git a/content/public/test/test_browser_context.cc b/content/public/test/test_browser_context.cc
index ae2fcff..907f748 100644
--- a/content/public/test/test_browser_context.cc
+++ b/content/public/test/test_browser_context.cc
@@ -9,6 +9,7 @@
#include "content/public/test/mock_resource_context.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
+#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webkit/browser/quota/special_storage_policy.h"
@@ -16,13 +17,12 @@ namespace {
class TestContextURLRequestContextGetter : public net::URLRequestContextGetter {
public:
- explicit TestContextURLRequestContextGetter(net::URLRequestContext* context)
- : context_(context),
- null_task_runner_(new base::NullTaskRunner) {
+ TestContextURLRequestContextGetter()
+ : null_task_runner_(new base::NullTaskRunner) {
}
virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE {
- return context_;
+ return &context_;
}
virtual scoped_refptr<base::SingleThreadTaskRunner>
@@ -33,7 +33,7 @@ class TestContextURLRequestContextGetter : public net::URLRequestContextGetter {
private:
virtual ~TestContextURLRequestContextGetter() {}
- net::URLRequestContext* context_;
+ net::TestURLRequestContext context_;
scoped_refptr<base::SingleThreadTaskRunner> null_task_runner_;
};
@@ -71,8 +71,7 @@ DownloadManagerDelegate* TestBrowserContext::GetDownloadManagerDelegate() {
net::URLRequestContextGetter* TestBrowserContext::GetRequestContext() {
if (!request_context_.get()) {
- request_context_ = new TestContextURLRequestContextGetter(
- GetResourceContext()->GetRequestContext());
+ request_context_ = new TestContextURLRequestContextGetter();
}
return request_context_.get();
}
@@ -110,7 +109,8 @@ void TestBrowserContext::RequestMIDISysExPermission(
ResourceContext* TestBrowserContext::GetResourceContext() {
if (!resource_context_)
- resource_context_.reset(new MockResourceContext());
+ resource_context_.reset(new MockResourceContext(
+ GetRequestContext()->GetURLRequestContext()));
return resource_context_.get();
}
diff --git a/content/test/webrtc_audio_device_test.cc b/content/test/webrtc_audio_device_test.cc
index 4609861d..d5c3c65 100644
--- a/content/test/webrtc_audio_device_test.cc
+++ b/content/test/webrtc_audio_device_test.cc
@@ -20,8 +20,8 @@
#include "content/common/media/media_param_traits.h"
#include "content/common/view_messages.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/resource_context.h"
#include "content/public/common/content_paths.h"
-#include "content/public/test/mock_resource_context.h"
#include "content/public/test/test_browser_thread.h"
#include "content/renderer/media/audio_input_message_filter.h"
#include "content/renderer/media/audio_message_filter.h"
diff --git a/content/test/webrtc_audio_device_test.h b/content/test/webrtc_audio_device_test.h
index 1663ad1..a640e5c 100644
--- a/content/test/webrtc_audio_device_test.h
+++ b/content/test/webrtc_audio_device_test.h
@@ -50,7 +50,6 @@ class AudioMirroringManager;
class AudioRendererHost;
class ContentRendererClient;
class MediaStreamManager;
-class MockResourceContext;
class RenderThreadImpl;
class ResourceContext;
class TestBrowserThread;