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 11 namespace content { 12 13 class ContentClient; 14 class MockRenderProcessHostFactory; 15 class NotificationServiceImpl; 16 class TestContentBrowserClient; 17 class 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. 22 class 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