OLD | NEW |
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 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 std::string mhtml; | 358 std::string mhtml; |
359 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); | 359 ASSERT_TRUE(base::ReadFileToString(path, &mhtml)); |
360 | 360 |
361 EXPECT_THAT(mhtml, HasSubstr("Main Frame")); | 361 EXPECT_THAT(mhtml, HasSubstr("Main Frame")); |
362 // Make sure the contents are missing. | 362 // Make sure the contents are missing. |
363 EXPECT_THAT(mhtml, Not(HasSubstr("no-store test body"))); | 363 EXPECT_THAT(mhtml, Not(HasSubstr("no-store test body"))); |
364 // This image comes from a resource marked no-store. | 364 // This image comes from a resource marked no-store. |
365 EXPECT_THAT(mhtml, Not(ContainsRegex("Content-Location:.*nostore.jpg"))); | 365 EXPECT_THAT(mhtml, Not(ContainsRegex("Content-Location:.*nostore.jpg"))); |
366 } | 366 } |
367 | 367 |
| 368 // TODO(crbug.com/615291): These fail on Android under some circumstances. |
| 369 #if defined(OS_ANDROID) |
| 370 #define MAYBE_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy \ |
| 371 DISABLED_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy |
| 372 #define MAYBE_ViewedMHTMLDoesNotContainNoStoreContent \ |
| 373 DISABLED_ViewedMHTMLDoesNotContainNoStoreContent |
| 374 #else |
| 375 #define MAYBE_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy \ |
| 376 ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy |
| 377 #define MAYBE_ViewedMHTMLDoesNotContainNoStoreContent \ |
| 378 ViewedMHTMLDoesNotContainNoStoreContent |
| 379 #endif |
| 380 |
368 IN_PROC_BROWSER_TEST_F( | 381 IN_PROC_BROWSER_TEST_F( |
369 MHTMLGenerationTest, | 382 MHTMLGenerationTest, |
370 ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy) { | 383 MAYBE_ViewedMHTMLContainsNoStoreContentIfNoCacheControlPolicy) { |
371 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. | 384 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. |
372 base::FilePath path(temp_dir_.path()); | 385 base::FilePath path(temp_dir_.path()); |
373 path = path.Append(FILE_PATH_LITERAL("test.mht")); | 386 path = path.Append(FILE_PATH_LITERAL("test.mht")); |
374 MHTMLGenerationParams params(path); | 387 MHTMLGenerationParams params(path); |
375 | 388 |
376 // No special cache control options so we should see both frames. | 389 // No special cache control options so we should see both frames. |
377 std::vector<std::string> expectations = { | 390 std::vector<std::string> expectations = { |
378 "Main Frame, normal headers.", "Cache-Control: no-store test body", | 391 "Main Frame, normal headers.", "Cache-Control: no-store test body", |
379 }; | 392 }; |
380 std::vector<std::string> forbidden; | 393 std::vector<std::string> forbidden; |
381 TestOriginalVsSavedPage( | 394 TestOriginalVsSavedPage( |
382 embedded_test_server()->GetURL("/page_with_nostore_iframe.html"), params, | 395 embedded_test_server()->GetURL("/page_with_nostore_iframe.html"), params, |
383 2 /* expected number of frames */, expectations, forbidden); | 396 2 /* expected number of frames */, expectations, forbidden); |
384 | 397 |
385 std::string mhtml; | 398 std::string mhtml; |
386 ASSERT_TRUE(base::ReadFileToString(params.file_path, &mhtml)); | 399 ASSERT_TRUE(base::ReadFileToString(params.file_path, &mhtml)); |
387 } | 400 } |
388 | 401 |
389 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, | 402 IN_PROC_BROWSER_TEST_F(MHTMLGenerationTest, |
390 ViewedMHTMLDoesNotContainNoStoreContent) { | 403 MAYBE_ViewedMHTMLDoesNotContainNoStoreContent) { |
391 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. | 404 // Generate MHTML, specifying the FailForNoStoreMainFrame policy. |
392 base::FilePath path(temp_dir_.path()); | 405 base::FilePath path(temp_dir_.path()); |
393 path = path.Append(FILE_PATH_LITERAL("test.mht")); | 406 path = path.Append(FILE_PATH_LITERAL("test.mht")); |
394 MHTMLGenerationParams params(path); | 407 MHTMLGenerationParams params(path); |
395 params.cache_control_policy = blink::WebFrameSerializerCacheControlPolicy:: | 408 params.cache_control_policy = blink::WebFrameSerializerCacheControlPolicy:: |
396 SkipAnyFrameOrResourceMarkedNoStore; | 409 SkipAnyFrameOrResourceMarkedNoStore; |
397 | 410 |
398 // No special cache control options so we should see both frames. | 411 // No special cache control options so we should see both frames. |
399 std::vector<std::string> expectations = { | 412 std::vector<std::string> expectations = { |
400 "Main Frame, normal headers.", | 413 "Main Frame, normal headers.", |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 | 468 |
456 // Make sure that URLs of both frames are present | 469 // Make sure that URLs of both frames are present |
457 // (note that these are single-line regexes). | 470 // (note that these are single-line regexes). |
458 EXPECT_THAT( | 471 EXPECT_THAT( |
459 mhtml, | 472 mhtml, |
460 ContainsRegex("Content-Location:.*/frame_tree/page_with_one_frame.html")); | 473 ContainsRegex("Content-Location:.*/frame_tree/page_with_one_frame.html")); |
461 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*/title1.html")); | 474 EXPECT_THAT(mhtml, ContainsRegex("Content-Location:.*/title1.html")); |
462 } | 475 } |
463 | 476 |
464 } // namespace content | 477 } // namespace content |
OLD | NEW |