Index: components/offline_pages/offline_page_model_query_unittest.cc |
diff --git a/components/offline_pages/offline_page_model_query_unittest.cc b/components/offline_pages/offline_page_model_query_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3a7b5c9aef9ded2de8fc9d22ba3a3edc3dab1b24 |
--- /dev/null |
+++ b/components/offline_pages/offline_page_model_query_unittest.cc |
@@ -0,0 +1,72 @@ |
+// Copyright 2016 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/offline_pages/offline_page_model_query.h" |
+#include "components/offline_pages/client_policy_controller.h" |
+ |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace offline_pages { |
+ |
+class OfflinePageModelQueryTest : public testing::Test { |
+ public: |
+ OfflinePageModelQueryTest(); |
+ ~OfflinePageModelQueryTest() override; |
+ |
+ protected: |
+ ClientPolicyController policy_; |
+ OfflinePageModelQueryBuilder builder_; |
+}; |
+ |
+OfflinePageModelQueryTest::OfflinePageModelQueryTest() : builder_(&policy_) {} |
+ |
+OfflinePageModelQueryTest::~OfflinePageModelQueryTest() {} |
+ |
+TEST_F(OfflinePageModelQueryTest, DefaultValues) { |
+ std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(); |
+ |
+ ASSERT_NE(nullptr, query.get()); |
+ ASSERT_FALSE(query->GetAllowExpired()); |
+ ASSERT_FALSE(query->GetRestrictedToOfflineIds(nullptr)); |
+ ASSERT_FALSE(query->GetRestrictedToNamespaces(nullptr)); |
+} |
+ |
+TEST_F(OfflinePageModelQueryTest, OfflinePageIdsSet) { |
+ std::vector<int64_t> ids = {1, 4, 9, 16}; |
+ builder_.SetOfflinePageIds(ids); |
+ |
+ std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(); |
+ std::set<int64_t> ids_out; |
+ ASSERT_TRUE(query->GetRestrictedToOfflineIds(&ids_out)); |
+ |
+ ASSERT_EQ(ids.size(), ids_out.size()); |
+ for (auto id : ids) { |
+ ASSERT_EQ(1U, ids_out.count(id)) << "Did not find " << id |
+ << "in query restrictions."; |
+ } |
+} |
+ |
+TEST_F(OfflinePageModelQueryTest, OfflinePageIdsIntersect) { |
+ std::vector<int64_t> ids = {1, 4, 9, 16}; |
+ std::vector<int64_t> ids2 = {1, 2, 3, 4}; |
+ |
+ builder_.SetOfflinePageIds(ids); |
+ builder_.SetOfflinePageIds(ids2); |
+ |
+ std::vector<int64_t> expected = {1, 4}; |
+ |
+ std::unique_ptr<OfflinePageModelQuery> query = builder_.Build(); |
+ std::set<int64_t> ids_out; |
+ ASSERT_TRUE(query->GetRestrictedToOfflineIds(&ids_out)); |
+ |
+ ASSERT_EQ(expected.size(), ids_out.size()); |
+ for (auto id : expected) { |
+ ASSERT_EQ(1U, ids_out.count(id)) << "Did not find " << id |
+ << "in query restrictions."; |
+ } |
+} |
+ |
+TEST_F(OfflinePageModelQueryTest, FooTest) {} |
+ |
+} // namespace offline_pages |