OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/dom_distiller/content/browser/distiller_page_web_contents.h
" | 5 #include "components/dom_distiller/content/browser/distiller_page_web_contents.h
" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 DistillerPageWebContents::CreateNewWebContents(url); | 175 DistillerPageWebContents::CreateNewWebContents(url); |
176 } | 176 } |
177 | 177 |
178 bool new_web_contents_created() { return new_web_contents_created_; } | 178 bool new_web_contents_created() { return new_web_contents_created_; } |
179 | 179 |
180 private: | 180 private: |
181 bool expect_new_web_contents_; | 181 bool expect_new_web_contents_; |
182 bool new_web_contents_created_; | 182 bool new_web_contents_created_; |
183 }; | 183 }; |
184 | 184 |
185 // Consistently failing for no obvious reason on Android. | 185 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, BasicDistillationWorks) { |
186 // See: crbug.com/728960. | |
187 #if defined(OS_ANDROID) | |
188 #define MAYBE_BasicDistillationWorks DISABLED_BasicDistillationWorks | |
189 #else | |
190 #define MAYBE_BasicDistillationWorks BasicDistillationWorks | |
191 #endif | |
192 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, | |
193 MAYBE_BasicDistillationWorks) { | |
194 DistillerPageWebContents distiller_page( | 186 DistillerPageWebContents distiller_page( |
195 shell()->web_contents()->GetBrowserContext(), | 187 shell()->web_contents()->GetBrowserContext(), |
196 shell()->web_contents()->GetContainerBounds().size(), | 188 shell()->web_contents()->GetContainerBounds().size(), |
197 std::unique_ptr<SourcePageHandleWebContents>()); | 189 std::unique_ptr<SourcePageHandleWebContents>()); |
198 distiller_page_ = &distiller_page; | 190 distiller_page_ = &distiller_page; |
199 | 191 |
200 base::RunLoop run_loop; | 192 base::RunLoop run_loop; |
201 DistillPage(run_loop.QuitClosure(), kSimpleArticlePath); | 193 DistillPage(run_loop.QuitClosure(), kSimpleArticlePath); |
202 run_loop.Run(); | 194 run_loop.Run(); |
203 | 195 |
204 EXPECT_EQ("Test Page Title", distiller_result_->title()); | 196 EXPECT_EQ("Test Page Title", distiller_result_->title()); |
205 EXPECT_THAT(distiller_result_->distilled_content().html(), | 197 EXPECT_THAT(distiller_result_->distilled_content().html(), |
206 HasSubstr("Lorem ipsum")); | 198 HasSubstr("Lorem ipsum")); |
207 EXPECT_THAT(distiller_result_->distilled_content().html(), | 199 EXPECT_THAT(distiller_result_->distilled_content().html(), |
208 Not(HasSubstr("questionable content"))); | 200 Not(HasSubstr("questionable content"))); |
209 EXPECT_EQ("", distiller_result_->pagination_info().next_page()); | 201 EXPECT_EQ("", distiller_result_->pagination_info().next_page()); |
210 EXPECT_EQ("", distiller_result_->pagination_info().prev_page()); | 202 EXPECT_EQ("", distiller_result_->pagination_info().prev_page()); |
211 } | 203 } |
212 | 204 |
213 // Consistently failing for no obvious reason on Android. | 205 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, HandlesRelativeLinks) { |
214 // See: crbug.com/728960. | |
215 #if defined(OS_ANDROID) | |
216 #define MAYBE_HandlesRelativeLinks DISABLED_HandlesRelativeLinks | |
217 #else | |
218 #define MAYBE_HandlesRelativeLinks HandlesRelativeLinks | |
219 #endif | |
220 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, | |
221 MAYBE_HandlesRelativeLinks) { | |
222 DistillerPageWebContents distiller_page( | 206 DistillerPageWebContents distiller_page( |
223 shell()->web_contents()->GetBrowserContext(), | 207 shell()->web_contents()->GetBrowserContext(), |
224 shell()->web_contents()->GetContainerBounds().size(), | 208 shell()->web_contents()->GetContainerBounds().size(), |
225 std::unique_ptr<SourcePageHandleWebContents>()); | 209 std::unique_ptr<SourcePageHandleWebContents>()); |
226 distiller_page_ = &distiller_page; | 210 distiller_page_ = &distiller_page; |
227 | 211 |
228 base::RunLoop run_loop; | 212 base::RunLoop run_loop; |
229 DistillPage(run_loop.QuitClosure(), kSimpleArticlePath); | 213 DistillPage(run_loop.QuitClosure(), kSimpleArticlePath); |
230 run_loop.Run(); | 214 run_loop.Run(); |
231 | 215 |
232 // A relative link should've been updated. | 216 // A relative link should've been updated. |
233 EXPECT_THAT(distiller_result_->distilled_content().html(), | 217 EXPECT_THAT(distiller_result_->distilled_content().html(), |
234 ContainsRegex("href=\"http://127.0.0.1:.*/relativelink.html\"")); | 218 ContainsRegex("href=\"http://127.0.0.1:.*/relativelink.html\"")); |
235 EXPECT_THAT(distiller_result_->distilled_content().html(), | 219 EXPECT_THAT(distiller_result_->distilled_content().html(), |
236 HasSubstr("href=\"http://www.google.com/absolutelink.html\"")); | 220 HasSubstr("href=\"http://www.google.com/absolutelink.html\"")); |
237 } | 221 } |
238 | 222 |
239 // Consistently failing for no obvious reason on Android. | 223 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, HandlesRelativeImages) { |
240 // See: crbug.com/728960. | |
241 #if defined(OS_ANDROID) | |
242 #define MAYBE_HandlesRelativeImages DISABLED_HandlesRelativeImages | |
243 #else | |
244 #define MAYBE_HandlesRelativeImages HandlesRelativeImages | |
245 #endif | |
246 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, | |
247 MAYBE_HandlesRelativeImages) { | |
248 DistillerPageWebContents distiller_page( | 224 DistillerPageWebContents distiller_page( |
249 shell()->web_contents()->GetBrowserContext(), | 225 shell()->web_contents()->GetBrowserContext(), |
250 shell()->web_contents()->GetContainerBounds().size(), | 226 shell()->web_contents()->GetContainerBounds().size(), |
251 std::unique_ptr<SourcePageHandleWebContents>()); | 227 std::unique_ptr<SourcePageHandleWebContents>()); |
252 distiller_page_ = &distiller_page; | 228 distiller_page_ = &distiller_page; |
253 | 229 |
254 base::RunLoop run_loop; | 230 base::RunLoop run_loop; |
255 DistillPage(run_loop.QuitClosure(), kSimpleArticlePath); | 231 DistillPage(run_loop.QuitClosure(), kSimpleArticlePath); |
256 run_loop.Run(); | 232 run_loop.Run(); |
257 | 233 |
258 // A relative link should've been updated. | 234 // A relative link should've been updated. |
259 EXPECT_THAT(distiller_result_->distilled_content().html(), | 235 EXPECT_THAT(distiller_result_->distilled_content().html(), |
260 ContainsRegex("src=\"http://127.0.0.1:.*/relativeimage.png\"")); | 236 ContainsRegex("src=\"http://127.0.0.1:.*/relativeimage.png\"")); |
261 EXPECT_THAT(distiller_result_->distilled_content().html(), | 237 EXPECT_THAT(distiller_result_->distilled_content().html(), |
262 HasSubstr("src=\"http://www.google.com/absoluteimage.png\"")); | 238 HasSubstr("src=\"http://www.google.com/absoluteimage.png\"")); |
263 } | 239 } |
264 | 240 |
265 // Consistently failing for no obvious reason on Android. | 241 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, HandlesRelativeVideos) { |
266 // See: crbug.com/728960. | |
267 #if defined(OS_ANDROID) | |
268 #define MAYBE_HandlesRelativeVideos DISABLED_HandlesRelativeVideos | |
269 #else | |
270 #define MAYBE_HandlesRelativeVideos HandlesRelativeVideos | |
271 #endif | |
272 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, | |
273 MAYBE_HandlesRelativeVideos) { | |
274 DistillerPageWebContents distiller_page( | 242 DistillerPageWebContents distiller_page( |
275 shell()->web_contents()->GetBrowserContext(), | 243 shell()->web_contents()->GetBrowserContext(), |
276 shell()->web_contents()->GetContainerBounds().size(), | 244 shell()->web_contents()->GetContainerBounds().size(), |
277 std::unique_ptr<SourcePageHandleWebContents>()); | 245 std::unique_ptr<SourcePageHandleWebContents>()); |
278 distiller_page_ = &distiller_page; | 246 distiller_page_ = &distiller_page; |
279 | 247 |
280 base::RunLoop run_loop; | 248 base::RunLoop run_loop; |
281 DistillPage(run_loop.QuitClosure(), kVideoArticlePath); | 249 DistillPage(run_loop.QuitClosure(), kVideoArticlePath); |
282 run_loop.Run(); | 250 run_loop.Run(); |
283 | 251 |
284 // A relative source/track should've been updated. | 252 // A relative source/track should've been updated. |
285 EXPECT_THAT(distiller_result_->distilled_content().html(), | 253 EXPECT_THAT(distiller_result_->distilled_content().html(), |
286 ContainsRegex("src=\"http://127.0.0.1:.*/relative_video.webm\"")); | 254 ContainsRegex("src=\"http://127.0.0.1:.*/relative_video.webm\"")); |
287 EXPECT_THAT( | 255 EXPECT_THAT( |
288 distiller_result_->distilled_content().html(), | 256 distiller_result_->distilled_content().html(), |
289 ContainsRegex("src=\"http://127.0.0.1:.*/relative_track_en.vtt\"")); | 257 ContainsRegex("src=\"http://127.0.0.1:.*/relative_track_en.vtt\"")); |
290 EXPECT_THAT(distiller_result_->distilled_content().html(), | 258 EXPECT_THAT(distiller_result_->distilled_content().html(), |
291 HasSubstr("src=\"http://www.google.com/absolute_video.ogg\"")); | 259 HasSubstr("src=\"http://www.google.com/absolute_video.ogg\"")); |
292 EXPECT_THAT(distiller_result_->distilled_content().html(), | 260 EXPECT_THAT(distiller_result_->distilled_content().html(), |
293 HasSubstr("src=\"http://www.google.com/absolute_track_fr.vtt\"")); | 261 HasSubstr("src=\"http://www.google.com/absolute_track_fr.vtt\"")); |
294 } | 262 } |
295 | 263 |
296 // Consistently failing for no obvious reason on Android. | 264 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, VisibilityDetection) { |
297 // See: crbug.com/728960. | |
298 #if defined(OS_ANDROID) | |
299 #define MAYBE_VisibilityDetection DISABLED_VisibilityDetection | |
300 #else | |
301 #define MAYBE_VisibilityDetection VisibilityDetection | |
302 #endif | |
303 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, | |
304 MAYBE_VisibilityDetection) { | |
305 DistillerPageWebContents distiller_page( | 265 DistillerPageWebContents distiller_page( |
306 shell()->web_contents()->GetBrowserContext(), | 266 shell()->web_contents()->GetBrowserContext(), |
307 shell()->web_contents()->GetContainerBounds().size(), | 267 shell()->web_contents()->GetContainerBounds().size(), |
308 std::unique_ptr<SourcePageHandleWebContents>()); | 268 std::unique_ptr<SourcePageHandleWebContents>()); |
309 distiller_page_ = &distiller_page; | 269 distiller_page_ = &distiller_page; |
310 | 270 |
311 // visble_style.html and invisible_style.html only differ by the visibility | 271 // visble_style.html and invisible_style.html only differ by the visibility |
312 // internal stylesheet. | 272 // internal stylesheet. |
313 | 273 |
314 { | 274 { |
315 base::RunLoop run_loop; | 275 base::RunLoop run_loop; |
316 DistillPage(run_loop.QuitClosure(), "/visible_style.html"); | 276 DistillPage(run_loop.QuitClosure(), "/visible_style.html"); |
317 run_loop.Run(); | 277 run_loop.Run(); |
318 EXPECT_THAT(distiller_result_->distilled_content().html(), | 278 EXPECT_THAT(distiller_result_->distilled_content().html(), |
319 HasSubstr("Lorem ipsum")); | 279 HasSubstr("Lorem ipsum")); |
320 } | 280 } |
321 | 281 |
322 { | 282 { |
323 base::RunLoop run_loop; | 283 base::RunLoop run_loop; |
324 DistillPage(run_loop.QuitClosure(), "/invisible_style.html"); | 284 DistillPage(run_loop.QuitClosure(), "/invisible_style.html"); |
325 run_loop.Run(); | 285 run_loop.Run(); |
326 EXPECT_THAT(distiller_result_->distilled_content().html(), | 286 EXPECT_THAT(distiller_result_->distilled_content().html(), |
327 Not(HasSubstr("Lorem ipsum"))); | 287 Not(HasSubstr("Lorem ipsum"))); |
328 } | 288 } |
329 } | 289 } |
330 | 290 |
331 // Consistently failing for no obvious reason on Android. | |
332 // See: crbug.com/728960. | |
333 #if defined(OS_ANDROID) | |
334 #define MAYBE_UsingCurrentWebContentsWrongUrl \ | |
335 DISABLED_UsingCurrentWebContentsWrongUrl | |
336 #else | |
337 #define MAYBE_UsingCurrentWebContentsWrongUrl UsingCurrentWebContentsWrongUrl | |
338 #endif | |
339 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, | 291 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, |
340 MAYBE_UsingCurrentWebContentsWrongUrl) { | 292 UsingCurrentWebContentsWrongUrl) { |
341 std::string url("/bogus"); | 293 std::string url("/bogus"); |
342 bool expect_new_web_contents = true; | 294 bool expect_new_web_contents = true; |
343 bool setup_main_frame_observer = true; | 295 bool setup_main_frame_observer = true; |
344 bool wait_for_document_loaded = true; | 296 bool wait_for_document_loaded = true; |
345 RunUseCurrentWebContentsTest(url, | 297 RunUseCurrentWebContentsTest(url, |
346 expect_new_web_contents, | 298 expect_new_web_contents, |
347 setup_main_frame_observer, | 299 setup_main_frame_observer, |
348 wait_for_document_loaded); | 300 wait_for_document_loaded); |
349 } | 301 } |
350 | 302 |
351 // Consistently failing for no obvious reason on Android. | |
352 // See: crbug.com/728960. | |
353 #if defined(OS_ANDROID) | |
354 #define MAYBE_UsingCurrentWebContentsNoMainFrameObserver \ | |
355 DISABLED_UsingCurrentWebContentsNoMainFrameObserver | |
356 #else | |
357 #define MAYBE_UsingCurrentWebContentsNoMainFrameObserver \ | |
358 UsingCurrentWebContentsNoMainFrameObserver | |
359 #endif | |
360 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, | 303 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, |
361 MAYBE_UsingCurrentWebContentsNoMainFrameObserver) { | 304 UsingCurrentWebContentsNoMainFrameObserver) { |
362 std::string url(kSimpleArticlePath); | 305 std::string url(kSimpleArticlePath); |
363 bool expect_new_web_contents = true; | 306 bool expect_new_web_contents = true; |
364 bool setup_main_frame_observer = false; | 307 bool setup_main_frame_observer = false; |
365 bool wait_for_document_loaded = true; | 308 bool wait_for_document_loaded = true; |
366 RunUseCurrentWebContentsTest(url, | 309 RunUseCurrentWebContentsTest(url, |
367 expect_new_web_contents, | 310 expect_new_web_contents, |
368 setup_main_frame_observer, | 311 setup_main_frame_observer, |
369 wait_for_document_loaded); | 312 wait_for_document_loaded); |
370 } | 313 } |
371 | 314 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
466 // It can not crash the loop when returning the result. | 409 // It can not crash the loop when returning the result. |
467 delete distiller_page_; | 410 delete distiller_page_; |
468 | 411 |
469 // Make sure the test ends when it does not crash. | 412 // Make sure the test ends when it does not crash. |
470 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 413 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
471 FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(2)); | 414 FROM_HERE, run_loop.QuitClosure(), base::TimeDelta::FromSeconds(2)); |
472 | 415 |
473 run_loop.Run(); | 416 run_loop.Run(); |
474 } | 417 } |
475 | 418 |
476 // Consistently failing for no obvious reason on Android. | 419 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, MarkupInfo) { |
477 // See: crbug.com/728960. | |
478 #if defined(OS_ANDROID) | |
479 #define MAYBE_MarkupInfo DISABLED_MarkupInfo | |
480 #else | |
481 #define MAYBE_MarkupInfo MarkupInfo | |
482 #endif | |
483 IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, MAYBE_MarkupInfo) { | |
484 DistillerPageWebContents distiller_page( | 420 DistillerPageWebContents distiller_page( |
485 shell()->web_contents()->GetBrowserContext(), | 421 shell()->web_contents()->GetBrowserContext(), |
486 shell()->web_contents()->GetContainerBounds().size(), | 422 shell()->web_contents()->GetContainerBounds().size(), |
487 std::unique_ptr<SourcePageHandleWebContents>()); | 423 std::unique_ptr<SourcePageHandleWebContents>()); |
488 distiller_page_ = &distiller_page; | 424 distiller_page_ = &distiller_page; |
489 | 425 |
490 base::RunLoop run_loop; | 426 base::RunLoop run_loop; |
491 DistillPage(run_loop.QuitClosure(), "/markup_article.html"); | 427 DistillPage(run_loop.QuitClosure(), "/markup_article.html"); |
492 run_loop.Run(); | 428 run_loop.Run(); |
493 | 429 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 ASSERT_TRUE(js_result_); | 518 ASSERT_TRUE(js_result_); |
583 ASSERT_TRUE(js_result_->GetAsDictionary(&dict)); | 519 ASSERT_TRUE(js_result_->GetAsDictionary(&dict)); |
584 | 520 |
585 ASSERT_TRUE(dict->HasKey("success")); | 521 ASSERT_TRUE(dict->HasKey("success")); |
586 bool success; | 522 bool success; |
587 ASSERT_TRUE(dict->GetBoolean("success", &success)); | 523 ASSERT_TRUE(dict->GetBoolean("success", &success)); |
588 EXPECT_TRUE(success); | 524 EXPECT_TRUE(success); |
589 } | 525 } |
590 | 526 |
591 } // namespace dom_distiller | 527 } // namespace dom_distiller |
OLD | NEW |