1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_PUBLIC_TEST_TEST_CONTENT_CLIENT_INITIALIZER_ 6#define CONTENT_PUBLIC_TEST_TEST_CONTENT_CLIENT_INITIALIZER_ 7 8#include "base/basictypes.h" 9#include "base/memory/scoped_ptr.h" 10 11namespace content { 12 13class ContentClient; 14class MockRenderProcessHostFactory; 15class NotificationServiceImpl; 16class TestContentBrowserClient; 17class TestRenderViewHostFactory; 18 19// Initializes various objects needed to run unit tests that use content:: 20// objects. Currently this includes setting up the notification service, 21// creating and setting the content client and the content browser client. 22class TestContentClientInitializer { 23 public: 24 TestContentClientInitializer(); 25 ~TestContentClientInitializer(); 26 27 // Enables switching RenderViewHost creation to use the test version instead 28 // of the real implementation. This will last throughout the lifetime of this 29 // class. 30 void CreateTestRenderViewHosts(); 31 32 private: 33 scoped_ptr<NotificationServiceImpl> notification_service_; 34 scoped_ptr<ContentClient> content_client_; 35 scoped_ptr<TestContentBrowserClient> content_browser_client_; 36 scoped_ptr<MockRenderProcessHostFactory> rph_factory_; 37 scoped_ptr<TestRenderViewHostFactory> test_render_view_host_factory_; 38 39 DISALLOW_COPY_AND_ASSIGN(TestContentClientInitializer); 40}; 41 42} // namespace content 43 44#endif // CONTENT_PUBLIC_TEST_TEST_CONTENT_CLIENT_INITIALIZER_ 45