Index: content/browser/memory/memory_coordinator_unittest.cc |
diff --git a/content/browser/memory/memory_coordinator_unittest.cc b/content/browser/memory/memory_coordinator_unittest.cc |
index 6b88b852da53299e3270a24e427271821b953ef4..01cc14ce9a5cccbeb6416ece1621299299e0aff0 100644 |
--- a/content/browser/memory/memory_coordinator_unittest.cc |
+++ b/content/browser/memory/memory_coordinator_unittest.cc |
@@ -26,7 +26,7 @@ void RunUntilIdle() { |
class MockChildMemoryCoordinator : public mojom::ChildMemoryCoordinator { |
public: |
MockChildMemoryCoordinator() |
- : state_(mojom::MemoryState::UNKNOWN), |
+ : state_(mojom::MemoryState::NORMAL), |
bashi
2016/12/09 03:11:16
I had to change the initial state to NORMAL becaus
|
on_state_change_calls_(0) {} |
~MockChildMemoryCoordinator() override {} |
@@ -138,4 +138,33 @@ TEST_F(MemoryCoordinatorTest, SetMemoryStateDelivered) { |
EXPECT_EQ(mojom::MemoryState::THROTTLED, cmc2->state()); |
} |
+TEST_F(MemoryCoordinatorTest, SetChildMemoryState) { |
+ TestMemoryCoordinator mc; |
+ auto cmc = mc.CreateChildMemoryCoordinator(1); |
+ auto iter = mc.children().find(1); |
+ ASSERT_TRUE(iter != mc.children().end()); |
+ |
+ // Foreground |
+ iter->second.is_visible = true; |
+ EXPECT_TRUE(mc.SetChildMemoryState(1, mojom::MemoryState::NORMAL)); |
+ EXPECT_EQ(mojom::MemoryState::NORMAL, cmc->state()); |
+ EXPECT_TRUE(mc.SetChildMemoryState(1, mojom::MemoryState::THROTTLED)); |
+ EXPECT_EQ(mojom::MemoryState::THROTTLED, cmc->state()); |
+ EXPECT_TRUE(mc.SetChildMemoryState(1, mojom::MemoryState::SUSPENDED)); |
+ EXPECT_EQ(mojom::MemoryState::THROTTLED, cmc->state()); |
+ |
+ // Background |
+ iter->second.is_visible = false; |
+ EXPECT_TRUE(mc.SetChildMemoryState(1, mojom::MemoryState::NORMAL)); |
+#if defined(OS_ANDROID) |
+ EXPECT_EQ(mojom::MemoryState::THROTTLED, cmc->state()); |
+#else |
+ EXPECT_EQ(mojom::MemoryState::NORMAL, cmc->state()); |
+#endif |
+ EXPECT_TRUE(mc.SetChildMemoryState(1, mojom::MemoryState::THROTTLED)); |
+ EXPECT_EQ(mojom::MemoryState::THROTTLED, cmc->state()); |
+ EXPECT_TRUE(mc.SetChildMemoryState(1, mojom::MemoryState::SUSPENDED)); |
+ EXPECT_EQ(mojom::MemoryState::SUSPENDED, cmc->state()); |
+} |
+ |
} // namespace content |