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 |