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

Side by Side Diff: chrome/test/functional/multiprofile.py

Issue 222873002: Remove pyauto tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/functional/memory.py ('k') | chrome/test/functional/nacl_sdk.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import re
7
8 import pyauto_functional
9 import pyauto
10
11
12 class MultiprofileTest(pyauto.PyUITest):
13 """Tests for Multi-Profile / Multi-users"""
14
15 _RESTORE_STARTUP_URL_VALUE = 4
16 _RESTORE_LASTOPEN_URL_VALUE = 1
17 _RESTORE_DEFAULT_URL_VALUE = 0
18
19 def Debug(self):
20 """Test method for experimentation.
21
22 This method will not run automatically.
23 """
24 while True:
25 raw_input('Hit <enter> to dump info.. ')
26 self.pprint(self.GetMultiProfileInfo())
27
28 def _GetSearchEngineWithKeyword(self, keyword, windex=0):
29 """Get search engine info and return an element that matches keyword.
30
31 Args:
32 keyword: Search engine keyword field.
33 windex: The window index, default is 0.
34
35 Returns:
36 A search engine info dict or None.
37 """
38 match_list = ([x for x in self.GetSearchEngineInfo(windex=windex)
39 if x['keyword'] == keyword])
40 if match_list:
41 return match_list[0]
42 return None
43
44 def _SetPreferences(self, dict, windex=0):
45 """Sets preferences settings.
46
47 Args:
48 _dict: Dictionary of key preferences and its value to be set.
49 windex: The window index, defaults to 0 (the first window).
50 """
51 for key in dict.iterkeys():
52 self.SetPrefs(key, dict[key], windex=windex)
53
54 def _SetStartUpPage(self, url, windex=0):
55 """Set start up page.
56
57 Args:
58 url: URL of the page to be set as start up page.
59 windex: The window index, default is 0.
60 """
61 _dict = {pyauto.kURLsToRestoreOnStartup: [url],
62 pyauto.kRestoreOnStartup: self._RESTORE_STARTUP_URL_VALUE}
63 self._SetPreferences(_dict, windex=windex)
64 prefs_info = self.GetPrefsInfo(windex=windex).Prefs(
65 pyauto.kURLsToRestoreOnStartup)
66 self.assertTrue(url in prefs_info)
67
68 def _SetHomePage(self, url, windex=0):
69 """Create new profile and set home page.
70
71 Args:
72 url: URL of the page to be set as home page
73 windex: The window index, default is 0.
74 """
75 _dict = {pyauto.kHomePage: url,
76 pyauto.kHomePageIsNewTabPage: False, pyauto.kShowHomeButton: True,
77 pyauto.kRestoreOnStartup: self._RESTORE_DEFAULT_URL_VALUE}
78 self._SetPreferences(_dict, windex=windex)
79 self.assertTrue(url in
80 self.GetPrefsInfo(windex=windex).Prefs(pyauto.kHomePage))
81
82 def _SetSessionRestoreURLs(self, set_restore, windex=0):
83 """Create new profile and set home page.
84
85 Args:
86 set_restore: Value of action of start up.
87 windex: The window index, default is 0.
88 """
89 self.NavigateToURL('http://www.google.com/', windex)
90 self.AppendTab(pyauto.GURL('http://news.google.com/'), windex)
91 num_tabs = self.GetTabCount(windex)
92 dict = {pyauto.kRestoreOnStartup: set_restore}
93 self._SetPreferences(dict, windex=windex)
94
95 def _AddSearchEngine(self, title, keyword, url, windex=0):
96 """Add search engine.
97
98 Args:
99 title: Name for search engine.
100 keyword: Keyword, used to initiate a custom search from omnibox.
101 url: URL template for this search engine's query.
102 windex: The window index, default is 0.
103 """
104 self.AddSearchEngine(title, keyword, url, windex=windex)
105 name = self._GetSearchEngineWithKeyword(keyword, windex=windex)
106 self.assertTrue(name)
107
108 def _AssertStartUpPage(self, url, profile='Default'):
109 """Asserts start up page for given profile.
110
111 Args:
112 url: URL of the page to be set as start up page
113 profile: The profile name, defaults to 'Default'.
114 """
115 self.AppendBrowserLaunchSwitch('--profile-directory=' + profile)
116 self.RestartBrowser(clear_profile=False)
117 info = self.GetBrowserInfo()
118 self.assertEqual(url, info['windows'][0]['tabs'][0]['url'].rstrip('/'))
119 self.assertTrue(url in
120 self.GetPrefsInfo().Prefs(pyauto.kURLsToRestoreOnStartup))
121
122 def _AssertHomePage(self, url, profile='Default'):
123 """Asserts home page for given profile.
124
125 Args:
126 url: URL of the page to be set as home page
127 profile: The profile name, defaults to 'Dafault'.
128 """
129 self.AppendBrowserLaunchSwitch('--profile-directory=' + profile)
130 self.RestartBrowser(clear_profile=False)
131 self.assertTrue(url in self.GetPrefsInfo().Prefs(pyauto.kHomePage))
132
133 def _AssertDefaultSearchEngine(self, search_engine, profile='Default'):
134 """Asserts default search engine for given profile.
135
136 Args:
137 search_engine: Name of default search engine.
138 profile: The profile name, defaults to 'Default'.
139 """
140 self.AppendBrowserLaunchSwitch('--profile-directory=' + profile)
141 self.RestartBrowser(clear_profile=False)
142 name = self._GetSearchEngineWithKeyword(search_engine)
143 self.assertTrue(name['is_default'])
144 self.SetOmniboxText('test search')
145 self.OmniboxAcceptInput()
146 self.assertTrue(re.search(search_engine, self.GetActiveTabURL().spec()))
147
148 def _AssertSessionRestore(self, url_list, set_restore, num_tabs=1,
149 profile='Default'):
150 """Asserts urls when session is set to restored or set default.
151
152 Args:
153 url_list: List of URL to be restored.
154 set_restore: Value of action of start up.
155 num_tabs: Number of tabs to be restored, default is 1.
156 profile: The profile name, defaults to 'Default'.
157 """
158 self.AppendBrowserLaunchSwitch('--profile-directory=' + profile)
159 self.RestartBrowser(clear_profile=False)
160 self.assertEqual(num_tabs, self.GetTabCount())
161 self.assertEqual(self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup),
162 set_restore)
163 tab_index = 0
164 while (tab_index < num_tabs):
165 self.ActivateTab(tab_index)
166 self.assertEqual(url_list[tab_index], self.GetActiveTabURL().spec())
167 tab_index += 1
168
169 def testBasic(self):
170 """Multi-profile windows can open."""
171 self.assertEqual(1, self.GetBrowserWindowCount())
172 self.assertTrue(self.GetMultiProfileInfo()['enabled'],
173 msg='Multi-profile is not enabled')
174 self.OpenNewBrowserWindowWithNewProfile()
175 # Verify multi-profile info.
176 multi_profile = self.GetMultiProfileInfo()
177 self.assertEqual(2, len(multi_profile['profiles']))
178 new_profile = multi_profile['profiles'][1]
179 self.assertTrue(new_profile['name'])
180
181 # Verify browser windows.
182 self.assertEqual(2, self.GetBrowserWindowCount(),
183 msg='New browser window did not open')
184 info = self.GetBrowserInfo()
185 new_profile_window = info['windows'][1]
186 self.assertEqual('Profile 1', new_profile_window['profile_path'])
187 self.assertEqual(1, len(new_profile_window['tabs']))
188 self.assertEqual('chrome://newtab/', new_profile_window['tabs'][0]['url'])
189
190 def test20NewProfiles(self):
191 """Verify we can create 20 new profiles."""
192 for index in range(1, 21):
193 self.OpenNewBrowserWindowWithNewProfile()
194 multi_profile = self.GetMultiProfileInfo()
195 self.assertEqual(index + 1, len(multi_profile['profiles']),
196 msg='Expected %d profiles after adding %d new users. Got %d' % (
197 index + 1, index, len(multi_profile['profiles'])))
198
199 def testStartUpPageOptionInMultiProfile(self):
200 """Test startup page for Multi-profile windows."""
201 self.assertTrue(self.GetMultiProfileInfo()['enabled'],
202 msg='Multi-profile is not enabled')
203 # Launch browser with new Profile 1, set startup page to 'www.google.com'.
204 self.OpenNewBrowserWindowWithNewProfile()
205 self._SetStartUpPage('http://www.google.com', windex=1)
206 # Launch browser with new Profile 2, set startup page to 'www.yahoo.com'.
207 self.OpenNewBrowserWindowWithNewProfile()
208 # Verify start up page for Profile 2 is still newtab page.
209 info = self.GetBrowserInfo()
210 self.assertEqual('chrome://newtab/', info['windows'][2]['tabs'][0]['url'])
211 self._SetStartUpPage('http://www.yahoo.com', windex=2)
212 # Exit Profile 1 / Profile 2
213 self.CloseBrowserWindow(2)
214 self.CloseBrowserWindow(1)
215 # Relaunch Browser with Profile 2, verify startup page.
216 self._AssertStartUpPage('http://www.yahoo.com', profile='Profile 2')
217 # Relaunch Browser with Profile 1, verify startup page.
218 self._AssertStartUpPage('http://www.google.com', profile='Profile 1')
219
220 def testHomePageOptionMultiProfile(self):
221 """Test Home page for Multi-profile windows."""
222 self.assertTrue(self.GetMultiProfileInfo()['enabled'],
223 msg='Multi-profile is not enabled')
224 # Launch browser with new Profile 1, set homepage to 'www.google.com'.
225 self.OpenNewBrowserWindowWithNewProfile()
226 self._SetHomePage('http://www.google.com', windex=1)
227 # Launch browser with new Profile 2, set homepage to 'www.yahoo.com'.
228 self.OpenNewBrowserWindowWithNewProfile()
229 self._SetHomePage('http://www.yahoo.com', windex=2)
230 # Exit Profile 1 / Profile 2
231 self.CloseBrowserWindow(2)
232 self.CloseBrowserWindow(1)
233 # Relaunch Browser with Profile 2, verify startup page.
234 self._AssertHomePage('http://www.yahoo.com', profile='Profile 2')
235 # Relaunch Browser with Profile 1, verify startup page.
236 self._AssertHomePage('http://www.google.com', profile='Profile 1')
237
238 def testSessionRestoreInMultiProfile(self):
239 """Test session restore preference for Multi-profile windows."""
240 self.assertTrue(self.GetMultiProfileInfo()['enabled'],
241 msg='Multi-profile is not enabled')
242 # Launch browser with new Profile 1, set pref to restore session on
243 # startup.
244 self.OpenNewBrowserWindowWithNewProfile()
245 self._SetSessionRestoreURLs(self._RESTORE_LASTOPEN_URL_VALUE, windex=1)
246 # Launch browser with new Profile 2, do not set session restore pref.
247 self.OpenNewBrowserWindowWithNewProfile()
248 self._SetSessionRestoreURLs(self._RESTORE_DEFAULT_URL_VALUE, windex=2)
249 # Exit Profile 1 / Profile 2
250 self.CloseBrowserWindow(2)
251 self.CloseBrowserWindow(1)
252 # Relaunch Browser with Profile 1, verify session restores on startup.
253 url_list = ['http://www.google.com/', 'http://news.google.com/']
254 self._AssertSessionRestore(url_list, self._RESTORE_LASTOPEN_URL_VALUE,
255 num_tabs=2, profile='Profile 1')
256 # Relaunch Browser with Profile 2, verify session does not get restored.
257 url_list = ['chrome://newtab/']
258 self._AssertSessionRestore(url_list, self._RESTORE_DEFAULT_URL_VALUE,
259 num_tabs=1, profile='Profile 2')
260
261 def testMakeSearchEngineDefaultInMultiprofile(self):
262 """Test adding and making a search engine default for Multi-profiles."""
263 self.assertTrue(self.GetMultiProfileInfo()['enabled'],
264 msg='Multi-profile is not enabled')
265 # Launch browser with new Profile 1, add search engine to 'Hulu'.
266 self.OpenNewBrowserWindowWithNewProfile()
267 self._AddSearchEngine('Hulu', 'hulu.com',
268 'http://www.hulu.com/search?query=%s&ref=os&src={referrer:source?}', 1)
269 self.MakeSearchEngineDefault('hulu.com', windex=1)
270 # Launch browser with new Profile 2, add search engine to 'Youtube'.
271 self.OpenNewBrowserWindowWithNewProfile()
272 self._AddSearchEngine('YouTube Video Search', 'youtube.com',
273 'http://www.youtube.com/results?search_query=%s&page={startPage?}'+
274 '&utm_source=opensearch', 2)
275 self.MakeSearchEngineDefault('youtube.com', windex=2)
276 # Exit Profile 1 / Profile 2
277 self.CloseBrowserWindow(2)
278 self.CloseBrowserWindow(1)
279 # Relaunch Browser with Profile 1, verify default search engine as 'Hulu'.
280 self._AssertDefaultSearchEngine('hulu.com', profile='Profile 1')
281 # Relaunch Browser with Profile 2, verify default search engine as
282 # 'Youtube'.
283 self._AssertDefaultSearchEngine('youtube.com', profile='Profile 2')
284
285 def testDeleteSearchEngineInMultiprofile(self):
286 """Test adding then deleting a search engine for Multi-profiles."""
287 self.assertTrue(self.GetMultiProfileInfo()['enabled'],
288 msg='Multi-profile is not enabled')
289 # Launch browser with new Profile 1, add 'foo.com' as new search engine.
290 self.OpenNewBrowserWindowWithNewProfile()
291 self._AddSearchEngine('foo', 'foo.com', 'http://foo/?q=%s', windex=1)
292 # Launch browser with new Profile 2, add 'foo.com' as new search engine.
293 self.OpenNewBrowserWindowWithNewProfile()
294 self._AddSearchEngine('foo', 'foo.com', 'http://foo/?q=%s', windex=2)
295 # Delete search engine 'foo.com' from Profile 1 and exit.
296 self.DeleteSearchEngine('foo.com', windex=1)
297 self.CloseBrowserWindow(2)
298 self.CloseBrowserWindow(1)
299 # Relaunch Browser with Profile 1, verify search engine 'foo.com'
300 # is deleted.
301 self.AppendBrowserLaunchSwitch('--profile-directory=Profile 1')
302 self.RestartBrowser(clear_profile=False)
303 foo = self._GetSearchEngineWithKeyword('foo.com')
304 self.assertFalse(foo)
305 # Relaunch Browser with Profile 2, verify search engine 'foo.com'
306 # is not deleted.
307 self.AppendBrowserLaunchSwitch('--profile-directory=Profile 2')
308 self.RestartBrowser(clear_profile=False)
309 foo = self._GetSearchEngineWithKeyword('foo.com')
310 self.assertTrue(foo)
311
312
313 if __name__ == '__main__':
314 pyauto_functional.Main()
OLDNEW
« no previous file with comments | « chrome/test/functional/memory.py ('k') | chrome/test/functional/nacl_sdk.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698