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

Side by Side Diff: chrome/browser/android/offline_pages/prerender_adapter_unittest.cc

Issue 2711693002: [Offline Pages] Make prerenderer notify us of network progress. (Closed)
Patch Set: last minute fixes Created 3 years, 10 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 "chrome/browser/android/offline_pages/prerender_adapter.h" 5 #include "chrome/browser/android/offline_pages/prerender_adapter.h"
6 6
7 #include "base/sys_info.h" 7 #include "base/sys_info.h"
8 #include "chrome/browser/prerender/prerender_manager_factory.h" 8 #include "chrome/browser/prerender/prerender_manager_factory.h"
9 #include "chrome/test/base/testing_profile.h" 9 #include "chrome/test/base/testing_profile.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 class PrerenderAdapterTest : public testing::Test, 106 class PrerenderAdapterTest : public testing::Test,
107 public PrerenderAdapter::Observer { 107 public PrerenderAdapter::Observer {
108 public: 108 public:
109 PrerenderAdapterTest(); 109 PrerenderAdapterTest();
110 ~PrerenderAdapterTest() override; 110 ~PrerenderAdapterTest() override;
111 111
112 // PrerenderAdapter::Observer implementation: 112 // PrerenderAdapter::Observer implementation:
113 void OnPrerenderStopLoading() override; 113 void OnPrerenderStopLoading() override;
114 void OnPrerenderDomContentLoaded() override; 114 void OnPrerenderDomContentLoaded() override;
115 void OnPrerenderStop() override; 115 void OnPrerenderStop() override;
116 void OnPrerenderNetworkBytesChanged(int64_t bytes) override;
116 117
117 void SetUp() override; 118 void SetUp() override;
118 119
119 // Returns the PrerenderLoader to test. 120 // Returns the PrerenderLoader to test.
120 PrerenderAdapter* adapter() const { return adapter_.get(); } 121 PrerenderAdapter* adapter() const { return adapter_.get(); }
121 StubPrerenderContentsFactory* prerender_contents_factory() { 122 StubPrerenderContentsFactory* prerender_contents_factory() {
122 return prerender_contents_factory_; 123 return prerender_contents_factory_;
123 } 124 }
124 Profile* profile() { return &profile_; } 125 Profile* profile() { return &profile_; }
125 PrerenderManager* prerender_manager() { return prerender_manager_; } 126 PrerenderManager* prerender_manager() { return prerender_manager_; }
126 bool observer_stop_loading_called() const { 127 bool observer_stop_loading_called() const {
127 return observer_stop_loading_called_; 128 return observer_stop_loading_called_;
128 } 129 }
129 bool observer_dom_content_loaded_called() const { 130 bool observer_dom_content_loaded_called() const {
130 return observer_dom_content_loaded_called_; 131 return observer_dom_content_loaded_called_;
131 } 132 }
132 bool observer_stop_called() const { return observer_stop_called_; } 133 bool observer_stop_called() const { return observer_stop_called_; }
134 int64_t observer_network_bytes_changed() const {
135 return observer_network_bytes_changed_;
136 }
133 137
134 private: 138 private:
135 content::TestBrowserThreadBundle thread_bundle_; 139 content::TestBrowserThreadBundle thread_bundle_;
136 TestingProfile profile_; 140 TestingProfile profile_;
137 std::unique_ptr<PrerenderAdapter> adapter_; 141 std::unique_ptr<PrerenderAdapter> adapter_;
138 StubPrerenderContentsFactory* prerender_contents_factory_; 142 StubPrerenderContentsFactory* prerender_contents_factory_;
139 PrerenderManager* prerender_manager_; 143 PrerenderManager* prerender_manager_;
140 bool observer_stop_loading_called_; 144 bool observer_stop_loading_called_;
141 bool observer_dom_content_loaded_called_; 145 bool observer_dom_content_loaded_called_;
142 bool observer_stop_called_; 146 bool observer_stop_called_;
147 int64_t observer_network_bytes_changed_;
143 148
144 DISALLOW_COPY_AND_ASSIGN(PrerenderAdapterTest); 149 DISALLOW_COPY_AND_ASSIGN(PrerenderAdapterTest);
145 }; 150 };
146 151
147 PrerenderAdapterTest::PrerenderAdapterTest() 152 PrerenderAdapterTest::PrerenderAdapterTest()
148 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), 153 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
149 prerender_manager_(nullptr), 154 prerender_manager_(nullptr),
150 observer_stop_loading_called_(false), 155 observer_stop_loading_called_(false),
151 observer_dom_content_loaded_called_(false), 156 observer_dom_content_loaded_called_(false),
152 observer_stop_called_(false) {} 157 observer_stop_called_(false),
158 observer_network_bytes_changed_(0) {}
153 159
154 PrerenderAdapterTest::~PrerenderAdapterTest() { 160 PrerenderAdapterTest::~PrerenderAdapterTest() {
155 if (prerender_manager_) 161 if (prerender_manager_)
156 prerender_manager_->Shutdown(); 162 prerender_manager_->Shutdown();
157 } 163 }
158 164
159 void PrerenderAdapterTest::OnPrerenderStopLoading() { 165 void PrerenderAdapterTest::OnPrerenderStopLoading() {
160 observer_stop_loading_called_ = true; 166 observer_stop_loading_called_ = true;
161 } 167 }
162 168
163 void PrerenderAdapterTest::OnPrerenderDomContentLoaded() { 169 void PrerenderAdapterTest::OnPrerenderDomContentLoaded() {
164 observer_dom_content_loaded_called_ = true; 170 observer_dom_content_loaded_called_ = true;
165 } 171 }
166 172
167 void PrerenderAdapterTest::OnPrerenderStop() { 173 void PrerenderAdapterTest::OnPrerenderStop() {
168 observer_stop_called_ = true; 174 observer_stop_called_ = true;
169 } 175 }
170 176
177 void PrerenderAdapterTest::OnPrerenderNetworkBytesChanged(int64_t bytes) {
178 observer_network_bytes_changed_ = bytes;
179 }
180
171 void PrerenderAdapterTest::SetUp() { 181 void PrerenderAdapterTest::SetUp() {
172 if (base::SysInfo::IsLowEndDevice()) 182 if (base::SysInfo::IsLowEndDevice())
173 return; 183 return;
174 adapter_.reset(new PrerenderAdapter(this)); 184 adapter_.reset(new PrerenderAdapter(this));
175 prerender_contents_factory_ = new StubPrerenderContentsFactory(); 185 prerender_contents_factory_ = new StubPrerenderContentsFactory();
176 prerender_manager_ = PrerenderManagerFactory::GetForBrowserContext(profile()); 186 prerender_manager_ = PrerenderManagerFactory::GetForBrowserContext(profile());
177 if (prerender_manager_) { 187 if (prerender_manager_) {
178 prerender_manager_->SetPrerenderContentsFactoryForTest( 188 prerender_manager_->SetPrerenderContentsFactoryForTest(
179 prerender_contents_factory_); 189 prerender_contents_factory_);
180 prerender_manager_->SetMode(PrerenderManager::PRERENDER_MODE_ENABLED); 190 prerender_manager_->SetMode(PrerenderManager::PRERENDER_MODE_ENABLED);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 EXPECT_TRUE(adapter()->IsActive()); 232 EXPECT_TRUE(adapter()->IsActive());
223 EXPECT_FALSE(observer_stop_loading_called()); 233 EXPECT_FALSE(observer_stop_loading_called());
224 EXPECT_FALSE(observer_dom_content_loaded_called()); 234 EXPECT_FALSE(observer_dom_content_loaded_called());
225 EXPECT_FALSE(observer_stop_called()); 235 EXPECT_FALSE(observer_stop_called());
226 236
227 // Exercise observer event call paths. 237 // Exercise observer event call paths.
228 prerender_contents_factory() 238 prerender_contents_factory()
229 ->last_prerender_contents() 239 ->last_prerender_contents()
230 ->ReportDomContentEvent(); 240 ->ReportDomContentEvent();
231 EXPECT_TRUE(observer_dom_content_loaded_called()); 241 EXPECT_TRUE(observer_dom_content_loaded_called());
242
243 // Expect byte count reported to Observer.
244 prerender_contents_factory()->last_prerender_contents()->AddNetworkBytes(153);
245 EXPECT_EQ(153LL, observer_network_bytes_changed());
246
232 prerender_contents_factory()->last_prerender_contents()->ReportOnLoadEvent(); 247 prerender_contents_factory()->last_prerender_contents()->ReportOnLoadEvent();
233 EXPECT_TRUE(observer_stop_loading_called()); 248 EXPECT_TRUE(observer_stop_loading_called());
234 prerender_contents_factory()->last_prerender_contents()->StopWithStatus( 249 prerender_contents_factory()->last_prerender_contents()->StopWithStatus(
235 FinalStatus::FINAL_STATUS_CANCELLED); 250 FinalStatus::FINAL_STATUS_CANCELLED);
236 EXPECT_TRUE(observer_stop_called()); 251 EXPECT_TRUE(observer_stop_called());
237 EXPECT_EQ(FinalStatus::FINAL_STATUS_CANCELLED, adapter()->GetFinalStatus()); 252 EXPECT_EQ(FinalStatus::FINAL_STATUS_CANCELLED, adapter()->GetFinalStatus());
238 253
239 // Exercise access methods even though no interesting values set beneath. 254 // Exercise access methods even though no interesting values set beneath.
240 EXPECT_EQ(nullptr, adapter()->GetWebContents()); 255 EXPECT_EQ(nullptr, adapter()->GetWebContents());
241 256
242 adapter()->DestroyActive(); 257 adapter()->DestroyActive();
243 EXPECT_FALSE(adapter()->IsActive()); 258 EXPECT_FALSE(adapter()->IsActive());
244 } 259 }
245 260
246 } // namespace offline_pages 261 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698