blob: bfcdb9eecd94ff838f39fc767ad634eced6e8173 [file] [log] [blame]
#!/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 os
import pyauto_functional # must be imported before pyauto
import chromeos.file_browser
import pyauto
import test_utils
class DocViewingTest(pyauto.PyUITest):
"""Basic tests for ChromeOS document viewing.
Requires ChromeOS to be logged in.
"""
def setUp(self):
pyauto.PyUITest.setUp(self)
extension_path = '/opt/google/chrome/extensions'\
'/gbkeegbaiigmenfmjfclcdgdpimamgkj.crx'
# If crx file with doesn't exist, component extensions should be used.
if os.path.exists(extension_path):
ext_id = self.InstallExtension(extension_path, from_webstore=True)
self.assertTrue(ext_id, msg='Failed to install extension %s' %
extension_path)
def _GetFullPageFileBrowser(self):
"""Display the full page file browser.
Returns:
ChromeosFileBrowser object.
"""
self.NavigateToURL('chrome://files/#/Downloads')
executor = pyauto.PyUITest.JavascriptExecutorInTab(self)
file_browser = chromeos.file_browser.FileBrowser(self, executor)
if file_browser.WaitUntilInitialized():
return file_browser
else:
return None
def testOpenOfficeFiles(self):
"""Test we can open office files from the file manager."""
path = os.path.abspath(os.path.join(self.DataDir(),
'pyauto_private', 'office'))
# Copy sample files to Downloads directory.
for (path, dirs, private_office_files) in os.walk(path):
# Open sample files: .ppt, .pptx, .doc, .docx, xls, xlsx.
for fname in private_office_files:
test_utils.CopyFileFromDataDirToDownloadDir(self, os.path.join(path,
fname))
file_browser = self._GetFullPageFileBrowser()
self.assertTrue(file_browser, msg='File browser failed to initialize.')
def _SelectFile():
try:
file_browser.Select(fname)
return True
except AssertionError:
return False
self.assertTrue(self.WaitUntil(_SelectFile),
msg='"%s" does not exist.' % fname)
file_browser.ExecuteDefaultTask()
self.assertTrue(self.WaitUntil(self.GetActiveTabTitle,
expect_retval=fname),
msg='"%s" does not open.' % fname)
# Close the document viewing tab after use.
self.CloseTab(tab_index=1)
if __name__ == '__main__':
pyauto_functional.Main()