Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: components/offline_pages/background/get_requests_task_unittest.cc

Issue 2489443002: Move all components/offline_pages/ files into component/offline_pages/core (Closed)
Patch Set: rebase Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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/offline_pages/background/get_requests_task.h"
6
7 #include <memory>
8
9 #include "base/bind.h"
10 #include "base/test/test_simple_task_runner.h"
11 #include "base/threading/thread_task_runner_handle.h"
12 #include "components/offline_pages/background/request_queue_in_memory_store.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace offline_pages {
16 namespace {
17 const int64_t kRequestId1 = 42;
18 const int64_t kRequestId2 = 44;
19 const GURL kUrl1("http://example.com");
20 const GURL kUrl2("http://otherexample.com");
21 const ClientId kClientId1("download", "1234");
22 const ClientId kClientId2("download", "5678");
23 } // namespace
24
25 class GetRequestsTaskTest : public testing::Test {
26 public:
27 GetRequestsTaskTest();
28 ~GetRequestsTaskTest() override;
29
30 void PumpLoop();
31
32 void InitializeStore(RequestQueueStore* store);
33 void AddItemsToStore(RequestQueueStore* store);
34 void GetRequestsCallback(
35 bool success,
36 std::vector<std::unique_ptr<SavePageRequest>> requests);
37
38 bool callback_called() const { return callback_called_; }
39
40 bool last_call_successful() const { return success_; }
41
42 const std::vector<std::unique_ptr<SavePageRequest>>& last_requests() const {
43 return requests_;
44 }
45
46 private:
47 void InitializeStoreDone(bool success);
48 void AddRequestDone(ItemActionStatus status);
49
50 bool callback_called_;
51 bool success_;
52 std::vector<std::unique_ptr<SavePageRequest>> requests_;
53 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
54 base::ThreadTaskRunnerHandle task_runner_handle_;
55 };
56
57 GetRequestsTaskTest::GetRequestsTaskTest()
58 : callback_called_(false),
59 success_(false),
60 task_runner_(new base::TestSimpleTaskRunner),
61 task_runner_handle_(task_runner_) {}
62
63 GetRequestsTaskTest::~GetRequestsTaskTest() {}
64
65 void GetRequestsTaskTest::PumpLoop() {
66 task_runner_->RunUntilIdle();
67 }
68
69 void GetRequestsTaskTest::InitializeStore(RequestQueueStore* store) {
70 store->Initialize(base::Bind(&GetRequestsTaskTest::InitializeStoreDone,
71 base::Unretained(this)));
72 PumpLoop();
73 }
74
75 void GetRequestsTaskTest::AddItemsToStore(RequestQueueStore* store) {
76 base::Time creation_time = base::Time::Now();
77 SavePageRequest request_1(kRequestId1, kUrl1, kClientId1, creation_time,
78 true);
79 store->AddRequest(request_1, base::Bind(&GetRequestsTaskTest::AddRequestDone,
80 base::Unretained(this)));
81 creation_time = base::Time::Now();
82 SavePageRequest request_2(kRequestId2, kUrl2, kClientId2, creation_time,
83 true);
84 store->AddRequest(request_2, base::Bind(&GetRequestsTaskTest::AddRequestDone,
85 base::Unretained(this)));
86 PumpLoop();
87 }
88
89 void GetRequestsTaskTest::GetRequestsCallback(
90 bool success,
91 std::vector<std::unique_ptr<SavePageRequest>> requests) {
92 callback_called_ = true;
93 success_ = success;
94 requests_ = std::move(requests);
95 }
96
97 void GetRequestsTaskTest::InitializeStoreDone(bool success) {
98 ASSERT_TRUE(success);
99 }
100
101 void GetRequestsTaskTest::AddRequestDone(ItemActionStatus status) {
102 ASSERT_EQ(ItemActionStatus::SUCCESS, status);
103 }
104
105 TEST_F(GetRequestsTaskTest, GetFromEmptyStore) {
106 RequestQueueInMemoryStore store;
107 InitializeStore(&store);
108 GetRequestsTask task(&store,
109 base::Bind(&GetRequestsTaskTest::GetRequestsCallback,
110 base::Unretained(this)));
111 task.Run();
112 PumpLoop();
113 EXPECT_TRUE(callback_called());
114 EXPECT_TRUE(last_call_successful());
115 EXPECT_TRUE(last_requests().empty());
116 }
117
118 TEST_F(GetRequestsTaskTest, GetMultipleRequests) {
119 RequestQueueInMemoryStore store;
120 InitializeStore(&store);
121 AddItemsToStore(&store);
122
123 GetRequestsTask task(&store,
124 base::Bind(&GetRequestsTaskTest::GetRequestsCallback,
125 base::Unretained(this)));
126 task.Run();
127 PumpLoop();
128 EXPECT_TRUE(callback_called());
129 EXPECT_TRUE(last_call_successful());
130 ASSERT_EQ(2UL, last_requests().size());
131
132 int id_1_index = last_requests().at(0)->request_id() == kRequestId1 ? 0 : 1;
133 int id_2_index = 1 - id_1_index;
134 EXPECT_EQ(kRequestId1, last_requests().at(id_1_index)->request_id());
135 EXPECT_EQ(kRequestId2, last_requests().at(id_2_index)->request_id());
136 }
137
138 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/get_requests_task.cc ('k') | components/offline_pages/background/initialize_store_task.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698