| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "base/file_util.h" | |
| 6 #include "base/path_service.h" | |
| 7 #include "base/string_util.h" | |
| 8 #include "chrome/browser/automation/url_request_mock_http_job.h" | |
| 9 #include "chrome/browser/save_package.h" | |
| 10 #include "chrome/common/chrome_paths.h" | |
| 11 #include "chrome/test/automation/tab_proxy.h" | |
| 12 #include "chrome/test/ui/ui_test.h" | |
| 13 #include "net/url_request/url_request_unittest.h" | |
| 14 | |
| 15 const std::wstring kTestDir = L"save_page"; | |
| 16 | |
| 17 class SavePageTest : public UITest { | |
| 18 protected: | |
| 19 SavePageTest() : UITest() {} | |
| 20 | |
| 21 void CheckFile(const std::wstring& client_file, | |
| 22 const std::wstring& server_file, | |
| 23 bool check_equal) { | |
| 24 bool exist = false; | |
| 25 for (int i = 0; i < 20; ++i) { | |
| 26 if (file_util::PathExists(client_file)) { | |
| 27 exist = true; | |
| 28 break; | |
| 29 } | |
| 30 Sleep(kWaitForActionMaxMsec / 20); | |
| 31 } | |
| 32 EXPECT_TRUE(exist); | |
| 33 | |
| 34 if (check_equal) { | |
| 35 std::wstring server_file_name; | |
| 36 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, | |
| 37 &server_file_name)); | |
| 38 server_file_name += L"\\" + kTestDir + L"\\" + server_file; | |
| 39 ASSERT_TRUE(file_util::PathExists(server_file_name)); | |
| 40 | |
| 41 int64 client_file_size = 0; | |
| 42 int64 server_file_size = 0; | |
| 43 EXPECT_TRUE(file_util::GetFileSize(client_file, &client_file_size)); | |
| 44 EXPECT_TRUE(file_util::GetFileSize(server_file_name, &server_file_size)); | |
| 45 EXPECT_EQ(client_file_size, server_file_size); | |
| 46 EXPECT_PRED2(file_util::ContentsEqual, client_file, server_file_name); | |
| 47 } | |
| 48 | |
| 49 EXPECT_TRUE(DieFileDie(client_file, false)); | |
| 50 } | |
| 51 | |
| 52 virtual void SetUp() { | |
| 53 UITest::SetUp(); | |
| 54 EXPECT_TRUE(file_util::CreateNewTempDirectory(L"", &save_dir_)); | |
| 55 save_dir_ += file_util::kPathSeparator; | |
| 56 } | |
| 57 | |
| 58 std::wstring save_dir_; | |
| 59 }; | |
| 60 | |
| 61 TEST_F(SavePageTest, SaveHTMLOnly) { | |
| 62 std::wstring file_name = L"a.htm"; | |
| 63 std::wstring full_file_name = save_dir_ + file_name; | |
| 64 std::wstring dir = save_dir_ + L"a_files"; | |
| 65 | |
| 66 GURL url = URLRequestMockHTTPJob::GetMockUrl(kTestDir + L"/" + file_name); | |
| 67 scoped_ptr<TabProxy> tab(GetActiveTab()); | |
| 68 ASSERT_TRUE(tab->NavigateToURL(url)); | |
| 69 WaitUntilTabCount(1); | |
| 70 | |
| 71 EXPECT_TRUE(tab->SavePage(full_file_name, dir, | |
| 72 SavePackage::SAVE_AS_ONLY_HTML)); | |
| 73 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); | |
| 74 | |
| 75 CheckFile(full_file_name, file_name, true); | |
| 76 EXPECT_FALSE(file_util::PathExists(dir)); | |
| 77 } | |
| 78 | |
| 79 TEST_F(SavePageTest, SaveCompleteHTML) { | |
| 80 std::wstring file_name = L"b.htm"; | |
| 81 std::wstring full_file_name = save_dir_ + file_name; | |
| 82 std::wstring dir = save_dir_ + L"b_files"; | |
| 83 | |
| 84 GURL url = URLRequestMockHTTPJob::GetMockUrl(kTestDir + L"/" + file_name); | |
| 85 scoped_ptr<TabProxy> tab(GetActiveTab()); | |
| 86 ASSERT_TRUE(tab->NavigateToURL(url)); | |
| 87 WaitUntilTabCount(1); | |
| 88 | |
| 89 EXPECT_TRUE(tab->SavePage(full_file_name, dir, | |
| 90 SavePackage::SAVE_AS_COMPLETE_HTML)); | |
| 91 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); | |
| 92 | |
| 93 CheckFile(dir + L"\\1.png", L"1.png", true); | |
| 94 CheckFile(dir + L"\\1.css", L"1.css", true); | |
| 95 CheckFile(full_file_name, file_name, false); | |
| 96 EXPECT_TRUE(DieFileDie(dir, true)); | |
| 97 } | |
| 98 | |
| 99 TEST_F(SavePageTest, NoSave) { | |
| 100 std::wstring file_name = L"c.htm"; | |
| 101 std::wstring full_file_name = save_dir_ + file_name; | |
| 102 std::wstring dir = save_dir_ + L"c_files"; | |
| 103 | |
| 104 scoped_ptr<TabProxy> tab(GetActiveTab()); | |
| 105 ASSERT_TRUE(tab->NavigateToURL(GURL(L"about:blank"))); | |
| 106 WaitUntilTabCount(1); | |
| 107 | |
| 108 EXPECT_FALSE(tab->SavePage(full_file_name, dir, | |
| 109 SavePackage::SAVE_AS_ONLY_HTML)); | |
| 110 EXPECT_FALSE(WaitForDownloadShelfVisible(tab.get())); | |
| 111 } | |
| 112 | |
| OLD | NEW |