OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_GUEST_VIEW_BROWSER_TEST_GUEST_VIEW_MANAGER_H_ | 5 #ifndef COMPONENTS_GUEST_VIEW_BROWSER_TEST_GUEST_VIEW_MANAGER_H_ |
6 #define COMPONENTS_GUEST_VIEW_BROWSER_TEST_GUEST_VIEW_MANAGER_H_ | 6 #define COMPONENTS_GUEST_VIEW_BROWSER_TEST_GUEST_VIEW_MANAGER_H_ |
7 | 7 |
8 #include "base/memory/linked_ptr.h" | 8 #include "base/memory/linked_ptr.h" |
9 #include "components/guest_view/browser/guest_view_manager.h" | 9 #include "components/guest_view/browser/guest_view_manager.h" |
10 #include "components/guest_view/browser/guest_view_manager_factory.h" | 10 #include "components/guest_view/browser/guest_view_manager_factory.h" |
11 #include "content/public/test/browser_test_utils.h" | 11 #include "content/public/test/browser_test_utils.h" |
12 #include "content/public/test/test_utils.h" | 12 #include "content/public/test/test_utils.h" |
13 | 13 |
14 namespace guest_view { | 14 namespace guest_view { |
15 | 15 |
16 class TestGuestViewManager : public GuestViewManager { | 16 class TestGuestViewManager : public GuestViewManager { |
17 public: | 17 public: |
18 TestGuestViewManager( | 18 TestGuestViewManager( |
19 content::BrowserContext* context, | 19 content::BrowserContext* context, |
20 scoped_ptr<GuestViewManagerDelegate> delegate); | 20 scoped_ptr<GuestViewManagerDelegate> delegate); |
21 ~TestGuestViewManager() override; | 21 ~TestGuestViewManager() override; |
22 | 22 |
23 void WaitForAllGuestsDeleted(); | 23 void WaitForAllGuestsDeleted(); |
24 | 24 |
25 void WaitForLastGuestDeleted(); | 25 void WaitForLastGuestDeleted(); |
26 | 26 |
27 content::WebContents* WaitForSingleGuestCreated(); | 27 content::WebContents* WaitForSingleGuestCreated(); |
| 28 void WaitForNumGuestsCreated(size_t count); |
28 | 29 |
29 void WaitForSingleViewGarbageCollected(); | 30 void WaitForSingleViewGarbageCollected(); |
30 | 31 |
31 content::WebContents* GetLastGuestCreated(); | 32 content::WebContents* GetLastGuestCreated(); |
32 | 33 |
33 // Returns the number of guests currently still alive at the time of calling | 34 // Returns the number of guests currently still alive at the time of calling |
34 // this method. | 35 // this method. |
35 size_t GetNumGuestsActive() const; | 36 size_t GetNumGuestsActive() const; |
36 | 37 |
37 // Returns the size of the set of removed instance IDs. | 38 // Returns the size of the set of removed instance IDs. |
(...skipping 11 matching lines...) Expand all Loading... |
49 guest_view_registry_.insert(registry_entry); | 50 guest_view_registry_.insert(registry_entry); |
50 } | 51 } |
51 | 52 |
52 // Returns the number of times EmbedderWillBeDestroyed() was called. | 53 // Returns the number of times EmbedderWillBeDestroyed() was called. |
53 int num_embedder_processes_destroyed() const { | 54 int num_embedder_processes_destroyed() const { |
54 return num_embedder_processes_destroyed_; | 55 return num_embedder_processes_destroyed_; |
55 } | 56 } |
56 | 57 |
57 // Returns the number of guests that have been created since the creation of | 58 // Returns the number of guests that have been created since the creation of |
58 // this GuestViewManager. | 59 // this GuestViewManager. |
59 int num_guests_created() const { return num_guests_created_; } | 60 size_t num_guests_created() const { return num_guests_created_; } |
60 | 61 |
61 // Returns the number of GuestViews that have been garbage collected in | 62 // Returns the number of GuestViews that have been garbage collected in |
62 // JavaScript since the creation of this GuestViewManager. | 63 // JavaScript since the creation of this GuestViewManager. |
63 int num_views_garbage_collected() const { | 64 int num_views_garbage_collected() const { |
64 return num_views_garbage_collected_; | 65 return num_views_garbage_collected_; |
65 } | 66 } |
66 | 67 |
67 // Returns the last guest instance ID removed from the manager. | 68 // Returns the last guest instance ID removed from the manager. |
68 int last_instance_id_removed() const { return last_instance_id_removed_; } | 69 int last_instance_id_removed() const { return last_instance_id_removed_; } |
69 | 70 |
| 71 // Returns the list of guests WebContentses that were created by this |
| 72 // manager. |
| 73 void GetGuestWebContentsList( |
| 74 std::vector<content::WebContents*>* guest_web_contents_list); |
| 75 |
70 private: | 76 private: |
71 FRIEND_TEST_ALL_PREFIXES(GuestViewManagerTest, AddRemove); | 77 FRIEND_TEST_ALL_PREFIXES(GuestViewManagerTest, AddRemove); |
72 | 78 |
73 // GuestViewManager override: | 79 // GuestViewManager override: |
74 void AddGuest(int guest_instance_id, | 80 void AddGuest(int guest_instance_id, |
75 content::WebContents* guest_web_contents) override; | 81 content::WebContents* guest_web_contents) override; |
76 void RemoveGuest(int guest_instance_id) override; | 82 void RemoveGuest(int guest_instance_id) override; |
77 void EmbedderWillBeDestroyed(int embedder_process_id) override; | 83 void EmbedderWillBeDestroyed(int embedder_process_id) override; |
78 void ViewGarbageCollected(int embedder_process_id, | 84 void ViewGarbageCollected(int embedder_process_id, |
79 int view_instance_id) override; | 85 int view_instance_id) override; |
80 | 86 |
81 void WaitForGuestCreated(); | |
82 | |
83 void WaitForViewGarbageCollected(); | 87 void WaitForViewGarbageCollected(); |
84 | 88 |
85 using GuestViewManager::last_instance_id_removed_; | 89 using GuestViewManager::last_instance_id_removed_; |
86 using GuestViewManager::removed_instance_ids_; | 90 using GuestViewManager::removed_instance_ids_; |
87 | 91 |
88 int num_embedder_processes_destroyed_; | 92 int num_embedder_processes_destroyed_; |
89 int num_guests_created_; | 93 size_t num_guests_created_; |
| 94 size_t expected_num_guests_created_; |
90 int num_views_garbage_collected_; | 95 int num_views_garbage_collected_; |
| 96 bool waiting_for_guests_created_; |
91 | 97 |
92 std::vector<linked_ptr<content::WebContentsDestroyedWatcher>> | 98 std::vector<linked_ptr<content::WebContentsDestroyedWatcher>> |
93 guest_web_contents_watchers_; | 99 guest_web_contents_watchers_; |
94 scoped_refptr<content::MessageLoopRunner> created_message_loop_runner_; | 100 scoped_refptr<content::MessageLoopRunner> created_message_loop_runner_; |
95 scoped_refptr<content::MessageLoopRunner> gc_message_loop_runner_; | 101 scoped_refptr<content::MessageLoopRunner> gc_message_loop_runner_; |
96 | 102 |
97 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManager); | 103 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManager); |
98 }; | 104 }; |
99 | 105 |
100 // Test factory for creating test instances of GuestViewManager. | 106 // Test factory for creating test instances of GuestViewManager. |
101 class TestGuestViewManagerFactory : public GuestViewManagerFactory { | 107 class TestGuestViewManagerFactory : public GuestViewManagerFactory { |
102 public: | 108 public: |
103 TestGuestViewManagerFactory(); | 109 TestGuestViewManagerFactory(); |
104 ~TestGuestViewManagerFactory() override; | 110 ~TestGuestViewManagerFactory() override; |
105 | 111 |
106 GuestViewManager* CreateGuestViewManager( | 112 GuestViewManager* CreateGuestViewManager( |
107 content::BrowserContext* context, | 113 content::BrowserContext* context, |
108 scoped_ptr<GuestViewManagerDelegate> delegate) override; | 114 scoped_ptr<GuestViewManagerDelegate> delegate) override; |
109 | 115 |
110 private: | 116 private: |
111 TestGuestViewManager* test_guest_view_manager_; | 117 TestGuestViewManager* test_guest_view_manager_; |
112 | 118 |
113 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory); | 119 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory); |
114 }; | 120 }; |
115 | 121 |
116 } // namespace guest_view | 122 } // namespace guest_view |
117 | 123 |
118 #endif // COMPONENTS_GUEST_VIEW_BROWSER_TEST_GUEST_VIEW_MANAGER_H_ | 124 #endif // COMPONENTS_GUEST_VIEW_BROWSER_TEST_GUEST_VIEW_MANAGER_H_ |
OLD | NEW |