| Index: content/browser/memory/memory_monitor_android_unittest.cc
|
| diff --git a/content/browser/memory/memory_monitor_android_unittest.cc b/content/browser/memory/memory_monitor_android_unittest.cc
|
| index bb6e85c2da73469e6c8f4719864959e5f92923b0..7c62d5f16879e08010d0032bd30f2aefca3c9ece 100644
|
| --- a/content/browser/memory/memory_monitor_android_unittest.cc
|
| +++ b/content/browser/memory/memory_monitor_android_unittest.cc
|
| @@ -4,16 +4,50 @@
|
|
|
| #include "content/browser/memory/memory_monitor_android.h"
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace content {
|
|
|
| +class MockMemoryMonitorAndroidDelegate : public MemoryMonitorAndroid::Delegate {
|
| + public:
|
| + MockMemoryMonitorAndroidDelegate() {}
|
| + ~MockMemoryMonitorAndroidDelegate() override {}
|
| +
|
| + using MemoryInfo = MemoryMonitorAndroid::MemoryInfo;
|
| +
|
| + void SetMemoryInfo(const MemoryInfo& info) {
|
| + memcpy(&memory_info_, &info, sizeof(memory_info_));
|
| + }
|
| +
|
| + void GetMemoryInfo(MemoryInfo* out) override {
|
| + memcpy(out, &memory_info_, sizeof(memory_info_));
|
| + }
|
| +
|
| + private:
|
| + MemoryInfo memory_info_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(MockMemoryMonitorAndroidDelegate);
|
| +};
|
| +
|
| class MemoryMonitorAndroidTest : public testing::Test {
|
| public:
|
| - MemoryMonitorAndroidTest() : monitor_(MemoryMonitorAndroid::Create()) {}
|
| + MemoryMonitorAndroidTest() : monitor_(MemoryMonitorAndroid::Create()) {
|
| + auto mock_delegate = base::WrapUnique(new MockMemoryMonitorAndroidDelegate);
|
| + mocked_monitor_.reset(
|
| + new MemoryMonitorAndroid(std::move(mock_delegate)));
|
| + }
|
|
|
| protected:
|
| + static const int kMBShift = 20;
|
| +
|
| + MockMemoryMonitorAndroidDelegate* mock_delegate() {
|
| + return static_cast<MockMemoryMonitorAndroidDelegate*>(
|
| + mocked_monitor_->delegate());
|
| + }
|
| +
|
| std::unique_ptr<MemoryMonitorAndroid> monitor_;
|
| + std::unique_ptr<MemoryMonitorAndroid> mocked_monitor_;
|
| };
|
|
|
| TEST_F(MemoryMonitorAndroidTest, GetMemoryInfo) {
|
| @@ -24,4 +58,15 @@ TEST_F(MemoryMonitorAndroidTest, GetMemoryInfo) {
|
| EXPECT_GT(info.total_mem, 0);
|
| }
|
|
|
| +TEST_F(MemoryMonitorAndroidTest, GetFreeMemoryUntilCriticalMB) {
|
| + MemoryMonitorAndroid::MemoryInfo info = {
|
| + .avail_mem = 100 << kMBShift,
|
| + .low_memory = false,
|
| + .threshold = 80 << kMBShift,
|
| + .total_mem = 150 << kMBShift,
|
| + };
|
| + mock_delegate()->SetMemoryInfo(info);
|
| + EXPECT_EQ(20, mocked_monitor_->GetFreeMemoryUntilCriticalMB());
|
| +}
|
| +
|
| } // namespace content
|
|
|