summaryrefslogtreecommitdiffstats
path: root/chrome/browser/download
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-09 18:49:02 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-09 18:49:02 +0000
commitf5b3bda9fea3606111ed4e1b7cb36df44e8448b7 (patch)
treef7722c67414ae3fb0f7a8f780eaee8d3c70748ce /chrome/browser/download
parent16e785bf7ae2d1910d38e0e5843acd4648d50b21 (diff)
downloadchromium_src-f5b3bda9fea3606111ed4e1b7cb36df44e8448b7.zip
chromium_src-f5b3bda9fea3606111ed4e1b7cb36df44e8448b7.tar.gz
chromium_src-f5b3bda9fea3606111ed4e1b7cb36df44e8448b7.tar.bz2
UI test string portage.
These files now compile on linux (but they don't link) and they still pass windows. When Pawel gets done with his changes to UI test stuff, we should be able to just enable these tests. The changes to chrome.gyp are just to fix lint errors. Review URL: http://codereview.chromium.org/63149 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13442 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/download')
-rw-r--r--chrome/browser/download/download_uitest.cc84
-rw-r--r--chrome/browser/download/save_page_uitest.cc112
2 files changed, 111 insertions, 85 deletions
diff --git a/chrome/browser/download/download_uitest.cc b/chrome/browser/download/download_uitest.cc
index 941910a..656774b 100644
--- a/chrome/browser/download/download_uitest.cc
+++ b/chrome/browser/download/download_uitest.cc
@@ -2,7 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#if defined(OS_WIN)
#include <shlwapi.h>
+#endif
#include <sstream>
#include <string>
@@ -19,14 +21,17 @@
#include "chrome/test/ui/ui_test.h"
#include "chrome/test/automation/tab_proxy.h"
#include "chrome/test/automation/browser_proxy.h"
+#include "net/base/net_util.h"
#include "net/url_request/url_request_unittest.h"
+using std::string;
using std::wstring;
namespace {
const wchar_t kDocRoot[] = L"chrome/test/data";
+#if defined(OS_WIN)
// Checks if the volume supports Alternate Data Streams. This is required for
// the Zone Identifier implementation.
bool VolumeSupportsADS(const std::wstring path) {
@@ -64,56 +69,57 @@ void CheckZoneIdentifier(const std::wstring full_path) {
ASSERT_EQ(0, strcmp(kIdentifier, buffer));
}
+#endif
class DownloadTest : public UITest {
protected:
DownloadTest() : UITest() {}
- void CleanUpDownload(const std::wstring& client_filename,
- const std::wstring& server_filename) {
+ void CleanUpDownload(const FilePath& client_filename,
+ const FilePath& server_filename) {
// Find the path on the client.
- std::wstring file_on_client(download_prefix_);
- file_on_client.append(client_filename);
+ FilePath file_on_client(download_prefix_);
+ file_on_client = file_on_client.Append(client_filename);
EXPECT_TRUE(file_util::PathExists(file_on_client));
// Find the path on the server.
- std::wstring file_on_server;
+ FilePath file_on_server;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA,
&file_on_server));
- file_on_server.append(L"\\");
- file_on_server.append(server_filename);
+ file_on_server = file_on_server.Append(server_filename);
ASSERT_TRUE(file_util::PathExists(file_on_server));
// Check that we downloaded the file correctly.
EXPECT_TRUE(file_util::ContentsEqual(file_on_server,
file_on_client));
+#if defined(OS_WIN)
// Check if the Zone Identifier is correclty set.
- if (VolumeSupportsADS(file_on_client))
- CheckZoneIdentifier(file_on_client);
+ if (VolumeSupportsADS(file_on_client.value()))
+ CheckZoneIdentifier(file_on_client.value());
+#endif
// Delete the client copy of the file.
EXPECT_TRUE(file_util::Delete(file_on_client, false));
}
- void CleanUpDownload(const std::wstring& file) {
+ void CleanUpDownload(const FilePath& file) {
CleanUpDownload(file, file);
}
virtual void SetUp() {
UITest::SetUp();
- download_prefix_ = GetDownloadDirectory();
- download_prefix_ += FilePath::kSeparators[0];
+ download_prefix_ = FilePath::FromWStringHack(GetDownloadDirectory());
}
protected:
- void RunSizeTest(const wstring& url,
+ void RunSizeTest(const GURL& url,
const wstring& expected_title_in_progress,
const wstring& expected_title_finished) {
{
EXPECT_EQ(1, GetTabCount());
- NavigateToURL(GURL(url));
+ NavigateToURL(url);
// Downloads appear in the shelf
WaitUntilTabCount(1);
// TODO(tc): check download status text
@@ -132,19 +138,22 @@ class DownloadTest : public UITest {
EXPECT_TRUE(WaitForDownloadShelfVisible(dl_tab.get()));
}
- std::wstring filename = file_util::GetFilenameFromPath(url);
- EXPECT_TRUE(file_util::PathExists(download_prefix_ + filename));
+ FilePath filename;
+ net::FileURLToFilePath(url, &filename);
+ filename = filename.BaseName();
+ FilePath download_path = download_prefix_.Append(filename);
+ EXPECT_TRUE(file_util::PathExists(download_path));
// Delete the file we just downloaded.
for (int i = 0; i < 10; ++i) {
- if (file_util::Delete(download_prefix_ + filename, false))
+ if (file_util::Delete(download_path, false))
break;
PlatformThread::Sleep(action_max_timeout_ms() / 10);
}
- EXPECT_FALSE(file_util::PathExists(download_prefix_ + filename));
+ EXPECT_FALSE(file_util::PathExists(download_path));
}
- wstring download_prefix_;
+ FilePath download_prefix_;
};
} // namespace
@@ -152,12 +161,11 @@ class DownloadTest : public UITest {
// Download a file with non-viewable content, verify that the
// download tab opened and the file exists.
TEST_F(DownloadTest, DownloadMimeType) {
- wstring file = L"download-test1.lib";
- wstring expected_title = L"100% - " + file;
+ FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
EXPECT_EQ(1, GetTabCount());
- NavigateToURL(URLRequestMockHTTPJob::GetMockUrl(file));
+ NavigateToURL(URLRequestMockHTTPJob::GetMockUrl(file.ToWStringHack()));
// No new tabs created, downloads appear in the current tab's download shelf.
WaitUntilTabCount(1);
@@ -174,16 +182,15 @@ TEST_F(DownloadTest, DownloadMimeType) {
// Access a file with a viewable mime-type, verify that a download
// did not initiate.
TEST_F(DownloadTest, NoDownload) {
- wstring file = L"download-test2.html";
- wstring file_path = download_prefix_;
- file_util::AppendToPath(&file_path, file);
+ FilePath file(FILE_PATH_LITERAL("download-test2.html"));
+ FilePath file_path = download_prefix_.Append(file);
if (file_util::PathExists(file_path))
ASSERT_TRUE(file_util::Delete(file_path, false));
EXPECT_EQ(1, GetTabCount());
- NavigateToURL(URLRequestMockHTTPJob::GetMockUrl(file));
+ NavigateToURL(URLRequestMockHTTPJob::GetMockUrl(file.ToWStringHack()));
WaitUntilTabCount(1);
// Wait to see if the file will be downloaded.
@@ -202,13 +209,12 @@ TEST_F(DownloadTest, NoDownload) {
// download tab opened and the file exists as the filename specified in the
// header. This also ensures we properly handle empty file downloads.
TEST_F(DownloadTest, ContentDisposition) {
- wstring file = L"download-test3.gif";
- wstring download_file = L"download-test3-attachment.gif";
- wstring expected_title = L"100% - " + download_file;
+ FilePath file(FILE_PATH_LITERAL("download-test3.gif"));
+ FilePath download_file(FILE_PATH_LITERAL("download-test3-attachment.gif"));
EXPECT_EQ(1, GetTabCount());
- NavigateToURL(URLRequestMockHTTPJob::GetMockUrl(file));
+ NavigateToURL(URLRequestMockHTTPJob::GetMockUrl(file.ToWStringHack()));
WaitUntilTabCount(1);
// Wait until the file is downloaded.
@@ -229,14 +235,20 @@ TEST_F(DownloadTest, ContentDisposition) {
// in the middle until the server receives a second request for
// "download-finish. At that time, the download will finish.
TEST_F(DownloadTest, UnknownSize) {
- std::wstring url(URLRequestSlowDownloadJob::kUnknownSizeUrl);
- std::wstring filename = file_util::GetFilenameFromPath(url);
- RunSizeTest(url, L"32.0 KB - " + filename, L"100% - " + filename);
+ GURL url(URLRequestSlowDownloadJob::kUnknownSizeUrl);
+ FilePath filename;
+ net::FileURLToFilePath(url, &filename);
+ filename = filename.BaseName();
+ RunSizeTest(url, L"32.0 KB - " + filename.ToWStringHack(),
+ L"100% - " + filename.ToWStringHack());
}
// http://b/1158253
TEST_F(DownloadTest, DISABLED_KnownSize) {
- std::wstring url(URLRequestSlowDownloadJob::kKnownSizeUrl);
- std::wstring filename = file_util::GetFilenameFromPath(url);
- RunSizeTest(url, L"71% - " + filename, L"100% - " + filename);
+ GURL url(URLRequestSlowDownloadJob::kKnownSizeUrl);
+ FilePath filename;
+ net::FileURLToFilePath(url, &filename);
+ filename = filename.BaseName();
+ RunSizeTest(url, L"71% - " + filename.ToWStringHack(),
+ L"100% - " + filename.ToWStringHack());
}
diff --git a/chrome/browser/download/save_page_uitest.cc b/chrome/browser/download/save_page_uitest.cc
index 78e3759..f9a2036 100644
--- a/chrome/browser/download/save_page_uitest.cc
+++ b/chrome/browser/download/save_page_uitest.cc
@@ -4,6 +4,7 @@
#include "base/file_util.h"
#include "base/path_service.h"
+#include "base/platform_thread.h"
#include "base/string_util.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/automation/url_request_mock_http_job.h"
@@ -14,14 +15,14 @@
#include "chrome/test/ui/ui_test.h"
#include "net/url_request/url_request_unittest.h"
-const std::wstring kTestDir = L"save_page";
+const std::string kTestDir = "save_page";
class SavePageTest : public UITest {
protected:
SavePageTest() : UITest() {}
- void CheckFile(const std::wstring& client_file,
- const std::wstring& server_file,
+ void CheckFile(const FilePath& client_file,
+ const FilePath& server_file,
bool check_equal) {
bool exist = false;
for (int i = 0; i < 20; ++i) {
@@ -29,15 +30,16 @@ class SavePageTest : public UITest {
exist = true;
break;
}
- Sleep(sleep_timeout_ms());
+ PlatformThread::Sleep(sleep_timeout_ms());
}
EXPECT_TRUE(exist);
if (check_equal) {
- std::wstring server_file_name;
+ FilePath server_file_name;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA,
&server_file_name));
- server_file_name += L"\\" + kTestDir + L"\\" + server_file;
+ server_file_name = server_file_name.AppendASCII(kTestDir)
+ .Append(server_file);
ASSERT_TRUE(file_util::PathExists(server_file_name));
int64 client_file_size = 0;
@@ -53,11 +55,10 @@ class SavePageTest : public UITest {
virtual void SetUp() {
UITest::SetUp();
- EXPECT_TRUE(file_util::CreateNewTempDirectory(L"", &save_dir_));
- save_dir_ += FilePath::kSeparators[0];
+ EXPECT_TRUE(file_util::CreateNewTempDirectory(FILE_PATH_LITERAL(""),
+ &save_dir_));
- download_dir_ = GetDownloadDirectory();
- download_dir_ += FilePath::kSeparators[0];
+ download_dir_ = FilePath::FromWStringHack(GetDownloadDirectory());
}
virtual void TearDown() {
@@ -65,70 +66,78 @@ class SavePageTest : public UITest {
DieFileDie(save_dir_, true);
}
- std::wstring save_dir_;
- std::wstring download_dir_;
+ FilePath save_dir_;
+ FilePath download_dir_;
};
TEST_F(SavePageTest, SaveHTMLOnly) {
- std::wstring file_name = L"a.htm";
- std::wstring full_file_name = save_dir_ + file_name;
- std::wstring dir = save_dir_ + L"a_files";
+ std::string file_name("a.htm");
+ FilePath full_file_name = save_dir_.AppendASCII(file_name);
+ FilePath dir = save_dir_.AppendASCII("a_files");
- GURL url = URLRequestMockHTTPJob::GetMockUrl(kTestDir + L"/" + file_name);
+ GURL url = URLRequestMockHTTPJob::GetMockUrl(
+ UTF8ToWide(kTestDir + "/" + file_name));
scoped_ptr<TabProxy> tab(GetActiveTab());
ASSERT_TRUE(tab->NavigateToURL(url));
WaitUntilTabCount(1);
- EXPECT_TRUE(tab->SavePage(full_file_name, dir,
- SavePackage::SAVE_AS_ONLY_HTML));
+ EXPECT_TRUE(tab->SavePage(full_file_name.ToWStringHack(), dir.ToWStringHack(),
+ SavePackage::SAVE_AS_ONLY_HTML));
EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get()));
- CheckFile(full_file_name, file_name, true);
+ CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)),
+ true);
EXPECT_FALSE(file_util::PathExists(dir));
}
TEST_F(SavePageTest, SaveCompleteHTML) {
- std::wstring file_name = L"b.htm";
- std::wstring full_file_name = save_dir_ + file_name;
- std::wstring dir = save_dir_ + L"b_files";
+ std::string file_name = "b.htm";
+ FilePath full_file_name = save_dir_.AppendASCII(file_name);
+ FilePath dir = save_dir_.AppendASCII("b_files");
- GURL url = URLRequestMockHTTPJob::GetMockUrl(kTestDir + L"/" + file_name);
+ GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" +
+ file_name));
scoped_ptr<TabProxy> tab(GetActiveTab());
ASSERT_TRUE(tab->NavigateToURL(url));
WaitUntilTabCount(1);
- EXPECT_TRUE(tab->SavePage(full_file_name, dir,
- SavePackage::SAVE_AS_COMPLETE_HTML));
+ EXPECT_TRUE(tab->SavePage(full_file_name.ToWStringHack(), dir.ToWStringHack(),
+ SavePackage::SAVE_AS_COMPLETE_HTML));
EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get()));
- CheckFile(dir + L"\\1.png", L"1.png", true);
- CheckFile(dir + L"\\1.css", L"1.css", true);
- CheckFile(full_file_name, file_name, false);
+ CheckFile(dir.AppendASCII("1.png"), FilePath(FILE_PATH_LITERAL("1.png")),
+ true);
+ CheckFile(dir.AppendASCII("1.css"), FilePath(FILE_PATH_LITERAL("1.css")),
+ true);
+ CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)),
+ false);
EXPECT_TRUE(DieFileDie(dir, true));
}
TEST_F(SavePageTest, NoSave) {
- std::wstring file_name = L"c.htm";
- std::wstring full_file_name = save_dir_ + file_name;
- std::wstring dir = save_dir_ + L"c_files";
+ std::string file_name = "c.htm";
+ FilePath full_file_name = save_dir_.AppendASCII(file_name);
+ FilePath dir = save_dir_.AppendASCII("c_files");
scoped_ptr<TabProxy> tab(GetActiveTab());
- ASSERT_TRUE(tab->NavigateToURL(GURL(L"about:blank")));
+ ASSERT_TRUE(tab->NavigateToURL(GURL("about:blank")));
WaitUntilTabCount(1);
- EXPECT_FALSE(tab->SavePage(full_file_name, dir,
- SavePackage::SAVE_AS_ONLY_HTML));
+ EXPECT_FALSE(tab->SavePage(full_file_name.ToWStringHack(),
+ dir.ToWStringHack(),
+ SavePackage::SAVE_AS_ONLY_HTML));
EXPECT_FALSE(WaitForDownloadShelfVisible(tab.get()));
}
TEST_F(SavePageTest, FilenameFromPageTitle) {
- std::wstring file_name = L"b.htm";
- std::wstring full_file_name = download_dir_ +
- L"Test page for saving page feature.htm";
- std::wstring dir = download_dir_ +
- L"Test page for saving page feature_files";
-
- GURL url = URLRequestMockHTTPJob::GetMockUrl(kTestDir + L"/" + file_name);
+ std::string file_name = "b.htm";
+ FilePath full_file_name = download_dir_.AppendASCII(
+ "Test page for saving page feature.htm");
+ FilePath dir = download_dir_.AppendASCII(
+ "Test page for saving page feature_files");
+
+ GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" +
+ file_name));
scoped_ptr<TabProxy> tab(GetActiveTab());
ASSERT_TRUE(tab->NavigateToURL(url));
WaitUntilTabCount(1);
@@ -139,19 +148,23 @@ TEST_F(SavePageTest, FilenameFromPageTitle) {
EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get()));
automation()->SavePackageShouldPromptUser(true);
- CheckFile(dir + L"\\1.png", L"1.png", true);
- CheckFile(dir + L"\\1.css", L"1.css", true);
- CheckFile(full_file_name, file_name, false);
+ CheckFile(dir.AppendASCII("1.png"), FilePath(FILE_PATH_LITERAL("1.png")),
+ true);
+ CheckFile(dir.AppendASCII("1.css"), FilePath(FILE_PATH_LITERAL("1.css")),
+ true);
+ CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)),
+ false);
EXPECT_TRUE(DieFileDie(full_file_name, false));
EXPECT_TRUE(DieFileDie(dir, true));
}
TEST_F(SavePageTest, CleanFilenameFromPageTitle) {
- std::wstring file_name = L"c.htm";
- std::wstring full_file_name = download_dir_ + L"test.htm";
- std::wstring dir = download_dir_ + L"test_files";
+ std::string file_name = "c.htm";
+ FilePath full_file_name = download_dir_.AppendASCII("test.htm");
+ FilePath dir = download_dir_.AppendASCII("test_files");
- GURL url = URLRequestMockHTTPJob::GetMockUrl(kTestDir + L"/" + file_name);
+ GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" +
+ file_name));
scoped_ptr<TabProxy> tab(GetActiveTab());
ASSERT_TRUE(tab->NavigateToURL(url));
WaitUntilTabCount(1);
@@ -162,7 +175,8 @@ TEST_F(SavePageTest, CleanFilenameFromPageTitle) {
EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get()));
automation()->SavePackageShouldPromptUser(true);
- CheckFile(full_file_name, file_name, false);
+ CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)),
+ false);
EXPECT_TRUE(DieFileDie(full_file_name, false));
EXPECT_TRUE(DieFileDie(dir, true));
}