tile_iterator_unittest.cc 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/query_tiles/internal/tile_iterator.h"
  5. #include <string>
  6. #include <vector>
  7. #include "components/query_tiles/internal/tile_group.h"
  8. #include "components/query_tiles/test/test_utils.h"
  9. #include "components/query_tiles/tile.h"
  10. #include "testing/gtest/include/gtest/gtest.h"
  11. namespace query_tiles {
  12. TEST(TileIteratorTest, EmtpyTileIterator) {
  13. TileIterator it(std::vector<const Tile*>(), TileIterator::kAllTiles);
  14. EXPECT_FALSE(it.HasNext());
  15. EXPECT_FALSE(it.Next());
  16. }
  17. TEST(TileIteratorTest, EmtpyTileGroup) {
  18. TileGroup group;
  19. TileIterator it(group, TileIterator::kAllTiles);
  20. EXPECT_FALSE(it.HasNext());
  21. EXPECT_FALSE(it.Next());
  22. }
  23. TEST(TileIteratorTest, TileIterateAllNodes) {
  24. Tile tile;
  25. test::ResetTestEntry(&tile);
  26. TileIterator it({&tile}, TileIterator::kAllTiles);
  27. // Root level.
  28. EXPECT_TRUE(it.HasNext());
  29. EXPECT_EQ(it.Next()->id, "guid-1-1");
  30. // Level 1 tiles.
  31. EXPECT_TRUE(it.HasNext());
  32. EXPECT_EQ(it.Next()->id, "guid-2-1");
  33. EXPECT_TRUE(it.HasNext());
  34. EXPECT_EQ(it.Next()->id, "guid-2-2");
  35. // Level 2 tiles.
  36. EXPECT_TRUE(it.HasNext());
  37. EXPECT_EQ(it.Next()->id, "guid-3-1");
  38. EXPECT_FALSE(it.HasNext());
  39. EXPECT_FALSE(it.Next());
  40. }
  41. TEST(TileIteratorTest, TileIterateOnlyRoot) {
  42. Tile tile;
  43. test::ResetTestEntry(&tile);
  44. TileIterator it({&tile}, 0);
  45. EXPECT_TRUE(it.HasNext());
  46. EXPECT_EQ(it.Next()->id, "guid-1-1");
  47. EXPECT_FALSE(it.HasNext());
  48. EXPECT_FALSE(it.Next());
  49. }
  50. TEST(TileIteratorTest, TileIterateWithLevel) {
  51. Tile tile;
  52. test::ResetTestEntry(&tile);
  53. TileIterator it({&tile}, 1);
  54. // Root level.
  55. EXPECT_TRUE(it.HasNext());
  56. EXPECT_EQ(it.Next()->id, "guid-1-1");
  57. // Level 1 tiles.
  58. EXPECT_TRUE(it.HasNext());
  59. EXPECT_EQ(it.Next()->id, "guid-2-1");
  60. EXPECT_TRUE(it.HasNext());
  61. EXPECT_EQ(it.Next()->id, "guid-2-2");
  62. EXPECT_FALSE(it.HasNext());
  63. EXPECT_FALSE(it.Next());
  64. }
  65. TEST(TileIteratorTest, TileGroupIterate) {
  66. TileGroup group;
  67. test::ResetTestGroup(&group);
  68. TileIterator it(group, 1);
  69. // Root level tiles.
  70. EXPECT_TRUE(it.HasNext());
  71. EXPECT_EQ(it.Next()->id, "guid-1-1");
  72. EXPECT_TRUE(it.HasNext());
  73. EXPECT_EQ(it.Next()->id, "guid-1-2");
  74. EXPECT_TRUE(it.HasNext());
  75. EXPECT_EQ(it.Next()->id, "guid-1-3");
  76. // Level 1 tiles.
  77. EXPECT_TRUE(it.HasNext());
  78. EXPECT_EQ(it.Next()->id, "guid-2-1");
  79. EXPECT_TRUE(it.HasNext());
  80. EXPECT_EQ(it.Next()->id, "guid-2-2");
  81. EXPECT_TRUE(it.HasNext());
  82. EXPECT_EQ(it.Next()->id, "guid-1-4");
  83. EXPECT_FALSE(it.HasNext());
  84. EXPECT_FALSE(it.Next());
  85. }
  86. } // namespace query_tiles