Index: components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc |
diff --git a/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc b/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc |
index 445aeb0877b3be5b2346a6fd99bf729f77520679..d01bd02c74e1821fbc2a2b6c89deb5f570ccf23b 100644 |
--- a/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc |
+++ b/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc |
@@ -4,6 +4,10 @@ |
#include "components/memory_coordinator/child/child_memory_coordinator_impl.h" |
+#if defined(OS_ANDROID) |
+#include "components/memory_coordinator/child/child_memory_coordinator_impl_android.h" |
+#endif // defined(OS_ANDROID) |
+ |
#include <memory> |
#include "base/message_loop/message_loop.h" |
@@ -33,12 +37,13 @@ class MockMemoryCoordinatorHandle : public mojom::MemoryCoordinatorHandle { |
mojom::ChildMemoryCoordinatorPtr child_ = nullptr; |
}; |
-class ChildMemoryCoordinatorImplTest : public testing::Test { |
+class ChildMemoryCoordinatorImplTest : public testing::Test, |
+ public ChildMemoryCoordinatorDelegate { |
public: |
ChildMemoryCoordinatorImplTest() |
: message_loop_(new base::MessageLoop) { |
auto parent = coordinator_handle_.Bind(); |
- coordinator_impl_.reset(new ChildMemoryCoordinatorImpl(std::move(parent))); |
+ coordinator_impl_ = CreateChildMemoryCoordinator(std::move(parent), this); |
// Needs to run loop to initalize mojo pointers including |child_| in |
// MockMemoryCoordinatorHandle. |
base::RunLoop loop; |
@@ -67,6 +72,14 @@ class ChildMemoryCoordinatorImplTest : public testing::Test { |
loop.RunUntilIdle(); |
} |
+ // ChildMemoryCoordinatorDelegate implementation: |
+ void OnTrimMemoryImmediately() override { |
+ on_trim_memory_called_ = true; |
+ } |
+ |
+ protected: |
+ bool on_trim_memory_called_ = false; |
+ |
private: |
std::unique_ptr<base::MessageLoop> message_loop_; |
MockMemoryCoordinatorHandle coordinator_handle_; |
@@ -159,6 +172,18 @@ TEST_F(ChildMemoryCoordinatorImplTest, MultipleClients) { |
t2.Stop(); |
} |
+#if defined(OS_ANDROID) |
+TEST_F(ChildMemoryCoordinatorImplTest, OnTrimMemoryImmediately) { |
+ // TRIM_MEMORY_COMPLETE defined in ComponentCallbacks2. |
+ static const int kTrimMemoryComplete = 80; |
+ |
+ ChildMemoryCoordinatorImplAndroid& coordinator_android = |
+ static_cast<ChildMemoryCoordinatorImplAndroid&>(coordinator_impl()); |
+ coordinator_android.OnTrimMemory(kTrimMemoryComplete); |
+ EXPECT_EQ(true, on_trim_memory_called_); |
+} |
+#endif // defined(OS_ANDROID) |
+ |
} // namespace |
} // namespace memory_coordinator |