| 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 |