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

Side by Side Diff: components/precache/core/precache_session_table_unittest.cc

Issue 2229983002: Send the list of used and unused resources for precache (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments, removed timestamp from proto Created 4 years, 4 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "components/precache/core/precache_session_table.h" 9 #include "components/precache/core/precache_session_table.h"
10 #include "components/precache/core/proto/unfinished_work.pb.h" 10 #include "components/precache/core/proto/unfinished_work.pb.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work( 49 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
50 new PrecacheUnfinishedWork()); 50 new PrecacheUnfinishedWork());
51 unfinished_work->add_top_host()->set_hostname("foo.com"); 51 unfinished_work->add_top_host()->set_hostname("foo.com");
52 unfinished_work->add_top_host()->set_hostname("bar.com"); 52 unfinished_work->add_top_host()->set_hostname("bar.com");
53 auto* s = unfinished_work->mutable_config_settings(); 53 auto* s = unfinished_work->mutable_config_settings();
54 s->set_top_sites_count(11); 54 s->set_top_sites_count(11);
55 s->add_forced_site("baz.com"); 55 s->add_forced_site("baz.com");
56 s->set_top_resources_count(12); 56 s->set_top_resources_count(12);
57 s->set_max_bytes_per_resource(501); 57 s->set_max_bytes_per_resource(501);
58 s->set_max_bytes_total(1001); 58 s->set_max_bytes_total(1001);
59 unfinished_work->add_manifest()->set_url("http://a.com/");
60 unfinished_work->add_manifest()->set_url("http://b.com/");
61 unfinished_work->add_manifest()->set_url("http://c.com/");
62 unfinished_work->add_resource()->set_url("http://x.com/"); 59 unfinished_work->add_resource()->set_url("http://x.com/");
63 unfinished_work->add_resource()->set_url("http://y.com/"); 60 unfinished_work->add_resource()->set_url("http://y.com/");
64 unfinished_work->add_resource()->set_url("http://z.com/"); 61 unfinished_work->add_resource()->set_url("http://z.com/");
65 unfinished_work->set_total_bytes(13); 62 unfinished_work->set_total_bytes(13);
66 unfinished_work->set_network_bytes(14); 63 unfinished_work->set_network_bytes(14);
67 unfinished_work->set_num_manifest_urls(15); 64 unfinished_work->set_num_manifest_urls(15);
68 base::Time sometime = base::Time::UnixEpoch(); 65 base::Time sometime = base::Time::UnixEpoch();
69 unfinished_work->set_start_time(sometime.ToInternalValue()); 66 unfinished_work->set_start_time(sometime.ToInternalValue());
70 67
71 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work)); 68 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work));
72 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 = 69 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 =
73 precache_session_table_->GetUnfinishedWork(); 70 precache_session_table_->GetUnfinishedWork();
74 71
72 EXPECT_EQ(2, unfinished_work2->top_host_size());
75 EXPECT_EQ("foo.com", unfinished_work2->top_host(0).hostname()); 73 EXPECT_EQ("foo.com", unfinished_work2->top_host(0).hostname());
76 EXPECT_EQ("bar.com", unfinished_work2->top_host(1).hostname()); 74 EXPECT_EQ("bar.com", unfinished_work2->top_host(1).hostname());
77 EXPECT_EQ(11, unfinished_work2->config_settings().top_sites_count()); 75 EXPECT_EQ(11, unfinished_work2->config_settings().top_sites_count());
78 EXPECT_EQ(1, unfinished_work2->config_settings().forced_site_size()); 76 EXPECT_EQ(1, unfinished_work2->config_settings().forced_site_size());
79 EXPECT_EQ("baz.com", unfinished_work2->config_settings().forced_site(0)); 77 EXPECT_EQ("baz.com", unfinished_work2->config_settings().forced_site(0));
80 EXPECT_EQ(12, unfinished_work2->config_settings().top_resources_count()); 78 EXPECT_EQ(12, unfinished_work2->config_settings().top_resources_count());
81 EXPECT_EQ(501ul, 79 EXPECT_EQ(501ul,
82 unfinished_work2->config_settings().max_bytes_per_resource()); 80 unfinished_work2->config_settings().max_bytes_per_resource());
83 EXPECT_EQ(1001ul, unfinished_work2->config_settings().max_bytes_total()); 81 EXPECT_EQ(1001ul, unfinished_work2->config_settings().max_bytes_total());
84 EXPECT_EQ(3, unfinished_work2->manifest_size());
85 EXPECT_EQ("http://a.com/", unfinished_work2->manifest(0).url());
86 EXPECT_EQ("http://b.com/", unfinished_work2->manifest(1).url());
87 EXPECT_EQ("http://c.com/", unfinished_work2->manifest(2).url());
88 EXPECT_EQ(3, unfinished_work2->resource_size()); 82 EXPECT_EQ(3, unfinished_work2->resource_size());
89 EXPECT_EQ("http://x.com/", unfinished_work2->resource(0).url()); 83 EXPECT_EQ("http://x.com/", unfinished_work2->resource(0).url());
90 EXPECT_EQ("http://y.com/", unfinished_work2->resource(1).url()); 84 EXPECT_EQ("http://y.com/", unfinished_work2->resource(1).url());
91 EXPECT_EQ("http://z.com/", unfinished_work2->resource(2).url()); 85 EXPECT_EQ("http://z.com/", unfinished_work2->resource(2).url());
92 EXPECT_EQ(13ul, unfinished_work2->total_bytes()); 86 EXPECT_EQ(13ul, unfinished_work2->total_bytes());
93 EXPECT_EQ(14ul, unfinished_work2->network_bytes()); 87 EXPECT_EQ(14ul, unfinished_work2->network_bytes());
94 EXPECT_EQ(15ul, unfinished_work2->num_manifest_urls()); 88 EXPECT_EQ(15ul, unfinished_work2->num_manifest_urls());
95 EXPECT_EQ(base::Time::UnixEpoch(), 89 EXPECT_EQ(base::Time::UnixEpoch(),
96 base::Time::FromInternalValue(unfinished_work2->start_time())); 90 base::Time::FromInternalValue(unfinished_work2->start_time()));
97 } 91 }
98 92
99 // Test that storing overwrites previous unfinished work. 93 // Test that storing overwrites previous unfinished work.
100 TEST_F(PrecacheSessionTableTest, SaveAgainAndGet) { 94 TEST_F(PrecacheSessionTableTest, SaveAgainAndGet) {
101 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work( 95 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
102 new PrecacheUnfinishedWork()); 96 new PrecacheUnfinishedWork());
103 unfinished_work->add_manifest()->set_url("http://a.com/"); 97 unfinished_work->add_top_host()->set_hostname("a.com");
104 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work)); 98 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work));
105 99
106 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2( 100 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2(
107 new PrecacheUnfinishedWork()); 101 new PrecacheUnfinishedWork());
108 unfinished_work2->add_manifest()->set_url("http://b.com/"); 102 unfinished_work2->add_top_host()->set_hostname("b.com");
109 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work2)); 103 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work2));
110 104
111 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work3 = 105 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work3 =
112 precache_session_table_->GetUnfinishedWork(); 106 precache_session_table_->GetUnfinishedWork();
113 EXPECT_EQ("http://b.com/", unfinished_work3->manifest(0).url()); 107 EXPECT_EQ("b.com", unfinished_work3->top_host(0).hostname());
114 } 108 }
115 109
116 // Test that reading does not remove unfinished work from storage. 110 // Test that reading does not remove unfinished work from storage.
117 TEST_F(PrecacheSessionTableTest, SaveAndGetAgain) { 111 TEST_F(PrecacheSessionTableTest, SaveAndGetAgain) {
118 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work( 112 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
119 new PrecacheUnfinishedWork()); 113 new PrecacheUnfinishedWork());
120 unfinished_work->add_manifest()->set_url("http://a.com/"); 114 unfinished_work->add_top_host()->set_hostname("a.com");
121 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work)); 115 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work));
122 116
123 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 = 117 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 =
124 precache_session_table_->GetUnfinishedWork(); 118 precache_session_table_->GetUnfinishedWork();
125 119
126 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work3 = 120 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work3 =
127 precache_session_table_->GetUnfinishedWork(); 121 precache_session_table_->GetUnfinishedWork();
128 122
129 EXPECT_EQ("http://a.com/", unfinished_work3->manifest(0).url()); 123 EXPECT_EQ("a.com", unfinished_work3->top_host(0).hostname());
130 } 124 }
131 125
132 // Test that storing a large proto works. 126 // Test that storing a large proto works.
133 TEST_F(PrecacheSessionTableTest, SaveManyURLs) { 127 TEST_F(PrecacheSessionTableTest, SaveManyURLs) {
134 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work( 128 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
135 new PrecacheUnfinishedWork()); 129 new PrecacheUnfinishedWork());
136 for (int i = 0; i < 1000; ++i) 130 for (int i = 0; i < 1000; ++i)
137 unfinished_work->add_manifest()->set_url("http://a.com/"); 131 unfinished_work->add_top_host()->set_hostname("a.com");
138 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work)); 132 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work));
139 133
140 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 = 134 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 =
141 precache_session_table_->GetUnfinishedWork(); 135 precache_session_table_->GetUnfinishedWork();
142 136
143 EXPECT_EQ(1000, unfinished_work2->manifest_size()); 137 EXPECT_EQ(1000, unfinished_work2->top_host_size());
144 for (int i = 0; i < 1000; ++i) 138 for (int i = 0; i < 1000; ++i)
145 EXPECT_EQ("http://a.com/", unfinished_work2->manifest(i).url()); 139 EXPECT_EQ("a.com", unfinished_work2->top_host(i).hostname());
146 } 140 }
147 141
148 // Test that reading after deletion returns no unfinished work. 142 // Test that reading after deletion returns no unfinished work.
149 TEST_F(PrecacheSessionTableTest, SaveDeleteGet) { 143 TEST_F(PrecacheSessionTableTest, SaveDeleteGet) {
150 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work( 144 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
151 new PrecacheUnfinishedWork()); 145 new PrecacheUnfinishedWork());
152 unfinished_work->add_manifest()->set_url("http://a.com/"); 146 unfinished_work->add_top_host()->set_hostname("a.com");
153 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work)); 147 precache_session_table_->SaveUnfinishedWork(std::move(unfinished_work));
154 precache_session_table_->DeleteUnfinishedWork(); 148 precache_session_table_->DeleteUnfinishedWork();
155 149
156 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 = 150 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work2 =
157 precache_session_table_->GetUnfinishedWork(); 151 precache_session_table_->GetUnfinishedWork();
158 152
159 EXPECT_EQ(0, unfinished_work2->manifest_size()); 153 EXPECT_EQ(0, unfinished_work2->top_host_size());
160 } 154 }
161 155
162 } // namespace 156 } // namespace
163 157
164 } // namespace precache 158 } // namespace precache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698