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

Side by Side Diff: content/browser/download/mhtml_generation_browsertest.cc

Issue 2316043002: //content: Change ScopedTempDir::path() to GetPath() (Closed)
Patch Set: Just rebased Created 4 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 206
207 bool has_mhtml_callback_run_; 207 bool has_mhtml_callback_run_;
208 int64_t file_size_; 208 int64_t file_size_;
209 }; 209 };
210 210
211 // Tests that generating a MHTML does create contents. 211 // Tests that generating a MHTML does create contents.
212 // Note that the actual content of the file is not tested, the purpose of this 212 // Note that the actual content of the file is not tested, the purpose of this
213 // test is to ensure we were successful in creating the MHTML data from the 213 // test is to ensure we were successful in creating the MHTML data from the
214 // renderer. 214 // renderer.
215 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTML) { 215 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTML) {
216 base::FilePath path(temp_dir_.path()); 216 base::FilePath path(temp_dir_.GetPath());
217 path = path.Append(FILE_PATH_LITERAL("test.mht")); 217 path = path.Append(FILE_PATH_LITERAL("test.mht"));
218 218
219 GenerateMHTML(path, embedded_test_server()->GetURL("/simple_page.html")); 219 GenerateMHTML(path, embedded_test_server()->GetURL("/simple_page.html"));
220 ASSERT_FALSE(HasFailure()); 220 ASSERT_FALSE(HasFailure());
221 221
222 // Make sure the actual generated file has some contents. 222 // Make sure the actual generated file has some contents.
223 EXPECT_GT(file_size(), 0); // Verify the size reported by the callback. 223 EXPECT_GT(file_size(), 0); // Verify the size reported by the callback.
224 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size. 224 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size.
225 225
226 { 226 {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLAndExitRenderer) { 333 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLAndExitRenderer) {
334 NavigateToURL(shell(), embedded_test_server()->GetURL("/simple_page.html")); 334 NavigateToURL(shell(), embedded_test_server()->GetURL("/simple_page.html"));
335 335
336 RenderProcessHostImpl* render_process_host = 336 RenderProcessHostImpl* render_process_host =
337 static_cast<RenderProcessHostImpl*>( 337 static_cast<RenderProcessHostImpl*>(
338 shell()->web_contents()->GetRenderProcessHost()); 338 shell()->web_contents()->GetRenderProcessHost());
339 scoped_refptr<BrowserMessageFilter> filter = 339 scoped_refptr<BrowserMessageFilter> filter =
340 new GenerateMHTMLAndExitRendererMessageFilter(render_process_host); 340 new GenerateMHTMLAndExitRendererMessageFilter(render_process_host);
341 render_process_host->AddFilter(filter.get()); 341 render_process_host->AddFilter(filter.get());
342 342
343 base::FilePath path(temp_dir_.path()); 343 base::FilePath path(temp_dir_.GetPath());
344 path = path.Append(FILE_PATH_LITERAL("test.mht")); 344 path = path.Append(FILE_PATH_LITERAL("test.mht"));
345 GenerateMHTMLForCurrentPage(MHTMLGenerationParams(path)); 345 GenerateMHTMLForCurrentPage(MHTMLGenerationParams(path));
346 346
347 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size. 347 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size.
348 } 348 }
349 349
350 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, InvalidPath) { 350 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, InvalidPath) {
351 base::FilePath path(FILE_PATH_LITERAL("/invalid/file/path")); 351 base::FilePath path(FILE_PATH_LITERAL("/invalid/file/path"));
352 352
353 GenerateMHTML(path, embedded_test_server()->GetURL( 353 GenerateMHTML(path, embedded_test_server()->GetURL(
354 "/download/local-about-blank-subframes.html")); 354 "/download/local-about-blank-subframes.html"));
355 ASSERT_FALSE(HasFailure()); // No failures with the invocation itself? 355 ASSERT_FALSE(HasFailure()); // No failures with the invocation itself?
356 356
357 EXPECT_EQ(file_size(), -1); // Expecting that the callback reported failure. 357 EXPECT_EQ(file_size(), -1); // Expecting that the callback reported failure.
358 } 358 }
359 359
360 // Tests that MHTML generated using the default 'quoted-printable' encoding does 360 // Tests that MHTML generated using the default 'quoted-printable' encoding does
361 // not contain the 'binary' Content-Transfer-Encoding header, and generates 361 // not contain the 'binary' Content-Transfer-Encoding header, and generates
362 // base64 encoding for the image part. 362 // base64 encoding for the image part.
363 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateNonBinaryMHTMLWithImage) { 363 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateNonBinaryMHTMLWithImage) {
364 base::FilePath path(temp_dir_.path()); 364 base::FilePath path(temp_dir_.GetPath());
365 path = path.Append(FILE_PATH_LITERAL("test_binary.mht")); 365 path = path.Append(FILE_PATH_LITERAL("test_binary.mht"));
366 366
367 GURL url(embedded_test_server()->GetURL("/page_with_image.html")); 367 GURL url(embedded_test_server()->GetURL("/page_with_image.html"));
368 GenerateMHTML(path, url); 368 GenerateMHTML(path, url);
369 ASSERT_FALSE(HasFailure()); 369 ASSERT_FALSE(HasFailure());
370 EXPECT_GT(file_size(), 0); // Verify the size reported by the callback. 370 EXPECT_GT(file_size(), 0); // Verify the size reported by the callback.
371 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size. 371 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size.
372 372
373 { 373 {
374 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification; 374 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
375 std::string mhtml; 375 std::string mhtml;
376 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); 376 ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
377 EXPECT_THAT(mhtml, HasSubstr("Content-Transfer-Encoding: base64")); 377 EXPECT_THAT(mhtml, HasSubstr("Content-Transfer-Encoding: base64"));
378 EXPECT_THAT(mhtml, Not(HasSubstr("Content-Transfer-Encoding: binary"))); 378 EXPECT_THAT(mhtml, Not(HasSubstr("Content-Transfer-Encoding: binary")));
379 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*blank.jpg")); 379 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*blank.jpg"));
380 } 380 }
381 } 381 }
382 382
383 // Tests that MHTML generated using the binary encoding contains the 'binary' 383 // Tests that MHTML generated using the binary encoding contains the 'binary'
384 // Content-Transfer-Encoding header, and does not contain any base64 encoded 384 // Content-Transfer-Encoding header, and does not contain any base64 encoded
385 // parts. 385 // parts.
386 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateBinaryMHTMLWithImage) { 386 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateBinaryMHTMLWithImage) {
387 base::FilePath path(temp_dir_.path()); 387 base::FilePath path(temp_dir_.GetPath());
388 path = path.Append(FILE_PATH_LITERAL("test_binary.mht")); 388 path = path.Append(FILE_PATH_LITERAL("test_binary.mht"));
389 389
390 GURL url(embedded_test_server()->GetURL("/page_with_image.html")); 390 GURL url(embedded_test_server()->GetURL("/page_with_image.html"));
391 MHTMLGenerationParams params(path); 391 MHTMLGenerationParams params(path);
392 params.use_binary_encoding = true; 392 params.use_binary_encoding = true;
393 393
394 GenerateMHTML(params, url); 394 GenerateMHTML(params, url);
395 ASSERT_FALSE(HasFailure()); 395 ASSERT_FALSE(HasFailure());
396 EXPECT_GT(file_size(), 0); // Verify the size reported by the callback. 396 EXPECT_GT(file_size(), 0); // Verify the size reported by the callback.
397 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size. 397 EXPECT_GT(ReadFileSizeFromDisk(path), 100); // Verify the actual file size.
398 398
399 { 399 {
400 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification; 400 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
401 std::string mhtml; 401 std::string mhtml;
402 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); 402 ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
403 EXPECT_THAT(mhtml, HasSubstr("Content-Transfer-Encoding: binary")); 403 EXPECT_THAT(mhtml, HasSubstr("Content-Transfer-Encoding: binary"));
404 EXPECT_THAT(mhtml, Not(HasSubstr("Content-Transfer-Encoding: base64"))); 404 EXPECT_THAT(mhtml, Not(HasSubstr("Content-Transfer-Encoding: base64")));
405 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*blank.jpg")); 405 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*blank.jpg"));
406 } 406 }
407 } 407 }
408 408
409 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLIgnoreNoStore) { 409 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLIgnoreNoStore) {
410 base::FilePath path(temp_dir_.path()); 410 base::FilePath path(temp_dir_.GetPath());
411 path = path.Append(FILE_PATH_LITERAL("test.mht")); 411 path = path.Append(FILE_PATH_LITERAL("test.mht"));
412 412
413 GURL url(embedded_test_server()->GetURL("/nostore.html")); 413 GURL url(embedded_test_server()->GetURL("/nostore.html"));
414 414
415 // Generate MHTML without specifying the FailForNoStoreMainFrame policy. 415 // Generate MHTML without specifying the FailForNoStoreMainFrame policy.
416 GenerateMHTML(path, url); 416 GenerateMHTML(path, url);
417 417
418 // We expect that there wasn't an error (file size -1 indicates an error.) 418 // We expect that there wasn't an error (file size -1 indicates an error.)
419 ASSERT_FALSE(HasFailure()); 419 ASSERT_FALSE(HasFailure());
420 420
421 std::string mhtml; 421 std::string mhtml;
422 { 422 {
423 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification; 423 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
424 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); 424 ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
425 } 425 }
426 426
427 // Make sure the contents of the body are present. 427 // Make sure the contents of the body are present.
428 EXPECT_THAT(mhtml, HasSubstr("test body")); 428 EXPECT_THAT(mhtml, HasSubstr("test body"));
429 429
430 // Make sure that URL of the content is present. 430 // Make sure that URL of the content is present.
431 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*/nostore.html")); 431 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*/nostore.html"));
432 } 432 }
433 433
434 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLObeyNoStoreMainFrame) { 434 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLObeyNoStoreMainFrame) {
435 base::FilePath path(temp_dir_.path()); 435 base::FilePath path(temp_dir_.GetPath());
436 path = path.Append(FILE_PATH_LITERAL("test.mht")); 436 path = path.Append(FILE_PATH_LITERAL("test.mht"));
437 437
438 GURL url(embedded_test_server()->GetURL("/nostore.html")); 438 GURL url(embedded_test_server()->GetURL("/nostore.html"));
439 439
440 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. 440 // Generate MHTML, specifying the FailForNoStoreMainFrame policy.
441 MHTMLGenerationParams params(path); 441 MHTMLGenerationParams params(path);
442 params.cache_control_policy = 442 params.cache_control_policy =
443 blink::WebFrameSerializerCacheControlPolicy::FailForNoStoreMainFrame; 443 blink::WebFrameSerializerCacheControlPolicy::FailForNoStoreMainFrame;
444 444
445 GenerateMHTML(params, url); 445 GenerateMHTML(params, url);
446 // We expect that there was an error (file size -1 indicates an error.) 446 // We expect that there was an error (file size -1 indicates an error.)
447 EXPECT_EQ(-1, file_size()); 447 EXPECT_EQ(-1, file_size());
448 448
449 std::string mhtml; 449 std::string mhtml;
450 { 450 {
451 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification; 451 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
452 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); 452 ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
453 } 453 }
454 454
455 // Make sure the contents are missing. 455 // Make sure the contents are missing.
456 EXPECT_THAT(mhtml, Not(HasSubstr("test body"))); 456 EXPECT_THAT(mhtml, Not(HasSubstr("test body")));
457 } 457 }
458 458
459 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, 459 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest,
460 GenerateMHTMLIgnoreNoStoreSubFrame) { 460 GenerateMHTMLIgnoreNoStoreSubFrame) {
461 base::FilePath path(temp_dir_.path()); 461 base::FilePath path(temp_dir_.GetPath());
462 path = path.Append(FILE_PATH_LITERAL("test.mht")); 462 path = path.Append(FILE_PATH_LITERAL("test.mht"));
463 463
464 GURL url(embedded_test_server()->GetURL("/page_with_nostore_iframe.html")); 464 GURL url(embedded_test_server()->GetURL("/page_with_nostore_iframe.html"));
465 465
466 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. 466 // Generate MHTML, specifying the FailForNoStoreMainFrame policy.
467 MHTMLGenerationParams params(path); 467 MHTMLGenerationParams params(path);
468 params.cache_control_policy = 468 params.cache_control_policy =
469 blink::WebFrameSerializerCacheControlPolicy::FailForNoStoreMainFrame; 469 blink::WebFrameSerializerCacheControlPolicy::FailForNoStoreMainFrame;
470 470
471 GenerateMHTML(params, url); 471 GenerateMHTML(params, url);
472 // We expect that there was no error (file size -1 indicates an error.) 472 // We expect that there was no error (file size -1 indicates an error.)
473 EXPECT_LT(0, file_size()); 473 EXPECT_LT(0, file_size());
474 474
475 std::string mhtml; 475 std::string mhtml;
476 { 476 {
477 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification; 477 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
478 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); 478 ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
479 } 479 }
480 480
481 EXPECT_THAT(mhtml, HasSubstr("Main Frame")); 481 EXPECT_THAT(mhtml, HasSubstr("Main Frame"));
482 // Make sure that no-store subresources exist in this mode. 482 // Make sure that no-store subresources exist in this mode.
483 EXPECT_THAT(mhtml, HasSubstr("no-store test body")); 483 EXPECT_THAT(mhtml, HasSubstr("no-store test body"));
484 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*nostore.jpg")); 484 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*nostore.jpg"));
485 } 485 }
486 486
487 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLObeyNoStoreSubFrame) { 487 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, GenerateMHTMLObeyNoStoreSubFrame) {
488 base::FilePath path(temp_dir_.path()); 488 base::FilePath path(temp_dir_.GetPath());
489 path = path.Append(FILE_PATH_LITERAL("test.mht")); 489 path = path.Append(FILE_PATH_LITERAL("test.mht"));
490 490
491 GURL url(embedded_test_server()->GetURL("/page_with_nostore_iframe.html")); 491 GURL url(embedded_test_server()->GetURL("/page_with_nostore_iframe.html"));
492 492
493 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. 493 // Generate MHTML, specifying the FailForNoStoreMainFrame policy.
494 MHTMLGenerationParams params(path); 494 MHTMLGenerationParams params(path);
495 params.cache_control_policy = blink::WebFrameSerializerCacheControlPolicy:: 495 params.cache_control_policy = blink::WebFrameSerializerCacheControlPolicy::
496 SkipAnyFrameOrResourceMarkedNoStore; 496 SkipAnyFrameOrResourceMarkedNoStore;
497 497
498 GenerateMHTML(params, url); 498 GenerateMHTML(params, url);
(...skipping 23 matching lines...) Expand all
522 #define MAYBE_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy \ 522 #define MAYBE_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy \
523 ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy 523 ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy
524 #define MAYBE_ViewedMHTMLDoesNotContainNoStoreContent \ 524 #define MAYBE_ViewedMHTMLDoesNotContainNoStoreContent \
525 ViewedMHTMLDoesNotContainNoStoreContent 525 ViewedMHTMLDoesNotContainNoStoreContent
526 #endif 526 #endif
527 527
528 IN_PROC_BROWSER_TEST_F( 528 IN_PROC_BROWSER_TEST_F(
529 MHTMLGenerationTest, 529 MHTMLGenerationTest,
530 MAYBE_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy) { 530 MAYBE_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy) {
531 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. 531 // Generate MHTML, specifying the FailForNoStoreMainFrame policy.
532 base::FilePath path(temp_dir_.path()); 532 base::FilePath path(temp_dir_.GetPath());
533 path = path.Append(FILE_PATH_LITERAL("test.mht")); 533 path = path.Append(FILE_PATH_LITERAL("test.mht"));
534 MHTMLGenerationParams params(path); 534 MHTMLGenerationParams params(path);
535 535
536 // No special cache control options so we should see both frames. 536 // No special cache control options so we should see both frames.
537 std::vector<std::string> expectations = { 537 std::vector<std::string> expectations = {
538 "Main Frame, normal headers.", "Cache-Control: no-store test body", 538 "Main Frame, normal headers.", "Cache-Control: no-store test body",
539 }; 539 };
540 std::vector<std::string> forbidden; 540 std::vector<std::string> forbidden;
541 TestOriginalVsSavedPage( 541 TestOriginalVsSavedPage(
542 embedded_test_server()->GetURL("/page_with_nostore_iframe.html"), params, 542 embedded_test_server()->GetURL("/page_with_nostore_iframe.html"), params,
543 2 /* expected number of frames */, expectations, forbidden); 543 2 /* expected number of frames */, expectations, forbidden);
544 544
545 std::string mhtml; 545 std::string mhtml;
546 { 546 {
547 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification; 547 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
548 ASSERT_TRUE(base::ReadFileToString(params.file_path, &mhtml)); 548 ASSERT_TRUE(base::ReadFileToString(params.file_path, &mhtml));
549 } 549 }
550 } 550 }
551 551
552 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, 552 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest,
553 MAYBE_ViewedMHTMLDoesNotContainNoStoreContent) { 553 MAYBE_ViewedMHTMLDoesNotContainNoStoreContent) {
554 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. 554 // Generate MHTML, specifying the FailForNoStoreMainFrame policy.
555 base::FilePath path(temp_dir_.path()); 555 base::FilePath path(temp_dir_.GetPath());
556 path = path.Append(FILE_PATH_LITERAL("test.mht")); 556 path = path.Append(FILE_PATH_LITERAL("test.mht"));
557 MHTMLGenerationParams params(path); 557 MHTMLGenerationParams params(path);
558 params.cache_control_policy = blink::WebFrameSerializerCacheControlPolicy:: 558 params.cache_control_policy = blink::WebFrameSerializerCacheControlPolicy::
559 SkipAnyFrameOrResourceMarkedNoStore; 559 SkipAnyFrameOrResourceMarkedNoStore;
560 560
561 // No special cache control options so we should see both frames. 561 // No special cache control options so we should see both frames.
562 std::vector<std::string> expectations = { 562 std::vector<std::string> expectations = {
563 "Main Frame, normal headers.", 563 "Main Frame, normal headers.",
564 }; 564 };
565 std::vector<std::string> forbidden = { 565 std::vector<std::string> forbidden = {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 ASSERT_TRUE(embedded_test_server()->Started()); 597 ASSERT_TRUE(embedded_test_server()->Started());
598 content::SetupCrossSiteRedirector(embedded_test_server()); 598 content::SetupCrossSiteRedirector(embedded_test_server());
599 } 599 }
600 600
601 private: 601 private:
602 DISALLOW_COPY_AND_ASSIGN(MHTMLGenerationSitePerProcessTest); 602 DISALLOW_COPY_AND_ASSIGN(MHTMLGenerationSitePerProcessTest);
603 }; 603 };
604 604
605 // Test for crbug.com/538766. 605 // Test for crbug.com/538766.
606 IN_PROC_BROWSER_TEST_F(MHTMLGenerationSitePerProcessTest, GenerateMHTML) { 606 IN_PROC_BROWSER_TEST_F(MHTMLGenerationSitePerProcessTest, GenerateMHTML) {
607 base::FilePath path(temp_dir_.path()); 607 base::FilePath path(temp_dir_.GetPath());
608 path = path.Append(FILE_PATH_LITERAL("test.mht")); 608 path = path.Append(FILE_PATH_LITERAL("test.mht"));
609 609
610 GURL url(embedded_test_server()->GetURL( 610 GURL url(embedded_test_server()->GetURL(
611 "a.com", "/frame_tree/page_with_one_frame.html")); 611 "a.com", "/frame_tree/page_with_one_frame.html"));
612 GenerateMHTML(path, url); 612 GenerateMHTML(path, url);
613 ASSERT_FALSE(HasFailure()); 613 ASSERT_FALSE(HasFailure());
614 614
615 std::string mhtml; 615 std::string mhtml;
616 { 616 {
617 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification; 617 base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
618 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); 618 ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
619 } 619 }
620 620
621 // Make sure the contents of both frames are present. 621 // Make sure the contents of both frames are present.
622 EXPECT_THAT(mhtml, HasSubstr("This page has one cross-site iframe")); 622 EXPECT_THAT(mhtml, HasSubstr("This page has one cross-site iframe"));
623 EXPECT_THAT(mhtml, HasSubstr("This page has no title")); // From title1.html. 623 EXPECT_THAT(mhtml, HasSubstr("This page has no title")); // From title1.html.
624 624
625 // Make sure that URLs of both frames are present 625 // Make sure that URLs of both frames are present
626 // (note that these are single-line regexes). 626 // (note that these are single-line regexes).
627 EXPECT_THAT( 627 EXPECT_THAT(
628 mhtml, 628 mhtml,
629 ContainsRegex("Content-Location:.*/frame_tree/page_with_one_frame.html")); 629 ContainsRegex("Content-Location:.*/frame_tree/page_with_one_frame.html"));
630 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*/title1.html")); 630 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*/title1.html"));
631 } 631 }
632 632
633 } // namespace content 633 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/download/file_metadata_unittest_linux.cc ('k') | content/browser/download/save_package_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698