1 // Copyright 2016 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
5 #include "components/ntp_snippets/offline_pages/offline_pages_test_utils.h"
6
7 #include <iterator>
8 #include <string>
9 #include <utility>
10 #include <vector>
11
12 #include "base/guid.h"
13 #include "base/strings/string_number_conversions.h"
14 #include "base/strings/utf_string_conversions.h"
15
16 using offline_pages::ClientId;
17 using offline_pages::MultipleOfflinePageItemCallback;
18 using offline_pages::OfflinePageItem;
19 using offline_pages::PageCriteria;
20 using offline_pages::StubOfflinePageModel;
21
22 namespace ntp_snippets {
23 namespace test {
24
25 FakeOfflinePageModel::FakeOfflinePageModel() = default;
26
27 FakeOfflinePageModel::~FakeOfflinePageModel() = default;
28
GetAllPages(MultipleOfflinePageItemCallback callback)29 void FakeOfflinePageModel::GetAllPages(
30 MultipleOfflinePageItemCallback callback) {
31 std::move(callback).Run(items_);
32 }
33
GetPagesWithCriteria(const PageCriteria & criteria,MultipleOfflinePageItemCallback callback)34 void FakeOfflinePageModel::GetPagesWithCriteria(
35 const PageCriteria& criteria,
36 MultipleOfflinePageItemCallback callback) {
37 MultipleOfflinePageItemResult filtered_result;
38 for (auto& item : items_) {
39 if (offline_pages::MeetsCriteria(criteria, item))
40 filtered_result.emplace_back(item);
41 }
42 std::move(callback).Run(filtered_result);
43 }
44
items()45 const std::vector<OfflinePageItem>& FakeOfflinePageModel::items() {
46 return items_;
47 }
48
mutable_items()49 std::vector<OfflinePageItem>* FakeOfflinePageModel::mutable_items() {
50 return &items_;
51 }
52
CreateDummyOfflinePageItem(int id,const offline_pages::ClientId & client_id)53 OfflinePageItem CreateDummyOfflinePageItem(
54 int id,
55 const offline_pages::ClientId& client_id) {
56 std::string id_string = base::NumberToString(id);
57 return OfflinePageItem(
58 GURL("http://dummy.com/" + id_string), id, client_id,
59 base::FilePath::FromUTF8Unsafe("some/folder/test" + id_string + ".mhtml"),
60 0, base::Time::Now());
61 }
62
CreateDummyOfflinePageItem(int id,const std::string & name_space)63 OfflinePageItem CreateDummyOfflinePageItem(int id,
64 const std::string& name_space) {
65 return CreateDummyOfflinePageItem(id,
66 ClientId(name_space, base::GenerateGUID()));
67 }
68
CaptureDismissedSuggestions(std::vector<ContentSuggestion> * captured_suggestions,std::vector<ContentSuggestion> dismissed_suggestions)69 void CaptureDismissedSuggestions(
70 std::vector<ContentSuggestion>* captured_suggestions,
71 std::vector<ContentSuggestion> dismissed_suggestions) {
72 std::move(dismissed_suggestions.begin(), dismissed_suggestions.end(),
73 std::back_inserter(*captured_suggestions));
74 }
75
76 } // namespace test
77 } // namespace ntp_snippets
78