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

Unified Diff: chrome/test/functional/wifi_downloads.py

Issue 23359003: Eliminate unused PYAUTO tests and TestingAutomationProvider methods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/functional/chromeos_wifi_functional.py ('k') | chrome/test/functional/wifi_notification.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/wifi_downloads.py
diff --git a/chrome/test/functional/wifi_downloads.py b/chrome/test/functional/wifi_downloads.py
deleted file mode 100755
index f998934c1b73c0650d498c22b4d0e57ed60af8a3..0000000000000000000000000000000000000000
--- a/chrome/test/functional/wifi_downloads.py
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import hashlib
-import logging
-import os
-import time
-import urllib2
-
-import pyauto_functional # Must be imported before pyauto
-import pyauto
-import pyauto_utils
-import chromeos_network
-
-
-MAX_WAIT_TIME_IN_MSEC = 15 * 60 * 1000
-
-
-class WifiDownloadsTest(chromeos_network.PyNetworkUITest):
- """TestCase for ChromeOS Wifi Downloads
-
- This test makes a few assumptions. It needs to have access to the power
- strip used in pyautolib/chromeos/wifi_downloads.py. It also assumes access
- to the server 172.22.12.98:8080. If the server is passed a filname in the
- format <integer>.lf, it will generate a file of size <integer> in KB. In
- addition the name of the file returned is the md5 checksum of the file.
-
- In addition the download times are written to a file in
- /tmp/wifi_download_time.csv. All times are appended to the file if it
- already exists.
- """
-
- def setUp(self):
- chromeos_network.PyNetworkUITest.setUp(self)
- self.InitWifiPowerStrip()
- # The power strip is a shared resource and if we every crash in the middle
- # of a test we will be in an unknown state. This returns us to 'all off'.
- self.TurnOffAllRouters()
- # Downloading files of a large size, can take a while, bump the timeout
- self.changer = pyauto.PyUITest.ActionTimeoutChanger(self, 4 * 1000 * 60)
- self.log_file_path = '/tmp/wifi_download_time.csv'
-
- def _WriteTimeToFile(self, output_file, router_name, file_size, dl_time):
- """Write or append a time into a csv file.
-
- This method will create or append the amount of time a download took for a
- given filesize and router to a file at the given path.
-
- The format of the output file is as follows:
- <router name A>,<file size A>,time,time,time,time,time,time,time,time
- <router name A>,<file size B>,time,time,time,time,time,time,time,time
- <router name B>,<file size C>,time,time,time,time,time,time,time,time
-
- Args:
- output_file: the complete path of the file to write to
- file_size: the size of the file, this is the row header
- dl_time: the amount of time in seconds
- """
- file_data = []
- if os.path.exists(output_file):
- file_handle = open(output_file)
- lines = file_handle.readlines()
- file_handle.close()
- # Convert the file to a full data structure.
- for line in lines:
- values = line.strip().split(',')
- file_data.append(values)
- for values in file_data:
- found_existing_time = False
- if values[0] == router_name and values[1] == file_size:
- values.append('%2.2f' % dl_time)
- found_existing_time = True
- break
- if not found_existing_time:
- new_line = [router_name, file_size, ('%2.2f' % dl_time)]
- file_data.append(new_line)
- else:
- file_data = [[router_name, file_size, ('%2.2f' % dl_time)]]
- # Write the data back out
- file_handle = open(output_file, 'w')
- for line in file_data:
- if len(line) > 2:
- file_handle.write(','.join(line))
- file_handle.write('\n')
- file_handle.close()
-
- def _Md5Checksum(self, file_path):
- """Returns the md5 checksum of a file at a given path.
-
- Args:
- file_path: The complete path of the file to generate the md5 checksum for.
- """
- file_handle = open(file_path, 'rb')
- m = hashlib.md5()
- while True:
- data = file_handle.read(8192)
- if not data:
- break
- m.update(data)
- file_handle.close()
- return m.hexdigest()
-
- def _ConnectToRouterAndVerify(self, router_name):
- """Generic routine for connecting to a router.
-
- Args:
- router_name: The name of the router to connect to.
- """
- router = self.GetRouterConfig(router_name)
- self.RouterPower(router_name, True)
-
- self.assertTrue(self.WaitUntilWifiNetworkAvailable(router['ssid']),
- 'Wifi network %s never showed up.' % router['ssid'])
-
- # Verify connect did not have any errors.
- error = self.ConnectToWifiRouter(router_name)
- self.assertFalse(error, 'Failed to connect to wifi network %s. '
- 'Reason: %s.' % (router['ssid'], error))
-
- # Verify the network we connected to.
- ssid = self.GetConnectedWifi()
- self.assertEqual(ssid, router['ssid'],
- 'Did not successfully connect to wifi network %s.' % ssid)
-
- def _DownloadAndVerifyFile(self, download_url):
- """Downloads a file at a given URL and validates it
-
- This method downloads a file from a server whose filename matches the md5
- checksum. Then we manually generate the md5 and check it against the
- filename.
-
- Args:
- download_url: URL of the file to download.
-
- Returns:
- The download time in seconds.
- """
- start = time.time()
- # Make a copy of the download directory now to work around segfault
- downloads_dir = self.GetDownloadDirectory().value()
- try:
- self.DownloadAndWaitForStart(download_url)
- except AssertionError:
- # We need to redo this since the external server may not respond the
- # first time.
- logging.info('Could not start download. Retrying ...')
- self.DownloadAndWaitForStart(download_url)
- # Maximum wait time is set as 15 mins as an 100MB file may take somewhere
- # between 8-12 mins to download.
- self.WaitForAllDownloadsToComplete(timeout=MAX_WAIT_TIME_IN_MSEC)
- end = time.time()
- logging.info('Download took %2.2f seconds to complete' % (end - start))
- downloaded_files = os.listdir(downloads_dir)
- self.assertEquals(len(downloaded_files), 1,
- msg='Expected only one file in the Downloads folder. '
- 'but got this instead: %s' % ', '.join(downloaded_files))
- filename = os.path.splitext(downloaded_files[0])[0]
- file_path = os.path.join(self.GetDownloadDirectory().value(),
- downloaded_files[0])
- md5_sum = self._Md5Checksum(file_path)
- md5_url = download_url[:-4] + '.md5' # replacing .slf with .md5
- md5_file = urllib2.urlopen(md5_url).readlines()[0]
- self.assertTrue(md5_file.rstrip().endswith(md5_sum.encode()),
- msg='Unexpected checksum. The download is incomplete.')
- return end - start
-
- def testDownload1MBFile(self):
- """Test downloading a 1MB file from a wireless router."""
- download_url = 'http://172.22.12.98:80/downloads/1M.slf'
- router_name = 'Nfiniti'
- self._ConnectToRouterAndVerify(router_name)
- download_time = self._DownloadAndVerifyFile(download_url)
- self._WriteTimeToFile(self.log_file_path, router_name, '1MB',
- download_time)
- self.DisconnectFromWifiNetwork()
-
- def testDownload10MBFile(self):
- """Test downloading a 10MB file from a wireless router."""
- download_url = 'http://172.22.12.98:80/downloads/10M.slf'
- router_name = 'Linksys_WRT54G2'
- self._ConnectToRouterAndVerify(router_name)
- download_time = self._DownloadAndVerifyFile(download_url)
- self._WriteTimeToFile(self.log_file_path, router_name, '10MB',
- download_time)
- self.DisconnectFromWifiNetwork()
-
- def testDownload100MBFile(self):
- """Test downloading a 100MB file from a wireless router."""
- download_url = 'http://172.22.12.98:80/downloads/100M.slf'
- router_name = 'Trendnet_639gr_4'
- self._ConnectToRouterAndVerify(router_name)
- download_time = self._DownloadAndVerifyFile(download_url)
- self._WriteTimeToFile(self.log_file_path, router_name, '100MB',
- download_time)
- self.DisconnectFromWifiNetwork()
-
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« no previous file with comments | « chrome/test/functional/chromeos_wifi_functional.py ('k') | chrome/test/functional/wifi_notification.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698