• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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