Chromium Code Reviews| Index: chrome/test/functional/downloads.py |
| diff --git a/chrome/test/functional/downloads.py b/chrome/test/functional/downloads.py |
| index 88c0be7f3003bb1653ef7758b2b7d84e6dd0e09f..d8ad45087a24fdf414315e7924d16ab99a728a52 100644 |
| --- a/chrome/test/functional/downloads.py |
| +++ b/chrome/test/functional/downloads.py |
| @@ -100,7 +100,7 @@ class DownloadsTest(pyauto.PyUITest): |
| def testNoDownloadWaitingNeeded(self): |
| """Make sure "wait for downloads" returns quickly if we have none.""" |
| - self.WaitForAllDownloadsToComplete() |
| + self.WaitForAllDownloadsToComplete([]) |
|
Nirnimesh
2011/08/08 17:26:17
See my notes in pyauto.py
This should default to [
dennis_jeffrey
2011/08/08 22:29:51
Done.
|
| def testZip(self): |
| """Download a zip and verify that it downloaded correctly. |
| @@ -113,10 +113,11 @@ class DownloadsTest(pyauto.PyUITest): |
| 'a_zip_file.zip') |
| self._ClearLocalDownloadState(downloaded_pkg) |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self.DownloadAndWaitForStart(file_url) |
| # Wait for the download to finish. |
| - self.WaitForAllDownloadsToComplete() |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| # Verify that the download shelf is visible |
| self.assertTrue(self.IsDownloadShelfVisible()) |
| @@ -136,11 +137,10 @@ class DownloadsTest(pyauto.PyUITest): |
| self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW) |
| # Trigger download and wait in new incognito window. |
| - self.DownloadAndWaitForStart(file_url, 1) |
| - self.WaitForAllDownloadsToComplete(1) |
| - # Remove next line when WaitForAllDownloadsToComplete can reliably wait |
| - # for downloads in incognito window. crbug.com/69738 |
| - self.WaitForDownloadToComplete(downloaded_pkg) |
| + pre_download_ids = [x['id'] |
| + for x in self.GetDownloadsInfo(windex=1).Downloads()] |
| + self.DownloadAndWaitForStart(file_url, windex=1) |
| + self.WaitForAllDownloadsToComplete(pre_download_ids, windex=1) |
| incognito_downloads = self.GetDownloadsInfo(1).Downloads() |
| # Verify that download info exists in the correct profile. |
| @@ -157,10 +157,11 @@ class DownloadsTest(pyauto.PyUITest): |
| downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), |
| os.path.basename(file_path)) |
| self._ClearLocalDownloadState(downloaded_pkg) |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self._TriggerUnsafeDownload(os.path.basename(file_path)) |
| self.PerformActionOnDownload(self._GetDownloadId(), |
| 'save_dangerous_download') |
| - self.WaitForDownloadToComplete(downloaded_pkg) |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| # Verify that the file was downloaded. |
| self.assertTrue(os.path.exists(downloaded_pkg)) |
| @@ -187,7 +188,9 @@ class DownloadsTest(pyauto.PyUITest): |
| 'a_zip_file.zip') |
| self._ClearLocalDownloadState(downloaded_pkg) |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self.DownloadAndWaitForStart(file_url) |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| self.PerformActionOnDownload(self._GetDownloadId(), 'remove') |
| # The download is removed from downloads, but not from the disk. |
| @@ -211,9 +214,11 @@ class DownloadsTest(pyauto.PyUITest): |
| downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), |
| os.path.basename(file_path)) |
| self._ClearLocalDownloadState(downloaded_pkg) |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self.DownloadAndWaitForStart(file_url) |
| self._DeleteAfterShutdown(downloaded_pkg) |
| - self.WaitForAllDownloadsToComplete(timeout=self.large_test_timeout_ms()); |
| + self.WaitForAllDownloadsToComplete(pre_download_ids, |
| + timeout=self.large_test_timeout_ms()); |
| # Verify that the file was correctly downloaded |
| self.assertTrue(os.path.exists(downloaded_pkg), |
| 'Downloaded file %s missing.' % downloaded_pkg) |
| @@ -227,6 +232,7 @@ class DownloadsTest(pyauto.PyUITest): |
| file_url = 'file://%s' % os.path.join(test_dir, 'a_zip_file.zip') |
| download_dir = self.GetDownloadDirectory().value() |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| num_times = 5 |
| assert num_times > 1, 'needs to be > 1 to work' |
| renamed_files = [] |
| @@ -239,7 +245,7 @@ class DownloadsTest(pyauto.PyUITest): |
| self._ClearLocalDownloadState(expected_filename) |
| self.DownloadAndWaitForStart(file_url) |
| - self.WaitForAllDownloadsToComplete() |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| # Verify that all files exist and have the right name |
| for filename in renamed_files: |
| @@ -272,6 +278,7 @@ class DownloadsTest(pyauto.PyUITest): |
| # Filesystem-interfacing functions like os.listdir() need to |
| # be given unicode strings to "do the right thing" on win. |
| # Ref: http://boodebr.org/main/python/all-about-python-and-unicode |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| for filename in crazy_filenames: # filename is unicode. |
| utf8_filename = filename.encode('utf-8') |
| file_path = os.path.join(temp_dir, utf8_filename) |
| @@ -280,7 +287,7 @@ class DownloadsTest(pyauto.PyUITest): |
| downloaded_file = os.path.join(download_dir, filename) |
| self._ClearLocalDownloadState(downloaded_file) |
| self.DownloadAndWaitForStart(file_url) |
| - self.WaitForAllDownloadsToComplete() |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| # Verify downloads. |
| downloads = self.GetDownloadsInfo().Downloads() |
| @@ -335,6 +342,7 @@ class DownloadsTest(pyauto.PyUITest): |
| downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), |
| os.path.basename(file_path)) |
| self._ClearLocalDownloadState(downloaded_pkg) |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self.DownloadAndWaitForStart(file_url) |
| self._DeleteAfterShutdown(downloaded_pkg) |
| @@ -354,7 +362,8 @@ class DownloadsTest(pyauto.PyUITest): |
| resume_dict = self.PerformActionOnDownload(self._GetDownloadId(), |
| 'toggle_pause') |
| self.assertFalse(resume_dict['is_paused']) |
| - self.WaitForAllDownloadsToComplete(timeout=self.large_test_timeout_ms()); |
| + self.WaitForAllDownloadsToComplete(pre_download_ids, |
| + timeout=self.large_test_timeout_ms()); |
| # Verify that the file was correctly downloaded after pause and resume. |
| self.assertTrue(os.path.exists(downloaded_pkg), |
| @@ -372,6 +381,7 @@ class DownloadsTest(pyauto.PyUITest): |
| downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), |
| os.path.basename(file_path)) |
| self._ClearLocalDownloadState(downloaded_pkg) |
| + |
| self.DownloadAndWaitForStart(file_url) |
| self.PerformActionOnDownload(self._GetDownloadId(), 'cancel') |
| self._DeleteAfterShutdown(file_path) |
| @@ -393,8 +403,9 @@ class DownloadsTest(pyauto.PyUITest): |
| downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), |
| 'a_zip_file.zip') |
| self._ClearLocalDownloadState(downloaded_pkg) |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self.DownloadAndWaitForStart(file_url) |
| - self.WaitForDownloadToComplete(downloaded_pkg) |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| downloads = self.GetDownloadsInfo().Downloads() |
| self.assertEqual(1, len(downloads)) |
| self.assertEqual('a_zip_file.zip', downloads[0]['file_name']) |
| @@ -440,8 +451,9 @@ class DownloadsTest(pyauto.PyUITest): |
| self._ClearLocalDownloadState(downloaded_pkg) |
| file_url = 'http://src.chromium.org/viewvc/chrome/trunk/src/chrome/'\ |
| 'test/data/downloads/a_zip_file.zip' |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self.DownloadAndWaitForStart(file_url) |
| - self.WaitForAllDownloadsToComplete() |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| import xattr |
| self.assertTrue('com.apple.quarantine' in xattr.listxattr(downloaded_pkg)) |
| @@ -453,6 +465,7 @@ class DownloadsTest(pyauto.PyUITest): |
| downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), |
| os.path.basename(file_path)) |
| os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg) |
| + pre_download_ids = [x['id'] for x in self.GetDownloadsInfo().Downloads()] |
| self.DownloadAndWaitForStart(file_url) |
| downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), |
| os.path.basename(file_path)) |
| @@ -464,7 +477,7 @@ class DownloadsTest(pyauto.PyUITest): |
| self.assertTrue(self.WaitUntil(_PercentInc), |
| msg='Download percentage value is not increasing') |
| # Once download is completed, percentage is 100. |
| - self.WaitForAllDownloadsToComplete() |
| + self.WaitForAllDownloadsToComplete(pre_download_ids) |
| downloads = self.GetDownloadsInfo().Downloads() |
| self.assertEqual(downloads[0]['PercentComplete'], 100, |
| 'Download percentage should be 100 after download completed') |
| @@ -486,12 +499,16 @@ class DownloadsTest(pyauto.PyUITest): |
| self._ClearLocalDownloadState(downloaded_pkg_regul) |
| self._ClearLocalDownloadState(downloaded_pkg_incog) |
| + pre_download_ids_0 = [x['id'] |
| + for x in self.GetDownloadsInfo(windex=0).Downloads()] |
| self.DownloadAndWaitForStart(file_url, 0) |
| - self.WaitForAllDownloadsToComplete(0) |
| + self.WaitForAllDownloadsToComplete(pre_download_ids_0, windex=0) |
| self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW) |
| + pre_download_ids_1 = [x['id'] |
| + for x in self.GetDownloadsInfo(windex=1).Downloads()] |
| self.DownloadAndWaitForStart(file_url, 1) |
| - self.WaitForAllDownloadsToComplete(1) |
| + self.WaitForAllDownloadsToComplete(pre_download_ids_1, windex=1) |
| # Verify download in regular window. |
| self.assertTrue(os.path.exists(downloaded_pkg_regul)) |