// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/query_tiles/tile.h" #include #include "base/test/task_environment.h" #include "components/query_tiles/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" namespace query_tiles { namespace { TEST(TileTest, CompareOperators) { Tile lhs, rhs; test::ResetTestEntry(&lhs); test::ResetTestEntry(&rhs); EXPECT_EQ(lhs, rhs); EXPECT_FALSE(lhs != rhs); rhs.id = "changed"; EXPECT_NE(lhs, rhs); test::ResetTestEntry(&rhs); rhs.query_text = "changed"; EXPECT_NE(lhs, rhs); test::ResetTestEntry(&rhs); rhs.display_text = "changed"; EXPECT_NE(lhs, rhs); test::ResetTestEntry(&rhs); rhs.accessibility_text = "changed"; EXPECT_NE(lhs, rhs); test::ResetTestEntry(&rhs); rhs.search_params = {"xyz=1"}; EXPECT_NE(lhs, rhs); test::ResetTestEntry(&rhs); } TEST(TileTest, DeepComparison) { Tile lhs, rhs; test::ResetTestEntry(&lhs); test::ResetTestEntry(&rhs); EXPECT_TRUE(test::AreTilesIdentical(lhs, rhs)); // Test image metadatas changed. rhs.image_metadatas.front().url = GURL("http://www.url-changed.com"); EXPECT_FALSE(test::AreTilesIdentical(lhs, rhs)); test::ResetTestEntry(&rhs); rhs.image_metadatas.pop_back(); EXPECT_FALSE(test::AreTilesIdentical(lhs, rhs)); test::ResetTestEntry(&rhs); rhs.image_metadatas.emplace_back(ImageMetadata()); EXPECT_FALSE(test::AreTilesIdentical(lhs, rhs)); test::ResetTestEntry(&rhs); std::reverse(rhs.image_metadatas.begin(), rhs.image_metadatas.end()); EXPECT_TRUE(test::AreTilesIdentical(lhs, rhs)); test::ResetTestEntry(&rhs); // Test children changed. rhs.sub_tiles.front()->id = "changed"; EXPECT_FALSE(test::AreTilesIdentical(lhs, rhs)); test::ResetTestEntry(&rhs); rhs.sub_tiles.pop_back(); EXPECT_FALSE(test::AreTilesIdentical(lhs, rhs)); test::ResetTestEntry(&rhs); rhs.sub_tiles.emplace_back(std::make_unique()); EXPECT_FALSE(test::AreTilesIdentical(lhs, rhs)); test::ResetTestEntry(&rhs); std::reverse(rhs.sub_tiles.begin(), rhs.sub_tiles.end()); EXPECT_TRUE(test::AreTilesIdentical(lhs, rhs)); } TEST(TileTest, CopyOperator) { Tile lhs; test::ResetTestEntry(&lhs); Tile rhs(lhs); EXPECT_TRUE(test::AreTilesIdentical(lhs, rhs)); } TEST(TileTest, AssignOperator) { Tile lhs; test::ResetTestEntry(&lhs); Tile rhs = lhs; EXPECT_TRUE(test::AreTilesIdentical(lhs, rhs)); } TEST(TileTest, MoveOperator) { Tile lhs; test::ResetTestEntry(&lhs); Tile rhs = std::move(lhs); Tile expected; test::ResetTestEntry(&expected); EXPECT_TRUE(test::AreTilesIdentical(expected, rhs)); } } // namespace } // namespace query_tiles