diff options
author | ajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-23 23:39:35 +0000 |
---|---|---|
committer | ajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-23 23:39:35 +0000 |
commit | 37ac95b451ae3cdddf327b9bfc3ba350b149b5ff (patch) | |
tree | e4f65b78b410d48cb7ff06c0193fb34980e5334b /content | |
parent | b785a42692ee2b57600f8b2df66f785387d3f7c0 (diff) | |
download | chromium_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.cc | 21 | ||||
-rw-r--r-- | content/public/test/mock_resource_context.cc | 11 | ||||
-rw-r--r-- | content/public/test/mock_resource_context.h | 10 | ||||
-rw-r--r-- | content/public/test/test_browser_context.cc | 16 | ||||
-rw-r--r-- | content/test/webrtc_audio_device_test.cc | 2 | ||||
-rw-r--r-- | content/test/webrtc_audio_device_test.h | 1 |
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; |