1 // Copyright 2014 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.
5 #ifndef EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_TEST_GUEST_VIEW_MANAGER_H_
6 #define EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_TEST_GUEST_VIEW_MANAGER_H_
8 #include "content/public/test/test_utils.h"
9 #include "extensions/browser/guest_view/guest_view_manager.h"
10 #include "extensions/browser/guest_view/guest_view_manager_factory.h"
12 namespace extensions {
14 class TestGuestViewManager : public GuestViewManager {
16 explicit TestGuestViewManager(content::BrowserContext* context);
17 virtual ~TestGuestViewManager();
19 content::WebContents* WaitForGuestCreated();
20 void WaitForGuestDeleted();
23 // GuestViewManager override:
24 virtual void AddGuest(int guest_instance_id,
25 content::WebContents* guest_web_contents) OVERRIDE;
26 virtual void RemoveGuest(int guest_instance_id) OVERRIDE;
28 bool seen_guest_removed_;
29 content::WebContents* web_contents_;
30 scoped_refptr<content::MessageLoopRunner> created_message_loop_runner_;
31 scoped_refptr<content::MessageLoopRunner> deleted_message_loop_runner_;
33 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManager);
36 // Test factory for creating test instances of GuestViewManager.
37 class TestGuestViewManagerFactory : public GuestViewManagerFactory {
39 TestGuestViewManagerFactory();
40 virtual ~TestGuestViewManagerFactory();
42 virtual GuestViewManager* CreateGuestViewManager(
43 content::BrowserContext* context) OVERRIDE;
45 TestGuestViewManager* GetManager(content::BrowserContext* context);
48 TestGuestViewManager* test_guest_view_manager_;
50 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory);
53 } // namespace extensions
55 #endif // EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_TEST_GUEST_VIEW_MANAGER_H_