Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(231)

Side by Side Diff: chrome/test/functional/downloads.py

Issue 6159001: Modifying some downloads hooks to act per-window (so that incognito windows c... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import commands 6 import commands
7 import filecmp 7 import filecmp
8 import logging 8 import logging
9 import os 9 import os
10 import shutil 10 import shutil
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg)) 138 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg))
139 139
140 def testZipInIncognito(self): 140 def testZipInIncognito(self):
141 """Download and verify a zip in incognito window.""" 141 """Download and verify a zip in incognito window."""
142 test_dir = os.path.join(os.path.abspath(self.DataDir()), 'downloads') 142 test_dir = os.path.join(os.path.abspath(self.DataDir()), 'downloads')
143 file_path = os.path.join(test_dir, 'a_zip_file.zip') 143 file_path = os.path.join(test_dir, 'a_zip_file.zip')
144 file_url = self.GetFileURLForPath(file_path) 144 file_url = self.GetFileURLForPath(file_path)
145 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), 145 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(),
146 'a_zip_file.zip') 146 'a_zip_file.zip')
147 self._ClearLocalDownloadState(downloaded_pkg) 147 self._ClearLocalDownloadState(downloaded_pkg)
148 self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
148 149
149 self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW) # open incognito window 150 # Trigger download and wait in new incognito window.
150 # Downloads from incognito window do not figure in GetDownloadsInfo() 151 self.DownloadAndWaitForStart(file_url, 1)
151 # since the download manager's list doesn't contain it. 152 self.WaitForAllDownloadsToComplete(1)
152 # Using WaitUntil is the only resort. 153 incognito_downloads = self.GetDownloadsInfo(1).Downloads()
153 self.NavigateToURL(file_url, 1, 0) 154
154 self.assertTrue(self.WaitUntil(lambda: os.path.exists(downloaded_pkg))) 155 # Verify that download info exists in the correct profile.
156 self.assertEqual(len(incognito_downloads), 1)
155 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg)) 157 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg))
156 self.assertTrue(self.IsDownloadShelfVisible(1)) 158 self.assertTrue(self.IsDownloadShelfVisible(1))
157 159
158 def testSaveDangerousFile(self): 160 def testSaveDangerousFile(self):
159 """Verify that we can download and save a dangerous file.""" 161 """Verify that we can download and save a dangerous file."""
160 file_path = self._GetDangerousDownload() 162 file_path = self._GetDangerousDownload()
161 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), 163 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(),
162 os.path.basename(file_path)) 164 os.path.basename(file_path))
163 self._ClearLocalDownloadState(downloaded_pkg) 165 self._ClearLocalDownloadState(downloaded_pkg)
164 self._TriggerUnsafeDownload(os.path.basename(file_path)) 166 self._TriggerUnsafeDownload(os.path.basename(file_path))
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 file_path = self._MakeFile(2**24) 527 file_path = self._MakeFile(2**24)
526 file_url = self.GetFileURLForPath(file_path) 528 file_url = self.GetFileURLForPath(file_path)
527 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), 529 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(),
528 os.path.basename(file_path)) 530 os.path.basename(file_path))
529 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg) 531 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg)
530 self.DownloadAndWaitForStart(file_url) 532 self.DownloadAndWaitForStart(file_url)
531 id = self._GetDownloadId() 533 id = self._GetDownloadId()
532 self.PerformActionOnDownload(id, 'open') 534 self.PerformActionOnDownload(id, 'open')
533 self.WaitForAllDownloadsToComplete() 535 self.WaitForAllDownloadsToComplete()
534 unzip_file_name = downloaded_pkg + '.cpgz' 536 unzip_file_name = downloaded_pkg + '.cpgz'
535 # Verify that the file was correctly downloaded 537 # Verify that the file was correctly downloaded.
536 self.assertTrue(self.WaitUntil(lambda: os.path.exists(unzip_file_name)), 538 self.assertTrue(self.WaitUntil(lambda: os.path.exists(unzip_file_name)),
537 'Unzipped folder %s missing.' % unzip_file_name) 539 'Unzipped folder %s missing.' % unzip_file_name)
538 self.assertTrue(os.path.exists(downloaded_pkg), 540 self.assertTrue(os.path.exists(downloaded_pkg),
539 'Downloaded file %s missing.' % downloaded_pkg) 541 'Downloaded file %s missing.' % downloaded_pkg)
540 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg), 542 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg),
541 'Downloaded file %s does not match original' % 543 'Downloaded file %s does not match original' %
542 downloaded_pkg) 544 downloaded_pkg)
543 os.path.exists(file_path) and os.remove(file_path) 545 os.path.exists(file_path) and os.remove(file_path)
544 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg) 546 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg)
545 os.path.exists(unzip_file_name) and os.remove(unzip_file_name) 547 os.path.exists(unzip_file_name) and os.remove(unzip_file_name)
546 548
547 def testDownloadPercentage(self): 549 def testDownloadPercentage(self):
548 """Verify that during downloading, % values increases, 550 """Verify that during downloading, % values increases,
549 and once download is over, % value is 100""" 551 and once download is over, % value is 100"""
550 file_path = self._MakeFile(2**24) 552 file_path = self._MakeFile(2**24)
551 file_url = self.GetFileURLForPath(file_path) 553 file_url = self.GetFileURLForPath(file_path)
552 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), 554 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(),
553 os.path.basename(file_path)) 555 os.path.basename(file_path))
554 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg) 556 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg)
555 self.DownloadAndWaitForStart(file_url) 557 self.DownloadAndWaitForStart(file_url)
556 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(), 558 downloaded_pkg = os.path.join(self.GetDownloadDirectory().value(),
557 os.path.basename(file_path)) 559 os.path.basename(file_path))
558 downloads = self.GetDownloadsInfo().Downloads() 560 downloads = self.GetDownloadsInfo().Downloads()
559 old_percentage = downloads[0]['PercentComplete'] 561 old_percentage = downloads[0]['PercentComplete']
560 def _PercentInc(): 562 def _PercentInc():
561 percent = self.GetDownloadsInfo().Downloads()[0]['PercentComplete'] 563 percent = self.GetDownloadsInfo().Downloads()[0]['PercentComplete']
562 return old_percentage == 100 or percent > old_percentage, 564 return old_percentage == 100 or percent > old_percentage,
563 self.assertTrue(self.WaitUntil(_PercentInc), 565 self.assertTrue(self.WaitUntil(_PercentInc),
564 msg='Download percentage value is not increasing') 566 msg='Download percentage value is not increasing')
565 # Once download is completed, percentage is 100 567 # Once download is completed, percentage is 100.
566 self.WaitForAllDownloadsToComplete() 568 self.WaitForAllDownloadsToComplete()
567 downloads = self.GetDownloadsInfo().Downloads() 569 downloads = self.GetDownloadsInfo().Downloads()
568 self.assertEqual(downloads[0]['PercentComplete'], 100, 570 self.assertEqual(downloads[0]['PercentComplete'], 100,
569 'Download percentage should be 100 after download completed') 571 'Download percentage should be 100 after download completed')
570 os.path.exists(file_path) and os.remove(file_path) 572 os.path.exists(file_path) and os.remove(file_path)
571 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg) 573 os.path.exists(downloaded_pkg) and os.remove(downloaded_pkg)
572 574
573 def testDownloadIncognitoAndRegular(self): 575 def testDownloadIncognitoAndRegular(self):
574 """Download the same zip file in regular and incognito window and 576 """Download the same zip file in regular and incognito window and
575 verify that it downloaded correctly with same file name appended with 577 verify that it downloaded correctly with same file name appended with
576 counter for the second download in regular window. 578 counter for the second download in regular window.
577 """ 579 """
578 test_dir = os.path.join(os.path.abspath(self.DataDir()), 'downloads') 580 test_dir = os.path.join(os.path.abspath(self.DataDir()), 'downloads')
579 file_path = os.path.join(test_dir, 'a_zip_file.zip') 581 file_path = os.path.join(test_dir, 'a_zip_file.zip')
580 file_url = self.GetFileURLForPath(file_path) 582 file_url = self.GetFileURLForPath(file_path)
581 downloaded_pkg_regul = os.path.join(self.GetDownloadDirectory().value(), 583 downloaded_pkg_regul = os.path.join(self.GetDownloadDirectory().value(),
582 'a_zip_file.zip') 584 'a_zip_file.zip')
583 downloaded_pkg_incog = os.path.join(self.GetDownloadDirectory().value(), 585 downloaded_pkg_incog = os.path.join(self.GetDownloadDirectory().value(),
584 'a_zip_file (1).zip') 586 'a_zip_file (1).zip')
585 self._ClearLocalDownloadState(downloaded_pkg_regul) 587 self._ClearLocalDownloadState(downloaded_pkg_regul)
586 self._ClearLocalDownloadState(downloaded_pkg_incog) 588 self._ClearLocalDownloadState(downloaded_pkg_incog)
587 self.NavigateToURL(file_url, 0, 0) 589
590 self.DownloadAndWaitForStart(file_url, 0)
591 self.WaitForAllDownloadsToComplete(0)
592
588 self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW) 593 self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
589 self.NavigateToURL(file_url, 1, 0) 594 self.DownloadAndWaitForStart(file_url, 1)
590 self.WaitForAllDownloadsToComplete() 595 self.WaitForAllDownloadsToComplete(1)
591 596
592 # Verify download in regular Window. 597 # Verify download in regular window.
593 self.assertTrue(os.path.exists(downloaded_pkg_regul)) 598 self.assertTrue(os.path.exists(downloaded_pkg_regul))
594 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg_regul)) 599 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg_regul))
595 600
596 # Verify download in Incognito Window. 601 # Verify download in incognito window.
597 # WaitForAllDownloadsToComplete does not wait for incognito downloads 602 # WaitForAllDownloadsToComplete is flaky for this test case.
Nirnimesh 2011/01/15 02:28:04 Please create a bug and cc rdsmith on it. Referenc
598 self.assertTrue(self.WaitUntil( 603 self.assertTrue(self.WaitUntil(
599 lambda: os.path.exists(downloaded_pkg_incog))) 604 lambda: os.path.exists(downloaded_pkg_incog)))
600 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg_incog)) 605 self.assertTrue(self._EqualFileContents(file_path, downloaded_pkg_incog))
601 606
602 607
603 if __name__ == '__main__': 608 if __name__ == '__main__':
604 pyauto_functional.Main() 609 pyauto_functional.Main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698