Index: chrome/browser/download/save_page_browsertest.cc |
diff --git a/chrome/browser/download/save_page_browsertest.cc b/chrome/browser/download/save_page_browsertest.cc |
index 36d155cda9a0fe240ea7e8ad20811215f10420e6..c1f44f4a1c518a925e59d15455adb4339337c794 100644 |
--- a/chrome/browser/download/save_page_browsertest.cc |
+++ b/chrome/browser/download/save_page_browsertest.cc |
@@ -900,12 +900,15 @@ IN_PROC_BROWSER_TEST_F(SavePageSitePerProcessBrowserTest, |
// Test suite that verifies that the frame tree "looks" the same before |
// and after a save-page-as. |
-class SavePageMultiFrameBrowserTest : public SavePageSitePerProcessBrowserTest { |
+class SavePageMultiFrameBrowserTest |
+ : public SavePageSitePerProcessBrowserTest, |
+ public ::testing::WithParamInterface<content::SavePageType> { |
protected: |
void TestMultiFramePage(content::SavePageType save_page_type, |
const GURL& url, |
int expected_number_of_frames, |
- const std::vector<std::string>& expected_substrings) { |
+ const std::vector<std::string>& expected_substrings, |
+ bool skip_verification_of_original_page = false) { |
// Navigate to the test page and verify if test expectations |
// are met (this is mostly a sanity check - a failure to meet |
// expectations would probably mean that there is a test bug |
@@ -913,10 +916,10 @@ class SavePageMultiFrameBrowserTest : public SavePageSitePerProcessBrowserTest { |
ui_test_utils::NavigateToURL(browser(), url); |
DLOG(INFO) << "Verifying test expectations for original page... : " |
<< GetCurrentTab(browser())->GetLastCommittedURL(); |
- // TODO(lukasza/paulmeyer): crbug.com/457440: Can uncomment |
- // the assertion below once find-in-page works for oop frames. |
- // AssertExpectationsAboutCurrentTab(expected_number_of_frames, |
- // expected_substrings); |
+ if (!skip_verification_of_original_page) { |
+ AssertExpectationsAboutCurrentTab(expected_number_of_frames, |
+ expected_substrings); |
+ } |
// Save the page. |
base::FilePath full_file_name, dir; |
@@ -974,59 +977,37 @@ class SavePageMultiFrameBrowserTest : public SavePageSitePerProcessBrowserTest { |
} |
}; |
-// TODO(lukasza): Pivot on mhtml-vs-complete-html using test params |
-// (once all SavePageMultiFrameBrowserTest are enabled). |
+// Test coverage for OOPIFs for CompleteHtml (crbug.com/526786) and |
+// MHTML (crbug.com/538766) as well as for redirected iframes saved |
+// as MHTML (crbug.com/539936). |
Randy Smith (Not in Mondays)
2015/11/13 22:39:07
I find this comment a bit confusing "as well as fo
|
+IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, CrossSite) { |
+ content::SavePageType save_page_type = GetParam(); |
-IN_PROC_BROWSER_TEST_F(SavePageMultiFrameBrowserTest, |
- CrossSiteFrames_CompleteHtml) { |
std::vector<std::string> expected_substrings{ |
"frames-xsite.htm: 896fd88d-a77a-4f46-afd8-24db7d5af9c2", |
"a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", |
"b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
}; |
- GURL url( |
- embedded_test_server()->GetURL("a.com", "/save_page/frames-xsite.htm")); |
- TestMultiFramePage(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, url, 3, |
- expected_substrings); |
-} |
-// Test for crbug.com/538766 and crbug.com/539936. |
-// Disabled because both bugs are not yet fixed. |
-IN_PROC_BROWSER_TEST_F(SavePageMultiFrameBrowserTest, |
- DISABLED_CrossSiteFrames_MHTML) { |
- std::vector<std::string> expected_substrings{ |
- "frames-xsite.htm: 896fd88d-a77a-4f46-afd8-24db7d5af9c2", |
- "a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", |
- "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
- }; |
GURL url( |
embedded_test_server()->GetURL("a.com", "/save_page/frames-xsite.htm")); |
- TestMultiFramePage(content::SAVE_PAGE_TYPE_AS_MHTML, url, 3, |
- expected_substrings); |
-} |
-// Test for crbug.com/553478 (complete html part). |
-IN_PROC_BROWSER_TEST_F(SavePageMultiFrameBrowserTest, |
- DISABLED_ObjectElements_CompleteHtml) { |
- // 4 = main frame + iframe + object w/ html doc + object w/ pdf doc |
- // (svg and png objects do not get a separate frame) |
- int expected_number_of_frames = 4; |
+ // TODO(lukasza): crbug.com/538766: Enable CrossSite testing of MHTML. |
+ if (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML) |
+ return; |
- std::vector<std::string> expected_substrings{ |
- "frames-objects.htm: 8da13db4-a512-4d9b-b1c5-dc1c134234b9", |
- "a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", |
- "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
- }; |
- GURL url( |
- embedded_test_server()->GetURL("a.com", "/save_page/frames-objects.htm")); |
- TestMultiFramePage(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, url, |
- expected_number_of_frames, expected_substrings); |
+ // TODO(lukasza/paulmeyer): crbug.com/457440: Can enable verification |
+ // of the original page once find-in-page works for OOP frames. |
+ bool skip_verification_of_original_page = true; |
+ |
+ TestMultiFramePage(save_page_type, url, 3, expected_substrings, |
+ skip_verification_of_original_page); |
} |
-// Test for crbug.com/553478 (mhtml part). |
-// See crbug.com/553478#c3 for some MHTML-specific notes. |
-IN_PROC_BROWSER_TEST_F(SavePageMultiFrameBrowserTest, |
- DISABLED_ObjectElements_MHTML) { |
+// Test for crbug.com/553478. |
Randy Smith (Not in Mondays)
2015/11/13 22:39:07
Could you include a line about what the test does
|
+IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, DISABLED_ObjectElements) { |
+ content::SavePageType save_page_type = GetParam(); |
+ |
// 4 = main frame + iframe + object w/ html doc + object w/ pdf doc |
// (svg and png objects do not get a separate frame) |
int expected_number_of_frames = 4; |
@@ -1036,36 +1017,50 @@ IN_PROC_BROWSER_TEST_F(SavePageMultiFrameBrowserTest, |
"a.htm: 1b8aae2b-e164-462f-bd5b-98aa366205f2", |
"b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
}; |
+ |
GURL url( |
embedded_test_server()->GetURL("a.com", "/save_page/frames-objects.htm")); |
- TestMultiFramePage(content::SAVE_PAGE_TYPE_AS_MHTML, url, |
- expected_number_of_frames, expected_substrings); |
+ |
+ TestMultiFramePage(save_page_type, url, expected_number_of_frames, |
+ expected_substrings); |
} |
-IN_PROC_BROWSER_TEST_F(SavePageMultiFrameBrowserTest, AboutBlank_CompleteHtml) { |
+IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, AboutBlank) { |
+ content::SavePageType save_page_type = GetParam(); |
+ |
std::vector<std::string> expected_substrings{ |
"main: acb0609d-eb10-4c26-83e2-ad8afb7b0ff3", |
"sub1: b124df3a-d39f-47a1-ae04-5bb5d0bf549e", |
"sub2: 07014068-604d-45ae-884f-a068cfe7bc0a", |
"sub3: 06cc8fcc-c692-4a1a-a10f-1645b746e8f4", |
}; |
+ |
GURL url(embedded_test_server()->GetURL("a.com", |
"/save_page/frames-about-blank.htm")); |
- TestMultiFramePage(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, url, 4, |
- expected_substrings); |
+ |
+ TestMultiFramePage(save_page_type, url, 4, expected_substrings); |
} |
-IN_PROC_BROWSER_TEST_F(SavePageMultiFrameBrowserTest, AboutBlank_MHTML) { |
+// Test for crbug.com/554666. |
+IN_PROC_BROWSER_TEST_P(SavePageMultiFrameBrowserTest, NestedFrames) { |
+ content::SavePageType save_page_type = GetParam(); |
+ |
std::vector<std::string> expected_substrings{ |
- "main: acb0609d-eb10-4c26-83e2-ad8afb7b0ff3", |
- "sub1: b124df3a-d39f-47a1-ae04-5bb5d0bf549e", |
- "sub2: 07014068-604d-45ae-884f-a068cfe7bc0a", |
- "sub3: 06cc8fcc-c692-4a1a-a10f-1645b746e8f4", |
+ "frames-nested.htm: 4388232f-8d45-4d2e-9807-721b381be153", |
+ "frames-nested2.htm: 6d23dc47-f283-4977-96ec-66bcf72301a4", |
+ "b.htm: 3a35f7fa-96a9-4487-9f18-4470263907fa", |
}; |
- GURL url(embedded_test_server()->GetURL("a.com", |
- "/save_page/frames-about-blank.htm")); |
- TestMultiFramePage(content::SAVE_PAGE_TYPE_AS_MHTML, url, 4, |
- expected_substrings); |
+ |
+ GURL url( |
+ embedded_test_server()->GetURL("a.com", "/save_page/frames-nested.htm")); |
+ |
+ TestMultiFramePage(save_page_type, url, 3, expected_substrings); |
} |
+INSTANTIATE_TEST_CASE_P( |
+ , |
Randy Smith (Not in Mondays)
2015/11/13 22:39:07
nit, suggestion: I'm no expert in the use of INSTA
|
+ SavePageMultiFrameBrowserTest, |
+ ::testing::Values(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, |
+ content::SAVE_PAGE_TYPE_AS_MHTML)); |
+ |
} // namespace |