diff options
Diffstat (limited to 'content')
-rw-r--r-- | content/content_tests.gypi | 4 | ||||
-rw-r--r-- | content/test/content_test_suite.cc | 35 | ||||
-rw-r--r-- | content/test/test_content_client_initializer.cc | 35 | ||||
-rw-r--r-- | content/test/test_content_client_initializer.h | 37 | ||||
-rw-r--r-- | content/test/test_render_view_host_factory.cc | 39 | ||||
-rw-r--r-- | content/test/test_render_view_host_factory.h | 53 | ||||
-rw-r--r-- | content/test/test_renderer_host.cc | 61 |
7 files changed, 85 insertions, 179 deletions
diff --git a/content/content_tests.gypi b/content/content_tests.gypi index 88c7400..df47b5e0 100644 --- a/content/content_tests.gypi +++ b/content/content_tests.gypi @@ -90,8 +90,6 @@ 'test/test_browser_thread.h', 'test/test_content_client.cc', 'test/test_content_client.h', - 'test/test_content_client_initializer.cc', - 'test/test_content_client_initializer.h', 'test/test_file_error_injector.cc', 'test/test_file_error_injector.h', 'test/test_navigation_observer.cc', @@ -100,8 +98,6 @@ 'test/test_notification_tracker.h', 'test/test_renderer_host.cc', 'test/test_renderer_host.h', - 'test/test_render_view_host_factory.cc', - 'test/test_render_view_host_factory.h', 'test/test_url_fetcher_factory.cc', 'test/test_url_fetcher_factory.h', 'test/test_web_contents_view.cc', diff --git a/content/test/content_test_suite.cc b/content/test/content_test_suite.cc index a81b816b..4272a9c 100644 --- a/content/test/content_test_suite.cc +++ b/content/test/content_test_suite.cc @@ -5,11 +5,13 @@ #include "content/test/content_test_suite.h" #include "base/logging.h" +#include "base/memory/scoped_ptr.h" #include "content/browser/mock_content_browser_client.h" +#include "content/browser/notification_service_impl.h" +#include "content/public/common/content_client.h" #include "content/public/common/content_paths.h" #include "content/public/common/url_constants.h" #include "content/test/test_content_client.h" -#include "content/test/test_content_client_initializer.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/ui_base_paths.h" @@ -18,27 +20,40 @@ #endif #include "ui/gfx/compositor/compositor_setup.h" - namespace { -class TestInitializationListener : public testing::EmptyTestEventListener { +class TestContentClientInitializer : public testing::EmptyTestEventListener { public: - TestInitializationListener() : test_content_client_initializer_(NULL) { + TestContentClientInitializer() { } virtual void OnTestStart(const testing::TestInfo& test_info) OVERRIDE { - test_content_client_initializer_ = - new content::TestContentClientInitializer(); + notification_service_.reset(new NotificationServiceImpl()); + + DCHECK(!content::GetContentClient()); + content_client_.reset(new TestContentClient); + content::SetContentClient(content_client_.get()); + + content_browser_client_.reset(new content::MockContentBrowserClient()); + content_client_->set_browser(content_browser_client_.get()); } virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE { - delete test_content_client_initializer_; + notification_service_.reset(); + + DCHECK_EQ(content_client_.get(), content::GetContentClient()); + content::SetContentClient(NULL); + content_client_.reset(); + + content_browser_client_.reset(); } private: - content::TestContentClientInitializer* test_content_client_initializer_; + scoped_ptr<NotificationServiceImpl> notification_service_; + scoped_ptr<content::ContentClient> content_client_; + scoped_ptr<content::ContentBrowserClient> content_browser_client_; - DISALLOW_COPY_AND_ASSIGN(TestInitializationListener); + DISALLOW_COPY_AND_ASSIGN(TestContentClientInitializer); }; } // namespace @@ -70,6 +85,6 @@ void ContentTestSuite::Initialize() { testing::TestEventListeners& listeners = testing::UnitTest::GetInstance()->listeners(); - listeners.Append(new TestInitializationListener); + listeners.Append(new TestContentClientInitializer); } diff --git a/content/test/test_content_client_initializer.cc b/content/test/test_content_client_initializer.cc deleted file mode 100644 index 26cd3aa..0000000 --- a/content/test/test_content_client_initializer.cc +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/test/test_content_client_initializer.h" - -#include "content/browser/mock_content_browser_client.h" -#include "content/browser/notification_service_impl.h" -#include "content/public/common/content_client.h" -#include "content/test/test_content_client.h" - -namespace content { - -TestContentClientInitializer::TestContentClientInitializer() { - notification_service_.reset(new NotificationServiceImpl()); - - DCHECK(!content::GetContentClient()); - content_client_.reset(new TestContentClient); - content::SetContentClient(content_client_.get()); - - content_browser_client_.reset(new content::MockContentBrowserClient()); - content_client_->set_browser(content_browser_client_.get()); -} - -TestContentClientInitializer::~TestContentClientInitializer() { - notification_service_.reset(); - - DCHECK_EQ(content_client_.get(), content::GetContentClient()); - content::SetContentClient(NULL); - content_client_.reset(); - - content_browser_client_.reset(); -} - -} // namespace content diff --git a/content/test/test_content_client_initializer.h b/content/test/test_content_client_initializer.h deleted file mode 100644 index fbbdd80..0000000 --- a/content/test/test_content_client_initializer.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_TEST_TEST_CONTENT_CLIENT_INITIALIZER_ -#define CONTENT_TEST_TEST_CONTENT_CLIENT_INITIALIZER_ -#pragma once - -#include "base/basictypes.h" -#include "base/memory/scoped_ptr.h" - -class NotificationServiceImpl; - -namespace content { - -class ContentClient; -class ContentBrowserClient; - -// Initializes various objects needed to run unit tests that use content:: -// objects. Currently this includes setting up the notification service, -// creating and setting the content client and the content browser client. -class TestContentClientInitializer { - public: - TestContentClientInitializer(); - ~TestContentClientInitializer(); - - private: - scoped_ptr<NotificationServiceImpl> notification_service_; - scoped_ptr<content::ContentClient> content_client_; - scoped_ptr<content::ContentBrowserClient> content_browser_client_; - - DISALLOW_COPY_AND_ASSIGN(TestContentClientInitializer); -}; - -} // namespace content - -#endif // CONTENT_TEST_TEST_CONTENT_CLIENT_INITIALIZER_ diff --git a/content/test/test_render_view_host_factory.cc b/content/test/test_render_view_host_factory.cc deleted file mode 100644 index 429922c..0000000 --- a/content/test/test_render_view_host_factory.cc +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/test/test_render_view_host_factory.h" - -#include "content/browser/renderer_host/test_render_view_host.h" -#include "content/browser/site_instance_impl.h" -#include "content/public/browser/render_process_host_factory.h" - -namespace content { - -TestRenderViewHostFactory::TestRenderViewHostFactory( - content::RenderProcessHostFactory* rph_factory) - : render_process_host_factory_(rph_factory) { - RenderViewHostFactory::RegisterFactory(this); -} - -TestRenderViewHostFactory::~TestRenderViewHostFactory() { - RenderViewHostFactory::UnregisterFactory(); -} - -void TestRenderViewHostFactory::set_render_process_host_factory( - content::RenderProcessHostFactory* rph_factory) { - render_process_host_factory_ = rph_factory; -} - -content::RenderViewHost* TestRenderViewHostFactory::CreateRenderViewHost( - SiteInstance* instance, - RenderViewHostDelegate* delegate, - int routing_id, - SessionStorageNamespace* session_storage) { - // See declaration of render_process_host_factory_ below. - static_cast<SiteInstanceImpl*>(instance)-> - set_render_process_host_factory(render_process_host_factory_); - return new TestRenderViewHost(instance, delegate, routing_id); -} - -} // namespace content diff --git a/content/test/test_render_view_host_factory.h b/content/test/test_render_view_host_factory.h deleted file mode 100644 index 406d1c2..0000000 --- a/content/test/test_render_view_host_factory.h +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_ -#define CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_ -#pragma once - -#include "base/basictypes.h" -#include "base/compiler_specific.h" -#include "content/browser/renderer_host/render_view_host_factory.h" - -namespace content { - -class SiteInstance; -class RenderViewHostDelegate; -class RenderProcessHostFactory; -class SessionStorageNamespace; - -// Manages creation of the RenderViewHosts using our special subclass. This -// automatically registers itself when it goes in scope, and unregisters itself -// when it goes out of scope. Since you can't have more than one factory -// registered at a time, you can only have one of these objects at a time. -class TestRenderViewHostFactory : public RenderViewHostFactory { - public: - explicit TestRenderViewHostFactory( - content::RenderProcessHostFactory* rph_factory); - virtual ~TestRenderViewHostFactory(); - - virtual void set_render_process_host_factory( - content::RenderProcessHostFactory* rph_factory); - virtual content::RenderViewHost* CreateRenderViewHost( - content::SiteInstance* instance, - content::RenderViewHostDelegate* delegate, - int routing_id, - content::SessionStorageNamespace* session_storage) OVERRIDE; - - private: - // This is a bit of a hack. With the current design of the site instances / - // browsing instances, it's difficult to pass a RenderProcessHostFactory - // around properly. - // - // Instead, we set it right before we create a new RenderViewHost, which - // happens before the RenderProcessHost is created. This way, the instance - // has the correct factory and creates our special RenderProcessHosts. - content::RenderProcessHostFactory* render_process_host_factory_; - - DISALLOW_COPY_AND_ASSIGN(TestRenderViewHostFactory); -}; - -} // namespace content - -#endif // CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_ diff --git a/content/test/test_renderer_host.cc b/content/test/test_renderer_host.cc index 0921774..cd9aa34 100644 --- a/content/test/test_renderer_host.cc +++ b/content/test/test_renderer_host.cc @@ -12,7 +12,6 @@ #include "content/public/browser/web_contents.h" #include "content/test/mock_render_process_host.h" #include "content/test/test_browser_context.h" -#include "content/test/test_render_view_host_factory.h" #if defined(USE_AURA) #include "ui/aura/env.h" @@ -26,6 +25,66 @@ namespace content { +// Manages creation of the RenderViewHosts using our special subclass. This +// automatically registers itself when it goes in scope, and unregisters itself +// when it goes out of scope. Since you can't have more than one factory +// registered at a time, you can only have one of these objects at a time. +// +// This is an implementation detail of this file and used only via +// RenderViewHostTestEnabler. +class TestRenderViewHostFactory : public RenderViewHostFactory { + public: + explicit TestRenderViewHostFactory( + content::RenderProcessHostFactory* rph_factory); + virtual ~TestRenderViewHostFactory(); + + virtual void set_render_process_host_factory( + content::RenderProcessHostFactory* rph_factory); + virtual content::RenderViewHost* CreateRenderViewHost( + content::SiteInstance* instance, + content::RenderViewHostDelegate* delegate, + int routing_id, + content::SessionStorageNamespace* session_storage) OVERRIDE; + + private: + // This is a bit of a hack. With the current design of the site instances / + // browsing instances, it's difficult to pass a RenderProcessHostFactory + // around properly. + // + // Instead, we set it right before we create a new RenderViewHost, which + // happens before the RenderProcessHost is created. This way, the instance + // has the correct factory and creates our special RenderProcessHosts. + content::RenderProcessHostFactory* render_process_host_factory_; + + DISALLOW_COPY_AND_ASSIGN(TestRenderViewHostFactory); +}; + +TestRenderViewHostFactory::TestRenderViewHostFactory( + content::RenderProcessHostFactory* rph_factory) + : render_process_host_factory_(rph_factory) { + RenderViewHostFactory::RegisterFactory(this); +} + +TestRenderViewHostFactory::~TestRenderViewHostFactory() { + RenderViewHostFactory::UnregisterFactory(); +} + +void TestRenderViewHostFactory::set_render_process_host_factory( + content::RenderProcessHostFactory* rph_factory) { + render_process_host_factory_ = rph_factory; +} + +content::RenderViewHost* TestRenderViewHostFactory::CreateRenderViewHost( + SiteInstance* instance, + RenderViewHostDelegate* delegate, + int routing_id, + SessionStorageNamespace* session_storage) { + // See declaration of render_process_host_factory_ below. + static_cast<SiteInstanceImpl*>(instance)-> + set_render_process_host_factory(render_process_host_factory_); + return new TestRenderViewHost(instance, delegate, routing_id); +} + // static RenderViewHostTester* RenderViewHostTester::For(RenderViewHost* host) { return static_cast<TestRenderViewHost*>(host); |