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

Side by Side Diff: components/download/internal/proto_conversions_unittest.cc

Issue 2881173003: Download Service : Added leveldb proto layer (Closed)
Patch Set: More unittests Created 3 years, 7 months 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 2017 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 <utility>
6
7 #include "base/guid.h"
8 #include "base/memory/ptr_util.h"
9 #include "components/download/internal/entry.h"
10 #include "components/download/internal/proto/request.pb.h"
11 #include "components/download/internal/proto_conversions.h"
12 #include "components/download/internal/test/entry_utils.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace {
16 std::string TEST_URL = "https://google.com";
17
18 } // namespace
19
20 namespace download {
21
22 class ProtoConversionsTest : public testing::Test, public ProtoConversions {
23 public:
24 ~ProtoConversionsTest() override {}
25 };
26
27 TEST_F(ProtoConversionsTest, StateConversion) {
28 Entry::State states[] = {Entry::State::NEW, Entry::State::AVAILABLE,
29 Entry::State::ACTIVE, Entry::State::PAUSED,
30 Entry::State::COMPLETE, Entry::State::WATCHDOG};
31 for (auto state : states) {
32 ASSERT_EQ(state, RequestStateFromProto(RequestStateToProto(state)));
33 }
34 }
35
36 TEST_F(ProtoConversionsTest, DownloadClientConversion) {
37 DownloadClient clients[] = {DownloadClient::INVALID, DownloadClient::TEST,
38 DownloadClient::OFFLINE_PAGE_PREFETCH,
39 DownloadClient::BOUNDARY};
40 for (auto client : clients) {
41 ASSERT_EQ(client, DownloadClientFromProto(DownloadClientToProto(client)));
42 }
43 }
44
45 TEST_F(ProtoConversionsTest, NetworkRequirementsConversion) {
46 SchedulingParams::NetworkRequirements values[] = {
47 SchedulingParams::NetworkRequirements::NONE,
48 SchedulingParams::NetworkRequirements::OPTIMISTIC,
49 SchedulingParams::NetworkRequirements::UNMETERED};
50 for (auto value : values) {
51 ASSERT_EQ(value,
52 NetworkRequirementsFromProto(NetworkRequirementsToProto(value)));
53 }
54 }
55
56 TEST_F(ProtoConversionsTest, BatteryRequirementsConversion) {
57 SchedulingParams::BatteryRequirements values[] = {
58 SchedulingParams::BatteryRequirements::BATTERY_INSENSITIVE,
59 SchedulingParams::BatteryRequirements::BATTERY_SENSITIVE};
60 for (auto value : values) {
61 ASSERT_EQ(value,
62 BatteryRequirementsFromProto(BatteryRequirementsToProto(value)));
63 }
64 }
65
66 TEST_F(ProtoConversionsTest, SchedulingPriorityConversion) {
67 SchedulingParams::Priority values[] = {
68 SchedulingParams::Priority::LOW, SchedulingParams::Priority::NORMAL,
69 SchedulingParams::Priority::HIGH, SchedulingParams::Priority::UI,
70 SchedulingParams::Priority::DEFAULT};
71 for (auto value : values) {
72 ASSERT_EQ(value,
73 SchedulingPriorityFromProto(SchedulingPriorityToProto(value)));
74 }
75 }
76
77 TEST_F(ProtoConversionsTest, SchedulingParamsConversion) {
78 SchedulingParams expected;
79 expected.cancel_time = base::Time::Now();
80 expected.priority = SchedulingParams::Priority::DEFAULT;
81 expected.network_requirements =
82 SchedulingParams::NetworkRequirements::OPTIMISTIC;
83 expected.battery_requirements =
84 SchedulingParams::BatteryRequirements::BATTERY_SENSITIVE;
85
86 protodb::SchedulingParams proto;
87 SchedulingParamsToProto(expected, &proto);
88 SchedulingParams actual = SchedulingParamsFromProto(proto);
89 EXPECT_EQ(expected.cancel_time, actual.cancel_time);
90 EXPECT_EQ(SchedulingParams::Priority::DEFAULT, actual.priority);
91 EXPECT_EQ(SchedulingParams::NetworkRequirements::OPTIMISTIC,
92 actual.network_requirements);
93 EXPECT_EQ(SchedulingParams::BatteryRequirements::BATTERY_SENSITIVE,
94 actual.battery_requirements);
95 }
96
97 TEST_F(ProtoConversionsTest, RequestParamsWithHeadersConversion) {
98 RequestParams expected;
99 expected.url = GURL(TEST_URL);
100 expected.method = "GET";
101 expected.request_headers.SetHeader("key1", "value1");
102 expected.request_headers.SetHeader("key2", "value2");
103
104 protodb::RequestParams proto;
105 RequestParamsToProto(expected, &proto);
106 RequestParams actual = RequestParamsFromProto(proto);
107
108 EXPECT_EQ(expected.url, actual.url);
109 EXPECT_EQ(expected.method, actual.method);
110
111 std::string out;
112 actual.request_headers.GetHeader("key1", &out);
113 EXPECT_EQ("value1", out);
114 actual.request_headers.GetHeader("key2", &out);
115 EXPECT_EQ("value2", out);
116 EXPECT_EQ(expected.request_headers.ToString(),
117 actual.request_headers.ToString());
118 }
119
120 TEST_F(ProtoConversionsTest, EntryConversion) {
121 Entry expected = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
122 Entry actual = EntryFromProto(EntryToProto(expected));
123 EXPECT_TRUE(test::SuperficialEntryCompare(&expected, &actual));
124
125 expected = test::BuildEntry(
126 DownloadClient::TEST, base::GenerateGUID(), base::Time::Now(),
127 SchedulingParams::NetworkRequirements::OPTIMISTIC,
128 SchedulingParams::BatteryRequirements::BATTERY_SENSITIVE,
129 SchedulingParams::Priority::HIGH, GURL(TEST_URL), "GET",
130 Entry::State::ACTIVE);
131 actual = EntryFromProto(EntryToProto(expected));
132 EXPECT_TRUE(test::SuperficialEntryCompare(&expected, &actual));
133 }
134
135 TEST_F(ProtoConversionsTest, EntryVectorConversion) {
136 std::vector<Entry> expected;
137 expected.push_back(
138 test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()));
139 expected.push_back(test::BuildEntry(DownloadClient::OFFLINE_PAGE_PREFETCH,
140 base::GenerateGUID()));
141 expected.push_back(test::BuildEntry(
142 DownloadClient::TEST, base::GenerateGUID(), base::Time::Now(),
143 SchedulingParams::NetworkRequirements::OPTIMISTIC,
144 SchedulingParams::BatteryRequirements::BATTERY_SENSITIVE,
145 SchedulingParams::Priority::HIGH, GURL(TEST_URL), "GET",
146 Entry::State::ACTIVE));
147
148 auto actual = EntryVectorFromProto(
149 EntryVectorToProto(base::MakeUnique<std::vector<Entry>>(expected)));
150 EXPECT_TRUE(test::CompareEntryList(expected, *actual));
151 }
152
153 } // namespace download
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698