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

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

Issue 10828380: Convert the pdf PerformPDFAction pyauto test to a browser test. While at it, verify that… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 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
Index: chrome/test/functional/pdf.py
===================================================================
--- chrome/test/functional/pdf.py (revision 152182)
+++ chrome/test/functional/pdf.py (working copy)
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011 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 os
-import glob
-
-import pyauto_functional # Must be imported before pyauto
-import pyauto
-from pyauto_errors import JSONInterfaceError
-
-
-class PDFTest(pyauto.PyUITest):
- """PDF related tests
-
- This test runs only on Google Chrome build, not on Chromium.
- """
-
- unloadable_pdfs = []
-
- def _PerformPDFAction(self, action, tab_index=0, windex=0):
- """Perform an action on a PDF tab.
-
- Args:
- action: one of "fitToHeight", "fitToWidth", "ZoomIn", "ZoomOut"
- tab_index: tab index Defaults to 0
- windex: window index. Defaults to 0
- """
- # Sometimes the zoom/fit bar is not fully loaded. We need to wait for it to
- # load before we can perform actions.
- js = """if (document.getElementsByName("plugin") &&
- document.getElementsByName("plugin")[0])
- { window.domAutomationController.send("true"); }
- else {window.domAutomationController.send("false"); }"""
- try:
- self.assertTrue(self.WaitUntil(lambda: self.ExecuteJavascript(js,
- tab_index=tab_index, windex=windex), expect_retval="true"),
- msg='Could not find zoom/fit to page/width bar so we will not be able '
- 'to peform the requested action')
- except JSONInterfaceError as e:
- # The PDF did not load, add it to the list and move on, we don't want the
- # test to abort so we can check all of the PDFs.
- PDFTest.unloadable_pdfs.append(self.GetActiveTabTitle())
- return
- assert action in ('fitToHeight', 'fitToWidth', 'ZoomIn', 'ZoomOut')
- js = 'document.getElementsByName("plugin")[0].%s()' % action
- # Add an empty string so that there's something to return back
- # (or else it hangs)
- return self.GetDOMValue('%s + ""' % js, tab_index)
-
-
- def testPDFRunner(self):
- """Navigate to pdf files and verify that browser doesn't crash"""
- # bail out if not a branded build
- properties = self.GetBrowserInfo()['properties']
- if properties['branding'] != 'Google Chrome':
- return
- breakpad_folder = properties['DIR_CRASH_DUMPS']
- old_dmp_files = glob.glob(os.path.join(breakpad_folder, '*.dmp'))
- pdf_files_path = os.path.join(self.DataDir(), 'pyauto_private', 'pdf')
- pdf_files = map(self.GetFileURLForPath,
- glob.glob(os.path.join(pdf_files_path, '*.pdf')))
- # Add a pdf file over http:// to the list of pdf files.
- # crbug.com/70454
- pdf_files += ['http://www.irs.gov/pub/irs-pdf/fw4.pdf']
-
- # Some pdfs cause known crashes. Exclude them. crbug.com/63549
- exclude_list = ('nullip.pdf', 'sample.pdf')
- pdf_files = [x for x in pdf_files if
- os.path.basename(x) not in exclude_list]
-
- PDFTest.unloadable_pdfs = []
- for url in pdf_files:
- self.AppendTab(pyauto.GURL(url))
- for tab_index in range(1, len(pdf_files) + 1):
- self.ActivateTab(tab_index)
- self._PerformPDFAction('fitToHeight', tab_index=tab_index)
- self._PerformPDFAction('fitToWidth', tab_index=tab_index)
- # Assert that there is at least 1 browser window.
- self.assertTrue(self.GetBrowserWindowCount(),
- 'Browser crashed, no window is open')
- # Verify there're no crash dump files
- for dmp_file in glob.glob(os.path.join(breakpad_folder, '*.dmp')):
- self.assertTrue(dmp_file in old_dmp_files,
- msg='Crash dump %s found' % dmp_file)
- self.assertEqual(len(PDFTest.unloadable_pdfs), 0, msg='The following PDFs '
- 'did not load: %s' % PDFTest.unloadable_pdfs)
-
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« chrome/browser/ui/pdf/pdf_browsertest.cc ('K') | « chrome/test/functional/PYAUTO_TESTS ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698