Commit 35a9e4a0 authored by Xing Liu's avatar Xing Liu Committed by Commit Bot

Query tiles: Clean up TileManagerTest.

This CL does a minor clean up for TileManagerTest.

Bug: 1078163
Change-Id: I453c8aab836ad09a5cb97f360cee16d379f695cc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2212514Reviewed-by: default avatarHesen Zhang <hesen@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Commit-Queue: Xing Liu <xingliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#771875}
parent 47c63a4d
...@@ -16,9 +16,9 @@ ...@@ -16,9 +16,9 @@
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
using testing::_; using ::testing::_;
using testing::Invoke; using ::testing::Invoke;
using testing::StrictMock; using ::testing::StrictMock;
namespace query_tiles { namespace query_tiles {
namespace { namespace {
...@@ -28,10 +28,17 @@ const char kGuid[] = "awesome_guid"; ...@@ -28,10 +28,17 @@ const char kGuid[] = "awesome_guid";
class MockTileStore : public Store<TileGroup> { class MockTileStore : public Store<TileGroup> {
public: public:
MockTileStore() = default; MockTileStore() = default;
MOCK_METHOD1(InitAndLoad, void(TileStore::LoadCallback)); ~MockTileStore() override = default;
MOCK_METHOD3(Update,
void(const std::string&, const TileGroup&, UpdateCallback)); MOCK_METHOD(void, InitAndLoad, (TileStore::LoadCallback), (override));
MOCK_METHOD2(Delete, void(const std::string&, TileStore::DeleteCallback)); MOCK_METHOD(void,
Update,
(const std::string&, const TileGroup&, UpdateCallback),
(override));
MOCK_METHOD(void,
Delete,
(const std::string&, TileStore::DeleteCallback),
(override));
}; };
class TileManagerTest : public testing::Test { class TileManagerTest : public testing::Test {
...@@ -51,17 +58,14 @@ class TileManagerTest : public testing::Test { ...@@ -51,17 +58,14 @@ class TileManagerTest : public testing::Test {
manager_ = TileManager::Create(std::move(tile_store), &clock_, "en-US"); manager_ = TileManager::Create(std::move(tile_store), &clock_, "en-US");
} }
// Initial and load entries from store_, compare the |expected_status| to the // Initialize the store, compare the |expected_status| to the
// actual returned status. // actual returned status.
void Init(TileGroupStatus expected_status) { void Init(TileGroupStatus expected_status, bool success = true) {
base::RunLoop loop; InitWithData(expected_status, std::vector<TileGroup>(), success);
manager()->Init(base::BindOnce(&TileManagerTest::OnInitCompleted,
base::Unretained(this), loop.QuitClosure(),
expected_status));
loop.Run();
} }
// TODO(crbug.com/1078163): Replace Init() with InitWithData. // Initialize the store and load |groups|, compare the |expected_status| to
// the actual returned status.
void InitWithData(TileGroupStatus expected_status, void InitWithData(TileGroupStatus expected_status,
std::vector<TileGroup> groups, std::vector<TileGroup> groups,
bool success = true) { bool success = true) {
...@@ -175,13 +179,7 @@ class TileManagerTest : public testing::Test { ...@@ -175,13 +179,7 @@ class TileManagerTest : public testing::Test {
}; };
TEST_F(TileManagerTest, InitAndLoadWithDbOperationFailed) { TEST_F(TileManagerTest, InitAndLoadWithDbOperationFailed) {
EXPECT_CALL(*tile_store(), InitAndLoad(_)) Init(TileGroupStatus::kFailureDbOperation, false /*success*/);
.WillOnce(Invoke([](base::OnceCallback<void(
bool, MockTileStore::KeysAndEntries)> callback) {
std::move(callback).Run(false, MockTileStore::KeysAndEntries());
}));
Init(TileGroupStatus::kFailureDbOperation);
GetTiles(std::vector<Tile>() /*expect an empty result*/); GetTiles(std::vector<Tile>() /*expect an empty result*/);
} }
...@@ -222,15 +220,9 @@ TEST_F(TileManagerTest, InitAndLoadSuccess) { ...@@ -222,15 +220,9 @@ TEST_F(TileManagerTest, InitAndLoadSuccess) {
// Failed to init an empty db, and save tiles call failed because of db is // Failed to init an empty db, and save tiles call failed because of db is
// uninitialized. GetTiles should return empty result. // uninitialized. GetTiles should return empty result.
TEST_F(TileManagerTest, SaveTilesWhenUnintialized) { TEST_F(TileManagerTest, SaveTilesWhenUnintialized) {
EXPECT_CALL(*tile_store(), InitAndLoad(_))
.WillOnce(Invoke([](base::OnceCallback<void(
bool, MockTileStore::KeysAndEntries)> callback) {
std::move(callback).Run(false, MockTileStore::KeysAndEntries());
}));
EXPECT_CALL(*tile_store(), Update(_, _, _)).Times(0); EXPECT_CALL(*tile_store(), Update(_, _, _)).Times(0);
EXPECT_CALL(*tile_store(), Delete(_, _)).Times(0); EXPECT_CALL(*tile_store(), Delete(_, _)).Times(0);
Init(TileGroupStatus::kFailureDbOperation, false /*success*/);
Init(TileGroupStatus::kFailureDbOperation);
auto tile_to_save = std::make_unique<Tile>(); auto tile_to_save = std::make_unique<Tile>();
test::ResetTestEntry(tile_to_save.get()); test::ResetTestEntry(tile_to_save.get());
...@@ -244,18 +236,12 @@ TEST_F(TileManagerTest, SaveTilesWhenUnintialized) { ...@@ -244,18 +236,12 @@ TEST_F(TileManagerTest, SaveTilesWhenUnintialized) {
// Init with empty db successfully, and save tiles failed because of db // Init with empty db successfully, and save tiles failed because of db
// operation failed. GetTiles should return empty result. // operation failed. GetTiles should return empty result.
TEST_F(TileManagerTest, SaveTilesFailed) { TEST_F(TileManagerTest, SaveTilesFailed) {
EXPECT_CALL(*tile_store(), InitAndLoad(_))
.WillOnce(Invoke([](base::OnceCallback<void(
bool, MockTileStore::KeysAndEntries)> callback) {
std::move(callback).Run(true, MockTileStore::KeysAndEntries());
}));
EXPECT_CALL(*tile_store(), Update(_, _, _)) EXPECT_CALL(*tile_store(), Update(_, _, _))
.WillOnce(Invoke([](const std::string& id, const TileGroup& group, .WillOnce(Invoke([](const std::string& id, const TileGroup& group,
MockTileStore::UpdateCallback callback) { MockTileStore::UpdateCallback callback) {
std::move(callback).Run(false); std::move(callback).Run(false);
})); }));
EXPECT_CALL(*tile_store(), Delete(_, _)).Times(0); EXPECT_CALL(*tile_store(), Delete(_, _)).Times(0);
Init(TileGroupStatus::kNoTiles); Init(TileGroupStatus::kNoTiles);
auto tile_to_save = std::make_unique<Tile>(); auto tile_to_save = std::make_unique<Tile>();
...@@ -270,18 +256,12 @@ TEST_F(TileManagerTest, SaveTilesFailed) { ...@@ -270,18 +256,12 @@ TEST_F(TileManagerTest, SaveTilesFailed) {
// Init with empty db successfully, and save tiles successfully. GetTiles should // Init with empty db successfully, and save tiles successfully. GetTiles should
// return the recent saved tiles, and no Delete call is executed. // return the recent saved tiles, and no Delete call is executed.
TEST_F(TileManagerTest, SaveTilesSuccess) { TEST_F(TileManagerTest, SaveTilesSuccess) {
EXPECT_CALL(*tile_store(), InitAndLoad(_))
.WillOnce(Invoke([](base::OnceCallback<void(
bool, MockTileStore::KeysAndEntries)> callback) {
std::move(callback).Run(true, MockTileStore::KeysAndEntries());
}));
EXPECT_CALL(*tile_store(), Update(_, _, _)) EXPECT_CALL(*tile_store(), Update(_, _, _))
.WillOnce(Invoke([](const std::string& id, const TileGroup& group, .WillOnce(Invoke([](const std::string& id, const TileGroup& group,
MockTileStore::UpdateCallback callback) { MockTileStore::UpdateCallback callback) {
std::move(callback).Run(true); std::move(callback).Run(true);
})); }));
EXPECT_CALL(*tile_store(), Delete(_, _)).Times(0); EXPECT_CALL(*tile_store(), Delete(_, _)).Times(0);
Init(TileGroupStatus::kNoTiles); Init(TileGroupStatus::kNoTiles);
auto tile_to_save = std::make_unique<Tile>(); auto tile_to_save = std::make_unique<Tile>();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment