OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 #include "chrome/browser/memory/tab_manager_delegate_chromeos.h" | 5 #include "chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/process/process_handle.h" | 11 #include "base/process/process_handle.h" |
12 #include "chromeos/dbus/fake_debug_daemon_client.h" | 12 #include "chromeos/dbus/fake_debug_daemon_client.h" |
13 #include "content/public/test/test_browser_thread_bundle.h" | 13 #include "content/public/test/test_browser_thread_bundle.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
15 | 15 |
16 namespace memory { | 16 namespace resource_coordinator { |
17 | 17 |
18 class TabManagerDelegateTest : public testing::Test { | 18 class TabManagerDelegateTest : public testing::Test { |
19 public: | 19 public: |
20 TabManagerDelegateTest() {} | 20 TabManagerDelegateTest() {} |
21 ~TabManagerDelegateTest() override {} | 21 ~TabManagerDelegateTest() override {} |
22 | 22 |
23 private: | 23 private: |
24 content::TestBrowserThreadBundle thread_bundle_; | 24 content::TestBrowserThreadBundle thread_bundle_; |
25 }; | 25 }; |
26 | 26 |
(...skipping 22 matching lines...) Expand all Loading... |
49 | 49 |
50 tab3.tab_contents_id = 300; | 50 tab3.tab_contents_id = 300; |
51 tab3.is_pinned = true; | 51 tab3.is_pinned = true; |
52 tab3.is_media = true; | 52 tab3.is_media = true; |
53 | 53 |
54 tab4.tab_contents_id = 400; | 54 tab4.tab_contents_id = 400; |
55 tab4.is_media = true; | 55 tab4.is_media = true; |
56 | 56 |
57 tab5.tab_contents_id = 500; | 57 tab5.tab_contents_id = 500; |
58 tab5.is_app = true; | 58 tab5.is_app = true; |
59 TabStatsList tab_list = { | 59 TabStatsList tab_list = {tab1, tab2, tab3, tab4, tab5}; |
60 tab1, tab2, tab3, tab4, tab5 | |
61 }; | |
62 | 60 |
63 std::vector<TabManagerDelegate::Candidate> candidates; | 61 std::vector<TabManagerDelegate::Candidate> candidates; |
64 | 62 |
65 candidates = TabManagerDelegate::GetSortedCandidates( | 63 candidates = TabManagerDelegate::GetSortedCandidates(tab_list, arc_processes); |
66 tab_list, arc_processes); | |
67 ASSERT_EQ(9U, candidates.size()); | 64 ASSERT_EQ(9U, candidates.size()); |
68 | 65 |
69 // focused app. | 66 // focused app. |
70 ASSERT_TRUE(candidates[0].app()); | 67 ASSERT_TRUE(candidates[0].app()); |
71 EXPECT_EQ("focused", candidates[0].app()->process_name()); | 68 EXPECT_EQ("focused", candidates[0].app()->process_name()); |
72 // visible app 1, last_activity_time larger than visible app 2. | 69 // visible app 1, last_activity_time larger than visible app 2. |
73 ASSERT_TRUE(candidates[1].app()); | 70 ASSERT_TRUE(candidates[1].app()); |
74 EXPECT_EQ("visible1", candidates[1].app()->process_name()); | 71 EXPECT_EQ("visible1", candidates[1].app()->process_name()); |
75 // visible app 2, last_activity_time less than visible app 1. | 72 // visible app 2, last_activity_time less than visible app 1. |
76 ASSERT_TRUE(candidates[2].app()); | 73 ASSERT_TRUE(candidates[2].app()); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 public: | 118 public: |
122 MockTabManagerDelegate() | 119 MockTabManagerDelegate() |
123 : TabManagerDelegate(nullptr), | 120 : TabManagerDelegate(nullptr), |
124 always_return_true_from_is_recently_killed_(false) {} | 121 always_return_true_from_is_recently_killed_(false) {} |
125 | 122 |
126 explicit MockTabManagerDelegate(TabManagerDelegate::MemoryStat* mem_stat) | 123 explicit MockTabManagerDelegate(TabManagerDelegate::MemoryStat* mem_stat) |
127 : TabManagerDelegate(nullptr, mem_stat), | 124 : TabManagerDelegate(nullptr, mem_stat), |
128 always_return_true_from_is_recently_killed_(false) {} | 125 always_return_true_from_is_recently_killed_(false) {} |
129 | 126 |
130 // unit test. | 127 // unit test. |
131 std::vector<int> GetKilledArcProcesses() { | 128 std::vector<int> GetKilledArcProcesses() { return killed_arc_processes_; } |
132 return killed_arc_processes_; | |
133 } | |
134 | 129 |
135 // unit test. | 130 // unit test. |
136 std::vector<int64_t> GetKilledTabs() { | 131 std::vector<int64_t> GetKilledTabs() { return killed_tabs_; } |
137 return killed_tabs_; | |
138 } | |
139 | 132 |
140 // unit test. | 133 // unit test. |
141 void Clear() { | 134 void Clear() { |
142 killed_arc_processes_.clear(); | 135 killed_arc_processes_.clear(); |
143 killed_tabs_.clear(); | 136 killed_tabs_.clear(); |
144 } | 137 } |
145 | 138 |
146 // unit test. | 139 // unit test. |
147 void set_always_return_true_from_is_recently_killed( | 140 void set_always_return_true_from_is_recently_killed( |
148 bool always_return_true_from_is_recently_killed) { | 141 bool always_return_true_from_is_recently_killed) { |
(...skipping 28 matching lines...) Expand all Loading... |
177 std::vector<int> killed_arc_processes_; | 170 std::vector<int> killed_arc_processes_; |
178 std::vector<int64_t> killed_tabs_; | 171 std::vector<int64_t> killed_tabs_; |
179 bool always_return_true_from_is_recently_killed_; | 172 bool always_return_true_from_is_recently_killed_; |
180 }; | 173 }; |
181 | 174 |
182 class MockMemoryStat : public TabManagerDelegate::MemoryStat { | 175 class MockMemoryStat : public TabManagerDelegate::MemoryStat { |
183 public: | 176 public: |
184 MockMemoryStat() {} | 177 MockMemoryStat() {} |
185 ~MockMemoryStat() override {} | 178 ~MockMemoryStat() override {} |
186 | 179 |
187 int TargetMemoryToFreeKB() override { | 180 int TargetMemoryToFreeKB() override { return target_memory_to_free_kb_; } |
188 return target_memory_to_free_kb_; | |
189 } | |
190 | 181 |
191 int EstimatedMemoryFreedKB(base::ProcessHandle pid) override { | 182 int EstimatedMemoryFreedKB(base::ProcessHandle pid) override { |
192 return process_pss_[pid]; | 183 return process_pss_[pid]; |
193 } | 184 } |
194 | 185 |
195 // unittest. | 186 // unittest. |
196 void SetTargetMemoryToFreeKB(const int target) { | 187 void SetTargetMemoryToFreeKB(const int target) { |
197 target_memory_to_free_kb_ = target; | 188 target_memory_to_free_kb_ = target; |
198 } | 189 } |
199 | 190 |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 EXPECT_EQ(1, killed_tabs[2]); | 429 EXPECT_EQ(1, killed_tabs[2]); |
439 | 430 |
440 // Check that killed apps are in the map. | 431 // Check that killed apps are in the map. |
441 const TabManagerDelegate::KilledArcProcessesMap& processes_map = | 432 const TabManagerDelegate::KilledArcProcessesMap& processes_map = |
442 tab_manager_delegate.recently_killed_arc_processes_; | 433 tab_manager_delegate.recently_killed_arc_processes_; |
443 EXPECT_EQ(2U, processes_map.size()); | 434 EXPECT_EQ(2U, processes_map.size()); |
444 EXPECT_EQ(1U, processes_map.count("service")); | 435 EXPECT_EQ(1U, processes_map.count("service")); |
445 EXPECT_EQ(1U, processes_map.count("not-visible")); | 436 EXPECT_EQ(1U, processes_map.count("not-visible")); |
446 } | 437 } |
447 | 438 |
448 } // namespace memory | 439 } // namespace resource_coordinator |
OLD | NEW |