| OLD | NEW |
| (Empty) |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import simplejson as json # found in third_party | |
| 6 | |
| 7 | |
| 8 class FileBrowser(object): | |
| 9 """This class provides an API for automating the ChromeOS File Browser. | |
| 10 | |
| 11 Example: | |
| 12 # Create and change into 'hello world' folder. | |
| 13 executor = pyauto.PyUITest.JavascriptExecutorInTab(self) | |
| 14 file_browser = chromeos.file_browser.FileBrowser(self, executor) | |
| 15 if file_browser.WaitUntilInitialized(): | |
| 16 file_browser.CreateDirectory('hello world') | |
| 17 file_browser.ChangeDirectory('hello world') | |
| 18 | |
| 19 For complete examples refer to chromeos_file_browser.py. | |
| 20 """ | |
| 21 | |
| 22 def __init__(self, ui_test, executor): | |
| 23 """Initialize FileBrowser. | |
| 24 | |
| 25 Args: | |
| 26 ui_test: derived from pyauto.PyUITest - base class for UI test cases. | |
| 27 executor: derived from pyauto.PyUITest.JavascriptExecutor. | |
| 28 """ | |
| 29 self._ui_test = ui_test | |
| 30 self.executor = executor | |
| 31 | |
| 32 def Select(self, name): | |
| 33 """Add entry with given name to the current selection. | |
| 34 | |
| 35 Args: | |
| 36 name: Name of the entry to add to selection | |
| 37 | |
| 38 Returns: | |
| 39 Whether entry exists. | |
| 40 """ | |
| 41 script = """ | |
| 42 pyautoAPI.addItemToSelection('%s'); | |
| 43 """ % name | |
| 44 return self.executor.Execute(script) | |
| 45 | |
| 46 def DirectoryContents(self): | |
| 47 """Return a set containing all entries in the current directory. | |
| 48 | |
| 49 Returns: | |
| 50 A set of entries. | |
| 51 """ | |
| 52 script = """ | |
| 53 pyautoAPI.listDirectory(); | |
| 54 """ | |
| 55 list = json.loads(self.executor.Execute(script)) | |
| 56 return set(list) | |
| 57 | |
| 58 def Save(self, name): | |
| 59 """Save the entry using the given name. | |
| 60 | |
| 61 Args: | |
| 62 name: Name given to entry to be saved. | |
| 63 """ | |
| 64 script = """ | |
| 65 pyautoAPI.saveItemAs('%s'); | |
| 66 """ % name | |
| 67 self.executor.Execute(script) | |
| 68 | |
| 69 def Open(self): | |
| 70 """Open selected entries.""" | |
| 71 script = """ | |
| 72 pyautoAPI.openItem(); | |
| 73 """ | |
| 74 self.executor.Execute(script) | |
| 75 | |
| 76 def ExecuteDefaultTask(self): | |
| 77 """Open selected entries.""" | |
| 78 script = """ | |
| 79 pyautoAPI.executeDefaultTask() | |
| 80 """ | |
| 81 self.executor.Execute(script) | |
| 82 | |
| 83 def Copy(self): | |
| 84 """Copy selected entries to clipboard.""" | |
| 85 script = """ | |
| 86 pyautoAPI.copyItems(); | |
| 87 """ | |
| 88 self.executor.Execute(script) | |
| 89 | |
| 90 def Cut(self): | |
| 91 """Cut selected entries to clipboard. """ | |
| 92 script = """ | |
| 93 pyautoAPI.cutItems(); | |
| 94 """ | |
| 95 self.executor.Execute(script) | |
| 96 | |
| 97 def Paste(self): | |
| 98 """Paste entries from clipboard.""" | |
| 99 script = """ | |
| 100 pyautoAPI.pasteItems(); | |
| 101 """ | |
| 102 self.executor.Execute(script) | |
| 103 | |
| 104 def Rename(self, name): | |
| 105 """Rename selected entry. | |
| 106 | |
| 107 Args: | |
| 108 name: New name of the entry. | |
| 109 """ | |
| 110 script = """ | |
| 111 pyautoAPI.renameItem('%s'); | |
| 112 """ % name | |
| 113 self.executor.Execute(script) | |
| 114 | |
| 115 def Delete(self): | |
| 116 """Delete selected entries.""" | |
| 117 script = """ | |
| 118 pyautoAPI.deleteItems(); | |
| 119 """ | |
| 120 self.executor.Execute(script) | |
| 121 | |
| 122 def CreateDirectory(self, name): | |
| 123 """Create directory. | |
| 124 | |
| 125 Args: | |
| 126 name: Name of the directory. | |
| 127 """ | |
| 128 script = """ | |
| 129 pyautoAPI.createDirectory('%s'); | |
| 130 """ % name | |
| 131 self.executor.Execute(script) | |
| 132 | |
| 133 def ChangeDirectory(self, path): | |
| 134 """Change to a directory. | |
| 135 | |
| 136 A path starting with '/' is absolute, otherwise it is relative to the | |
| 137 current directory. | |
| 138 | |
| 139 Args: | |
| 140 name: Path to directory. | |
| 141 """ | |
| 142 script = """ | |
| 143 pyautoAPI.changeDirectory('%s'); | |
| 144 """ % path | |
| 145 self.executor.Execute(script) | |
| 146 | |
| 147 def CurrentDirectory(self): | |
| 148 """Get the absolute path of current directory. | |
| 149 | |
| 150 Returns: | |
| 151 Path to the current directory. | |
| 152 """ | |
| 153 script = """ | |
| 154 pyautoAPI.currentDirectory(); | |
| 155 """ | |
| 156 return self.executor.Execute(script) | |
| 157 | |
| 158 def GetSelectedDirectorySizeStats(self): | |
| 159 """Get remaining and total size of selected directory. | |
| 160 | |
| 161 Returns: | |
| 162 A tuple: (remaining size in KB, total size in KB) | |
| 163 """ | |
| 164 script = """ | |
| 165 pyautoAPI.getSelectedDirectorySizeStats(); | |
| 166 """ | |
| 167 stats = json.loads(self.executor.Execute(script)) | |
| 168 return stats['remainingSizeKB'], stats['totalSizeKB'] | |
| 169 | |
| 170 def WaitUntilInitialized(self): | |
| 171 """Returns whether the file manager is initialized. | |
| 172 | |
| 173 This should be called before calling any of the functions above. | |
| 174 | |
| 175 Returns: | |
| 176 Whether file manager is initialied. | |
| 177 """ | |
| 178 def _IsInitialized(): | |
| 179 script = """ | |
| 180 pyautoAPI.isInitialized(); | |
| 181 """ | |
| 182 return self.executor.Execute(script) | |
| 183 return self._ui_test.WaitUntil(lambda: _IsInitialized()) | |
| OLD | NEW |