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

Side by Side Diff: chrome/test/automation/automation_proxy_uitest.cc

Issue 113722: Make automation proxy objects to ref_counted. That allows to process async no... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 7 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/automation/automation_proxy.cc ('k') | chrome/test/automation/browser_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 6
7 #include "app/app_switches.h" 7 #include "app/app_switches.h"
8 #include "app/message_box_flags.h" 8 #include "app/message_box_flags.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 26 matching lines...) Expand all
37 int window_count = 0; 37 int window_count = 0;
38 EXPECT_TRUE(automation()->GetBrowserWindowCount(&window_count)); 38 EXPECT_TRUE(automation()->GetBrowserWindowCount(&window_count));
39 EXPECT_EQ(1, window_count); 39 EXPECT_EQ(1, window_count);
40 #ifdef NDEBUG 40 #ifdef NDEBUG
41 ASSERT_FALSE(automation()->GetBrowserWindowCount(NULL)); 41 ASSERT_FALSE(automation()->GetBrowserWindowCount(NULL));
42 #endif 42 #endif
43 } 43 }
44 44
45 TEST_F(AutomationProxyTest, GetBrowserWindow) { 45 TEST_F(AutomationProxyTest, GetBrowserWindow) {
46 { 46 {
47 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 47 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
48 ASSERT_TRUE(window.get()); 48 ASSERT_TRUE(window.get());
49 } 49 }
50 50
51 { 51 {
52 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(-1)); 52 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(-1));
53 ASSERT_FALSE(window.get()); 53 ASSERT_FALSE(window.get());
54 } 54 }
55 55
56 { 56 {
57 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(1)); 57 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(1));
58 ASSERT_FALSE(window.get()); 58 ASSERT_FALSE(window.get());
59 } 59 }
60 }; 60 };
61 61
62 // TODO(port): This test is for Chrome Views, which we only use on Windows. 62 // TODO(port): This test is for Chrome Views, which we only use on Windows.
63 // Maybe split this into a _win.cc file? 63 // Maybe split this into a _win.cc file?
64 #if defined(OS_WIN) 64 #if defined(OS_WIN)
65 TEST_F(AutomationProxyVisibleTest, WindowGetViewBounds) { 65 TEST_F(AutomationProxyVisibleTest, WindowGetViewBounds) {
66 { 66 {
67 scoped_ptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 67 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
68 ASSERT_TRUE(browser.get()); 68 ASSERT_TRUE(browser.get());
69 scoped_ptr<WindowProxy> window(browser->GetWindow()); 69 scoped_refptr<WindowProxy> window(browser->GetWindow());
70 ASSERT_TRUE(window.get()); 70 ASSERT_TRUE(window.get());
71 71
72 scoped_ptr<TabProxy> tab1(browser->GetTab(0)); 72 scoped_refptr<TabProxy> tab1(browser->GetTab(0));
73 ASSERT_TRUE(tab1.get()); 73 ASSERT_TRUE(tab1.get());
74 GURL tab1_url; 74 GURL tab1_url;
75 ASSERT_TRUE(tab1->GetCurrentURL(&tab1_url)); 75 ASSERT_TRUE(tab1->GetCurrentURL(&tab1_url));
76 76
77 // Add another tab so we can simulate dragging. 77 // Add another tab so we can simulate dragging.
78 ASSERT_TRUE(browser->AppendTab(GURL("about:"))); 78 ASSERT_TRUE(browser->AppendTab(GURL("about:")));
79 79
80 scoped_ptr<TabProxy> tab2(browser->GetTab(1)); 80 scoped_refptr<TabProxy> tab2(browser->GetTab(1));
81 ASSERT_TRUE(tab2.get()); 81 ASSERT_TRUE(tab2.get());
82 GURL tab2_url; 82 GURL tab2_url;
83 ASSERT_TRUE(tab2->GetCurrentURL(&tab2_url)); 83 ASSERT_TRUE(tab2->GetCurrentURL(&tab2_url));
84 84
85 EXPECT_NE(tab1_url.spec(), tab2_url.spec()); 85 EXPECT_NE(tab1_url.spec(), tab2_url.spec());
86 86
87 gfx::Rect bounds; 87 gfx::Rect bounds;
88 ASSERT_TRUE(window->GetViewBounds(VIEW_ID_TAB_0, &bounds, false)); 88 ASSERT_TRUE(window->GetViewBounds(VIEW_ID_TAB_0, &bounds, false));
89 EXPECT_GT(bounds.x(), 0); 89 EXPECT_GT(bounds.x(), 0);
90 EXPECT_GT(bounds.width(), 0); 90 EXPECT_GT(bounds.width(), 0);
(...skipping 23 matching lines...) Expand all
114 POINT start; 114 POINT start;
115 POINT end; 115 POINT end;
116 start.x = bounds.x() + bounds.width() / 2; 116 start.x = bounds.x() + bounds.width() / 2;
117 start.y = bounds.y() + bounds.height() / 2; 117 start.y = bounds.y() + bounds.height() / 2;
118 end.x = start.x + 2 * bounds.width() / 3; 118 end.x = start.x + 2 * bounds.width() / 3;
119 end.y = start.y; 119 end.y = start.y;
120 ASSERT_TRUE(browser->SimulateDrag(start, end, 120 ASSERT_TRUE(browser->SimulateDrag(start, end,
121 views::Event::EF_LEFT_BUTTON_DOWN)); 121 views::Event::EF_LEFT_BUTTON_DOWN));
122 122
123 // Check to see that the drag event successfully swapped the two tabs. 123 // Check to see that the drag event successfully swapped the two tabs.
124 tab1.reset(browser->GetTab(0)); 124 tab1 = browser->GetTab(0);
125 ASSERT_TRUE(tab1.get()); 125 ASSERT_TRUE(tab1.get());
126 GURL tab1_new_url; 126 GURL tab1_new_url;
127 ASSERT_TRUE(tab1->GetCurrentURL(&tab1_new_url)); 127 ASSERT_TRUE(tab1->GetCurrentURL(&tab1_new_url));
128 128
129 tab2.reset(browser->GetTab(1)); 129 tab2 = browser->GetTab(1);
130 ASSERT_TRUE(tab2.get()); 130 ASSERT_TRUE(tab2.get());
131 GURL tab2_new_url; 131 GURL tab2_new_url;
132 ASSERT_TRUE(tab2->GetCurrentURL(&tab2_new_url)); 132 ASSERT_TRUE(tab2->GetCurrentURL(&tab2_new_url));
133 133
134 EXPECT_EQ(tab1_url.spec(), tab2_new_url.spec()); 134 EXPECT_EQ(tab1_url.spec(), tab2_new_url.spec());
135 EXPECT_EQ(tab2_url.spec(), tab1_new_url.spec()); 135 EXPECT_EQ(tab2_url.spec(), tab1_new_url.spec());
136 136
137 */ 137 */
138 } 138 }
139 } 139 }
140 #endif // defined(OS_WIN) 140 #endif // defined(OS_WIN)
141 141
142 TEST_F(AutomationProxyTest, GetTabCount) { 142 TEST_F(AutomationProxyTest, GetTabCount) {
143 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 143 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
144 ASSERT_TRUE(window.get()); 144 ASSERT_TRUE(window.get());
145 145
146 int tab_count = 0; 146 int tab_count = 0;
147 ASSERT_TRUE(window->GetTabCount(&tab_count)); 147 ASSERT_TRUE(window->GetTabCount(&tab_count));
148 ASSERT_EQ(1, tab_count); 148 ASSERT_EQ(1, tab_count);
149 } 149 }
150 150
151 TEST_F(AutomationProxyTest, GetActiveTabIndex) { 151 TEST_F(AutomationProxyTest, GetActiveTabIndex) {
152 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 152 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
153 ASSERT_TRUE(window.get()); 153 ASSERT_TRUE(window.get());
154 154
155 int active_tab_index = -1; 155 int active_tab_index = -1;
156 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index)); 156 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index));
157 ASSERT_EQ(0, active_tab_index); 157 ASSERT_EQ(0, active_tab_index);
158 } 158 }
159 159
160 TEST_F(AutomationProxyVisibleTest, AppendTab) { 160 TEST_F(AutomationProxyVisibleTest, AppendTab) {
161 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 161 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
162 ASSERT_TRUE(window.get()); 162 ASSERT_TRUE(window.get());
163 163
164 int original_tab_count; 164 int original_tab_count;
165 ASSERT_TRUE(window->GetTabCount(&original_tab_count)); 165 ASSERT_TRUE(window->GetTabCount(&original_tab_count));
166 ASSERT_EQ(1, original_tab_count); // By default there are 2 tabs opened. 166 ASSERT_EQ(1, original_tab_count); // By default there are 2 tabs opened.
167 167
168 int original_active_tab_index; 168 int original_active_tab_index;
169 ASSERT_TRUE(window->GetActiveTabIndex(&original_active_tab_index)); 169 ASSERT_TRUE(window->GetActiveTabIndex(&original_active_tab_index));
170 ASSERT_EQ(0, original_active_tab_index); // By default 0-th tab is active 170 ASSERT_EQ(0, original_active_tab_index); // By default 0-th tab is active
171 171
172 ASSERT_TRUE(window->AppendTab(GURL("about:blank"))); 172 ASSERT_TRUE(window->AppendTab(GURL("about:blank")));
173 int tab_count; 173 int tab_count;
174 ASSERT_TRUE(window->GetTabCount(&tab_count)); 174 ASSERT_TRUE(window->GetTabCount(&tab_count));
175 ASSERT_EQ(original_tab_count + 1, tab_count); 175 ASSERT_EQ(original_tab_count + 1, tab_count);
176 176
177 int active_tab_index = -1; 177 int active_tab_index = -1;
178 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index)); 178 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index));
179 ASSERT_EQ(tab_count - 1, active_tab_index); 179 ASSERT_EQ(tab_count - 1, active_tab_index);
180 ASSERT_NE(original_active_tab_index, active_tab_index); 180 ASSERT_NE(original_active_tab_index, active_tab_index);
181 181
182 FilePath filename(test_data_directory_); 182 FilePath filename(test_data_directory_);
183 filename = filename.AppendASCII("title2.html"); 183 filename = filename.AppendASCII("title2.html");
184 ASSERT_TRUE(window->AppendTab(net::FilePathToFileURL(filename))); 184 ASSERT_TRUE(window->AppendTab(net::FilePathToFileURL(filename)));
185 185
186 int appended_tab_index; 186 int appended_tab_index;
187 // Append tab will also be active tab 187 // Append tab will also be active tab
188 ASSERT_TRUE(window->GetActiveTabIndex(&appended_tab_index)); 188 ASSERT_TRUE(window->GetActiveTabIndex(&appended_tab_index));
189 189
190 scoped_ptr<TabProxy> tab(window->GetTab(appended_tab_index)); 190 scoped_refptr<TabProxy> tab(window->GetTab(appended_tab_index));
191 ASSERT_TRUE(tab.get()); 191 ASSERT_TRUE(tab.get());
192 std::wstring title; 192 std::wstring title;
193 ASSERT_TRUE(tab->GetTabTitle(&title)); 193 ASSERT_TRUE(tab->GetTabTitle(&title));
194 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str()); 194 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str());
195 } 195 }
196 196
197 TEST_F(AutomationProxyTest, ActivateTab) { 197 TEST_F(AutomationProxyTest, ActivateTab) {
198 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 198 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
199 ASSERT_TRUE(window.get()); 199 ASSERT_TRUE(window.get());
200 200
201 ASSERT_TRUE(window->AppendTab(GURL("about:blank"))); 201 ASSERT_TRUE(window->AppendTab(GURL("about:blank")));
202 202
203 int at_index = 1; 203 int at_index = 1;
204 ASSERT_TRUE(window->ActivateTab(at_index)); 204 ASSERT_TRUE(window->ActivateTab(at_index));
205 int active_tab_index = -1; 205 int active_tab_index = -1;
206 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index)); 206 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index));
207 ASSERT_EQ(at_index, active_tab_index); 207 ASSERT_EQ(at_index, active_tab_index);
208 208
209 at_index = 0; 209 at_index = 0;
210 ASSERT_TRUE(window->ActivateTab(at_index)); 210 ASSERT_TRUE(window->ActivateTab(at_index));
211 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index)); 211 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index));
212 ASSERT_EQ(at_index, active_tab_index); 212 ASSERT_EQ(at_index, active_tab_index);
213 } 213 }
214 214
215 215
216 TEST_F(AutomationProxyTest, GetTab) { 216 TEST_F(AutomationProxyTest, GetTab) {
217 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 217 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
218 ASSERT_TRUE(window.get()); 218 ASSERT_TRUE(window.get());
219 { 219 {
220 scoped_ptr<TabProxy> tab(window->GetTab(0)); 220 scoped_refptr<TabProxy> tab(window->GetTab(0));
221 ASSERT_TRUE(tab.get()); 221 ASSERT_TRUE(tab.get());
222 std::wstring title; 222 std::wstring title;
223 ASSERT_TRUE(tab->GetTabTitle(&title)); 223 ASSERT_TRUE(tab->GetTabTitle(&title));
224 // BUG [634097] : expected title should be "about:blank" 224 // BUG [634097] : expected title should be "about:blank"
225 ASSERT_STREQ(L"", title.c_str()); 225 ASSERT_STREQ(L"", title.c_str());
226 } 226 }
227 227
228 { 228 {
229 ASSERT_FALSE(window->GetTab(-1)); 229 ASSERT_FALSE(window->GetTab(-1));
230 } 230 }
231 231
232 { 232 {
233 scoped_ptr<TabProxy> tab; 233 scoped_refptr<TabProxy> tab(window->GetTab(1));
234 tab.reset(window->GetTab(1));
235 ASSERT_FALSE(tab.get()); 234 ASSERT_FALSE(tab.get());
236 } 235 }
237 }; 236 };
238 237
239 TEST_F(AutomationProxyTest, NavigateToURL) { 238 TEST_F(AutomationProxyTest, NavigateToURL) {
240 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 239 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
241 ASSERT_TRUE(window.get()); 240 ASSERT_TRUE(window.get());
242 scoped_ptr<TabProxy> tab(window->GetTab(0)); 241 scoped_refptr<TabProxy> tab(window->GetTab(0));
243 ASSERT_TRUE(tab.get()); 242 ASSERT_TRUE(tab.get());
244 243
245 std::wstring title; 244 std::wstring title;
246 ASSERT_TRUE(tab->GetTabTitle(&title)); 245 ASSERT_TRUE(tab->GetTabTitle(&title));
247 // BUG [634097] : expected title should be "about:blank" 246 // BUG [634097] : expected title should be "about:blank"
248 ASSERT_STREQ(L"", title.c_str()); 247 ASSERT_STREQ(L"", title.c_str());
249 248
250 FilePath filename(test_data_directory_); 249 FilePath filename(test_data_directory_);
251 filename = filename.AppendASCII("title2.html"); 250 filename = filename.AppendASCII("title2.html");
252 251
253 tab->NavigateToURL(net::FilePathToFileURL(filename)); 252 tab->NavigateToURL(net::FilePathToFileURL(filename));
254 ASSERT_TRUE(tab->GetTabTitle(&title)); 253 ASSERT_TRUE(tab->GetTabTitle(&title));
255 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str()); 254 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str());
256 255
257 // TODO(vibhor) : Add a test using testserver. 256 // TODO(vibhor) : Add a test using testserver.
258 } 257 }
259 258
260 TEST_F(AutomationProxyTest, NavigateToURLWithTimeout1) { 259 TEST_F(AutomationProxyTest, NavigateToURLWithTimeout1) {
261 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 260 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
262 ASSERT_TRUE(window.get()); 261 ASSERT_TRUE(window.get());
263 scoped_ptr<TabProxy> tab(window->GetTab(0)); 262 scoped_refptr<TabProxy> tab(window->GetTab(0));
264 ASSERT_TRUE(tab.get()); 263 ASSERT_TRUE(tab.get());
265 264
266 FilePath filename(test_data_directory_); 265 FilePath filename(test_data_directory_);
267 filename = filename.AppendASCII("title2.html"); 266 filename = filename.AppendASCII("title2.html");
268 267
269 bool is_timeout; 268 bool is_timeout;
270 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename), 269 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename),
271 5000, &is_timeout); 270 5000, &is_timeout);
272 ASSERT_FALSE(is_timeout); 271 ASSERT_FALSE(is_timeout);
273 272
274 std::wstring title; 273 std::wstring title;
275 ASSERT_TRUE(tab->GetTabTitle(&title)); 274 ASSERT_TRUE(tab->GetTabTitle(&title));
276 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str()); 275 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str());
277 276
278 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename), 277 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename),
279 1, &is_timeout); 278 1, &is_timeout);
280 ASSERT_TRUE(is_timeout); 279 ASSERT_TRUE(is_timeout);
281 } 280 }
282 281
283 TEST_F(AutomationProxyTest, NavigateToURLWithTimeout2) { 282 TEST_F(AutomationProxyTest, NavigateToURLWithTimeout2) {
284 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 283 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
285 ASSERT_TRUE(window.get()); 284 ASSERT_TRUE(window.get());
286 scoped_ptr<TabProxy> tab(window->GetTab(0)); 285 scoped_refptr<TabProxy> tab(window->GetTab(0));
287 tab.reset(window->GetTab(0));
288 ASSERT_TRUE(tab.get()); 286 ASSERT_TRUE(tab.get());
289 287
290 FilePath filename1(test_data_directory_); 288 FilePath filename1(test_data_directory_);
291 filename1 = filename1.AppendASCII("title1.html"); 289 filename1 = filename1.AppendASCII("title1.html");
292 290
293 bool is_timeout; 291 bool is_timeout;
294 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename1), 292 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename1),
295 1, &is_timeout); 293 1, &is_timeout);
296 ASSERT_TRUE(is_timeout); 294 ASSERT_TRUE(is_timeout);
297 295
298 FilePath filename2(test_data_directory_); 296 FilePath filename2(test_data_directory_);
299 filename2 = filename2.AppendASCII("title1.html"); 297 filename2 = filename2.AppendASCII("title1.html");
300 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename2), 298 tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename2),
301 5000, &is_timeout); 299 5000, &is_timeout);
302 ASSERT_FALSE(is_timeout); 300 ASSERT_FALSE(is_timeout);
303 } 301 }
304 302
305 TEST_F(AutomationProxyTest, GoBackForward) { 303 TEST_F(AutomationProxyTest, GoBackForward) {
306 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 304 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
307 ASSERT_TRUE(window.get()); 305 ASSERT_TRUE(window.get());
308 scoped_ptr<TabProxy> tab(window->GetTab(0)); 306 scoped_refptr<TabProxy> tab(window->GetTab(0));
309 ASSERT_TRUE(tab.get()); 307 ASSERT_TRUE(tab.get());
310 308
311 std::wstring title; 309 std::wstring title;
312 ASSERT_TRUE(tab->GetTabTitle(&title)); 310 ASSERT_TRUE(tab->GetTabTitle(&title));
313 // BUG [634097] : expected title should be "about:blank" 311 // BUG [634097] : expected title should be "about:blank"
314 ASSERT_STREQ(L"", title.c_str()); 312 ASSERT_STREQ(L"", title.c_str());
315 313
316 ASSERT_FALSE(tab->GoBack()); 314 ASSERT_FALSE(tab->GoBack());
317 ASSERT_TRUE(tab->GetTabTitle(&title)); 315 ASSERT_TRUE(tab->GetTabTitle(&title));
318 ASSERT_STREQ(L"", title.c_str()); 316 ASSERT_STREQ(L"", title.c_str());
(...skipping 12 matching lines...) Expand all
331 ASSERT_TRUE(tab->GoForward()); 329 ASSERT_TRUE(tab->GoForward());
332 ASSERT_TRUE(tab->GetTabTitle(&title)); 330 ASSERT_TRUE(tab->GetTabTitle(&title));
333 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str()); 331 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str());
334 332
335 ASSERT_FALSE(tab->GoForward()); 333 ASSERT_FALSE(tab->GoForward());
336 ASSERT_TRUE(tab->GetTabTitle(&title)); 334 ASSERT_TRUE(tab->GetTabTitle(&title));
337 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str()); 335 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str());
338 } 336 }
339 337
340 TEST_F(AutomationProxyTest, GetCurrentURL) { 338 TEST_F(AutomationProxyTest, GetCurrentURL) {
341 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 339 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
342 ASSERT_TRUE(window.get()); 340 ASSERT_TRUE(window.get());
343 scoped_ptr<TabProxy> tab(window->GetTab(0)); 341 scoped_refptr<TabProxy> tab(window->GetTab(0));
344 ASSERT_TRUE(tab.get()); 342 ASSERT_TRUE(tab.get());
345 GURL url; 343 GURL url;
346 ASSERT_TRUE(tab->GetCurrentURL(&url)); 344 ASSERT_TRUE(tab->GetCurrentURL(&url));
347 ASSERT_STREQ("about:blank", url.spec().c_str()); 345 ASSERT_STREQ("about:blank", url.spec().c_str());
348 346
349 FilePath filename(test_data_directory_); 347 FilePath filename(test_data_directory_);
350 filename = filename.AppendASCII("cookie1.html"); 348 filename = filename.AppendASCII("cookie1.html");
351 GURL newurl = net::FilePathToFileURL(filename); 349 GURL newurl = net::FilePathToFileURL(filename);
352 ASSERT_TRUE(tab->NavigateToURL(newurl)); 350 ASSERT_TRUE(tab->NavigateToURL(newurl));
353 ASSERT_TRUE(tab->GetCurrentURL(&url)); 351 ASSERT_TRUE(tab->GetCurrentURL(&url));
(...skipping 10 matching lines...) Expand all
364 launch_arguments_ = CommandLine(L""); 362 launch_arguments_ = CommandLine(L"");
365 launch_arguments_.AppendLooseValue(document1_.ToWStringHack()); 363 launch_arguments_.AppendLooseValue(document1_.ToWStringHack());
366 launch_arguments_.AppendLooseValue(document2_.ToWStringHack()); 364 launch_arguments_.AppendLooseValue(document2_.ToWStringHack());
367 } 365 }
368 366
369 FilePath document1_; 367 FilePath document1_;
370 FilePath document2_; 368 FilePath document2_;
371 }; 369 };
372 370
373 TEST_F(AutomationProxyTest2, GetActiveTabIndex) { 371 TEST_F(AutomationProxyTest2, GetActiveTabIndex) {
374 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 372 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
375 ASSERT_TRUE(window.get()); 373 ASSERT_TRUE(window.get());
376 374
377 int active_tab_index = -1; 375 int active_tab_index = -1;
378 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index)); 376 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index));
379 int tab_count; 377 int tab_count;
380 ASSERT_TRUE(window->GetTabCount(&tab_count)); 378 ASSERT_TRUE(window->GetTabCount(&tab_count));
381 ASSERT_EQ(0, active_tab_index); 379 ASSERT_EQ(0, active_tab_index);
382 int at_index = 1; 380 int at_index = 1;
383 ASSERT_TRUE(window->ActivateTab(at_index)); 381 ASSERT_TRUE(window->ActivateTab(at_index));
384 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index)); 382 ASSERT_TRUE(window->GetActiveTabIndex(&active_tab_index));
385 ASSERT_EQ(at_index, active_tab_index); 383 ASSERT_EQ(at_index, active_tab_index);
386 } 384 }
387 385
388 TEST_F(AutomationProxyTest2, GetTabTitle) { 386 TEST_F(AutomationProxyTest2, GetTabTitle) {
389 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 387 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
390 ASSERT_TRUE(window.get()); 388 ASSERT_TRUE(window.get());
391 scoped_ptr<TabProxy> tab(window->GetTab(0)); 389 scoped_refptr<TabProxy> tab(window->GetTab(0));
392 ASSERT_TRUE(tab.get()); 390 ASSERT_TRUE(tab.get());
393 std::wstring title; 391 std::wstring title;
394 ASSERT_TRUE(tab->GetTabTitle(&title)); 392 ASSERT_TRUE(tab->GetTabTitle(&title));
395 ASSERT_STREQ(L"title1.html", title.c_str()); 393 ASSERT_STREQ(L"title1.html", title.c_str());
396 394
397 tab.reset(window->GetTab(1)); 395 tab = window->GetTab(1);
398 ASSERT_TRUE(tab.get()); 396 ASSERT_TRUE(tab.get());
399 ASSERT_TRUE(tab->GetTabTitle(&title)); 397 ASSERT_TRUE(tab->GetTabTitle(&title));
400 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str()); 398 ASSERT_STREQ(L"Title Of Awesomeness", title.c_str());
401 } 399 }
402 400
403 TEST_F(AutomationProxyTest, Cookies) { 401 TEST_F(AutomationProxyTest, Cookies) {
404 GURL url("http://mojo.jojo.google.com"); 402 GURL url("http://mojo.jojo.google.com");
405 std::string value_result; 403 std::string value_result;
406 404
407 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 405 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
408 ASSERT_TRUE(window.get()); 406 ASSERT_TRUE(window.get());
409 407
410 scoped_ptr<TabProxy> tab(window->GetTab(0)); 408 scoped_refptr<TabProxy> tab(window->GetTab(0));
411 ASSERT_TRUE(tab.get()); 409 ASSERT_TRUE(tab.get());
412 410
413 // test setting the cookie: 411 // test setting the cookie:
414 ASSERT_TRUE(tab->SetCookie(url, "foo=baz")); 412 ASSERT_TRUE(tab->SetCookie(url, "foo=baz"));
415 413
416 ASSERT_TRUE(tab->GetCookieByName(url, "foo", &value_result)); 414 ASSERT_TRUE(tab->GetCookieByName(url, "foo", &value_result));
417 ASSERT_FALSE(value_result.empty()); 415 ASSERT_FALSE(value_result.empty());
418 ASSERT_STREQ("baz", value_result.c_str()); 416 ASSERT_STREQ("baz", value_result.c_str());
419 417
420 // test clearing the cookie: 418 // test clearing the cookie:
421 ASSERT_TRUE(tab->SetCookie(url, "foo=")); 419 ASSERT_TRUE(tab->SetCookie(url, "foo="));
422 420
423 ASSERT_TRUE(tab->GetCookieByName(url, "foo", &value_result)); 421 ASSERT_TRUE(tab->GetCookieByName(url, "foo", &value_result));
424 ASSERT_TRUE(value_result.empty()); 422 ASSERT_TRUE(value_result.empty());
425 423
426 // now, test that we can get multiple cookies: 424 // now, test that we can get multiple cookies:
427 ASSERT_TRUE(tab->SetCookie(url, "foo1=baz1")); 425 ASSERT_TRUE(tab->SetCookie(url, "foo1=baz1"));
428 ASSERT_TRUE(tab->SetCookie(url, "foo2=baz2")); 426 ASSERT_TRUE(tab->SetCookie(url, "foo2=baz2"));
429 427
430 ASSERT_TRUE(tab->GetCookies(url, &value_result)); 428 ASSERT_TRUE(tab->GetCookies(url, &value_result));
431 ASSERT_FALSE(value_result.empty()); 429 ASSERT_FALSE(value_result.empty());
432 EXPECT_TRUE(value_result.find("foo1=baz1") != std::string::npos); 430 EXPECT_TRUE(value_result.find("foo1=baz1") != std::string::npos);
433 EXPECT_TRUE(value_result.find("foo2=baz2") != std::string::npos); 431 EXPECT_TRUE(value_result.find("foo2=baz2") != std::string::npos);
434 } 432 }
435 433
436 // TODO(port): Determine what tests need this and port. 434 // TODO(port): Determine what tests need this and port.
437 #if defined(OS_WIN) 435 #if defined(OS_WIN)
438 TEST_F(AutomationProxyTest, GetHWND) { 436 TEST_F(AutomationProxyTest, GetHWND) {
439 scoped_ptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 437 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
440 ASSERT_TRUE(browser.get()); 438 ASSERT_TRUE(browser.get());
441 scoped_ptr<WindowProxy> window(browser->GetWindow()); 439 scoped_refptr<WindowProxy> window(browser->GetWindow());
442 ASSERT_TRUE(window.get()); 440 ASSERT_TRUE(window.get());
443 441
444 HWND handle; 442 HWND handle;
445 ASSERT_TRUE(window->GetHWND(&handle)); 443 ASSERT_TRUE(window->GetHWND(&handle));
446 ASSERT_TRUE(handle); 444 ASSERT_TRUE(handle);
447 } 445 }
448 #endif 446 #endif
449 447
450 TEST_F(AutomationProxyTest, NavigateToURLAsync) { 448 TEST_F(AutomationProxyTest, NavigateToURLAsync) {
451 AutomationProxy* automation_object = automation(); 449 AutomationProxy* automation_object = automation();
452 scoped_ptr<BrowserProxy> window(automation_object->GetBrowserWindow(0)); 450 scoped_refptr<BrowserProxy> window(automation_object->GetBrowserWindow(0));
453 ASSERT_TRUE(window.get()); 451 ASSERT_TRUE(window.get());
454 scoped_ptr<TabProxy> tab(window->GetTab(0)); 452 scoped_refptr<TabProxy> tab(window->GetTab(0));
455 ASSERT_TRUE(tab.get()); 453 ASSERT_TRUE(tab.get());
456 454
457 FilePath filename(test_data_directory_); 455 FilePath filename(test_data_directory_);
458 filename = filename.AppendASCII("cookie1.html"); 456 filename = filename.AppendASCII("cookie1.html");
459 GURL newurl = net::FilePathToFileURL(filename); 457 GURL newurl = net::FilePathToFileURL(filename);
460 458
461 ASSERT_TRUE(tab->NavigateToURLAsync(newurl)); 459 ASSERT_TRUE(tab->NavigateToURLAsync(newurl));
462 std::string value = WaitUntilCookieNonEmpty(tab.get(), newurl, "foo", 250, 460 std::string value = WaitUntilCookieNonEmpty(tab.get(), newurl, "foo", 250,
463 action_max_timeout_ms()); 461 action_max_timeout_ms());
464 ASSERT_STREQ("baz", value.c_str()); 462 ASSERT_STREQ("baz", value.c_str());
465 } 463 }
466 464
467 TEST_F(AutomationProxyTest, AcceleratorNewTab) { 465 TEST_F(AutomationProxyTest, AcceleratorNewTab) {
468 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 466 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
469 467
470 int tab_count = -1; 468 int tab_count = -1;
471 ASSERT_TRUE(window->GetTabCount(&tab_count)); 469 ASSERT_TRUE(window->GetTabCount(&tab_count));
472 EXPECT_EQ(1, tab_count); 470 EXPECT_EQ(1, tab_count);
473 471
474 ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); 472 ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB));
475 ASSERT_TRUE(window->GetTabCount(&tab_count)); 473 ASSERT_TRUE(window->GetTabCount(&tab_count));
476 EXPECT_EQ(2, tab_count); 474 EXPECT_EQ(2, tab_count);
477 scoped_ptr<TabProxy> tab(window->GetTab(tab_count - 1)); 475 scoped_refptr<TabProxy> tab(window->GetTab(tab_count - 1));
478 ASSERT_TRUE(tab.get()); 476 ASSERT_TRUE(tab.get());
479 } 477 }
480 478
481 class AutomationProxyTest4 : public UITest { 479 class AutomationProxyTest4 : public UITest {
482 protected: 480 protected:
483 AutomationProxyTest4() : UITest() { 481 AutomationProxyTest4() : UITest() {
484 dom_automation_enabled_ = true; 482 dom_automation_enabled_ = true;
485 } 483 }
486 }; 484 };
487 485
488 std::wstring CreateJSString(const std::wstring& value) { 486 std::wstring CreateJSString(const std::wstring& value) {
489 std::wstring jscript; 487 std::wstring jscript;
490 SStringPrintf(&jscript, 488 SStringPrintf(&jscript,
491 L"window.domAutomationController.send(%ls);", 489 L"window.domAutomationController.send(%ls);",
492 value.c_str()); 490 value.c_str());
493 return jscript; 491 return jscript;
494 } 492 }
495 493
496 TEST_F(AutomationProxyTest4, StringValueIsEchoedByDomAutomationController) { 494 TEST_F(AutomationProxyTest4, StringValueIsEchoedByDomAutomationController) {
497 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 495 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
498 ASSERT_TRUE(window.get()); 496 ASSERT_TRUE(window.get());
499 497
500 scoped_ptr<TabProxy> tab(window->GetTab(0)); 498 scoped_refptr<TabProxy> tab(window->GetTab(0));
501 ASSERT_TRUE(tab.get()); 499 ASSERT_TRUE(tab.get());
502 500
503 std::wstring expected(L"string"); 501 std::wstring expected(L"string");
504 std::wstring jscript = CreateJSString(L"\"" + expected + L"\""); 502 std::wstring jscript = CreateJSString(L"\"" + expected + L"\"");
505 std::wstring actual; 503 std::wstring actual;
506 ASSERT_TRUE(tab->ExecuteAndExtractString(L"", jscript, &actual)); 504 ASSERT_TRUE(tab->ExecuteAndExtractString(L"", jscript, &actual));
507 ASSERT_STREQ(expected.c_str(), actual.c_str()); 505 ASSERT_STREQ(expected.c_str(), actual.c_str());
508 } 506 }
509 507
510 std::wstring BooleanToString(bool bool_value) { 508 std::wstring BooleanToString(bool bool_value) {
511 Value* value = Value::CreateBooleanValue(bool_value); 509 Value* value = Value::CreateBooleanValue(bool_value);
512 std::string json_string; 510 std::string json_string;
513 JSONStringValueSerializer serializer(&json_string); 511 JSONStringValueSerializer serializer(&json_string);
514 serializer.Serialize(*value); 512 serializer.Serialize(*value);
515 return UTF8ToWide(json_string); 513 return UTF8ToWide(json_string);
516 } 514 }
517 515
518 TEST_F(AutomationProxyTest4, BooleanValueIsEchoedByDomAutomationController) { 516 TEST_F(AutomationProxyTest4, BooleanValueIsEchoedByDomAutomationController) {
519 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 517 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
520 ASSERT_TRUE(window.get()); 518 ASSERT_TRUE(window.get());
521 519
522 scoped_ptr<TabProxy> tab(window->GetTab(0)); 520 scoped_refptr<TabProxy> tab(window->GetTab(0));
523 ASSERT_TRUE(tab.get()); 521 ASSERT_TRUE(tab.get());
524 522
525 bool expected = true; 523 bool expected = true;
526 std::wstring jscript = CreateJSString(BooleanToString(expected)); 524 std::wstring jscript = CreateJSString(BooleanToString(expected));
527 bool actual = false; 525 bool actual = false;
528 ASSERT_TRUE(tab->ExecuteAndExtractBool(L"", jscript, &actual)); 526 ASSERT_TRUE(tab->ExecuteAndExtractBool(L"", jscript, &actual));
529 ASSERT_EQ(expected, actual); 527 ASSERT_EQ(expected, actual);
530 } 528 }
531 529
532 TEST_F(AutomationProxyTest4, NumberValueIsEchoedByDomAutomationController) { 530 TEST_F(AutomationProxyTest4, NumberValueIsEchoedByDomAutomationController) {
533 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 531 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
534 ASSERT_TRUE(window.get()); 532 ASSERT_TRUE(window.get());
535 533
536 scoped_ptr<TabProxy> tab(window->GetTab(0)); 534 scoped_refptr<TabProxy> tab(window->GetTab(0));
537 ASSERT_TRUE(tab.get()); 535 ASSERT_TRUE(tab.get());
538 536
539 int expected = 1; 537 int expected = 1;
540 int actual = 0; 538 int actual = 0;
541 std::wstring expected_string; 539 std::wstring expected_string;
542 SStringPrintf(&expected_string, L"%d", expected); 540 SStringPrintf(&expected_string, L"%d", expected);
543 std::wstring jscript = CreateJSString(expected_string); 541 std::wstring jscript = CreateJSString(expected_string);
544 ASSERT_TRUE(tab->ExecuteAndExtractInt(L"", jscript, &actual)); 542 ASSERT_TRUE(tab->ExecuteAndExtractInt(L"", jscript, &actual));
545 ASSERT_EQ(expected, actual); 543 ASSERT_EQ(expected, actual);
546 } 544 }
(...skipping 17 matching lines...) Expand all
564 }; 562 };
565 563
566 std::wstring CreateJSStringForDOMQuery(const std::wstring& id) { 564 std::wstring CreateJSStringForDOMQuery(const std::wstring& id) {
567 std::wstring jscript(L"window.domAutomationController"); 565 std::wstring jscript(L"window.domAutomationController");
568 StringAppendF(&jscript, L".send(document.getElementById('%ls').nodeName);", 566 StringAppendF(&jscript, L".send(document.getElementById('%ls').nodeName);",
569 id.c_str()); 567 id.c_str());
570 return jscript; 568 return jscript;
571 } 569 }
572 570
573 TEST_F(AutomationProxyTest3, FrameDocumentCanBeAccessed) { 571 TEST_F(AutomationProxyTest3, FrameDocumentCanBeAccessed) {
574 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 572 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
575 ASSERT_TRUE(window.get()); 573 ASSERT_TRUE(window.get());
576 574
577 scoped_ptr<TabProxy> tab(window->GetTab(0)); 575 scoped_refptr<TabProxy> tab(window->GetTab(0));
578 ASSERT_TRUE(tab.get()); 576 ASSERT_TRUE(tab.get());
579 577
580 std::wstring actual; 578 std::wstring actual;
581 std::wstring xpath1 = L""; // top level frame 579 std::wstring xpath1 = L""; // top level frame
582 std::wstring jscript1 = CreateJSStringForDOMQuery(L"myinput"); 580 std::wstring jscript1 = CreateJSStringForDOMQuery(L"myinput");
583 ASSERT_TRUE(tab->ExecuteAndExtractString(xpath1, jscript1, &actual)); 581 ASSERT_TRUE(tab->ExecuteAndExtractString(xpath1, jscript1, &actual));
584 ASSERT_EQ(L"INPUT", actual); 582 ASSERT_EQ(L"INPUT", actual);
585 583
586 std::wstring xpath2 = L"/html/body/iframe"; 584 std::wstring xpath2 = L"/html/body/iframe";
587 std::wstring jscript2 = CreateJSStringForDOMQuery(L"myspan"); 585 std::wstring jscript2 = CreateJSStringForDOMQuery(L"myspan");
588 ASSERT_TRUE(tab->ExecuteAndExtractString(xpath2, jscript2, &actual)); 586 ASSERT_TRUE(tab->ExecuteAndExtractString(xpath2, jscript2, &actual));
589 ASSERT_EQ(L"SPAN", actual); 587 ASSERT_EQ(L"SPAN", actual);
590 588
591 std::wstring xpath3 = L"/html/body/iframe\n/html/body/iframe"; 589 std::wstring xpath3 = L"/html/body/iframe\n/html/body/iframe";
592 std::wstring jscript3 = CreateJSStringForDOMQuery(L"mydiv"); 590 std::wstring jscript3 = CreateJSStringForDOMQuery(L"mydiv");
593 ASSERT_TRUE(tab->ExecuteAndExtractString(xpath3, jscript3, &actual)); 591 ASSERT_TRUE(tab->ExecuteAndExtractString(xpath3, jscript3, &actual));
594 ASSERT_EQ(L"DIV", actual); 592 ASSERT_EQ(L"DIV", actual);
595 593
596 // TODO(evanm): fix or remove this. 594 // TODO(evanm): fix or remove this.
597 // This part of the test appears to verify that executing JS fails 595 // This part of the test appears to verify that executing JS fails
598 // non-HTML pages, but the new tab is now HTML so this test isn't 596 // non-HTML pages, but the new tab is now HTML so this test isn't
599 // correct. 597 // correct.
600 #if 0 598 #if 0
601 // Open a new Destinations tab to execute script inside. 599 // Open a new Destinations tab to execute script inside.
602 window->RunCommand(IDC_NEWTAB); 600 window->RunCommand(IDC_NEWTAB);
603 tab.reset(window->GetTab(1)); 601 tab = window->GetTab(1);
604 ASSERT_TRUE(tab.get()); 602 ASSERT_TRUE(tab.get());
605 ASSERT_TRUE(window->ActivateTab(1)); 603 ASSERT_TRUE(window->ActivateTab(1));
606 604
607 ASSERT_FALSE(tab->ExecuteAndExtractString(xpath1, jscript1, &actual)); 605 ASSERT_FALSE(tab->ExecuteAndExtractString(xpath1, jscript1, &actual));
608 #endif 606 #endif
609 } 607 }
610 608
611 // TODO(port): Need to port constrained_window_proxy.* first. 609 // TODO(port): Need to port constrained_window_proxy.* first.
612 #if defined(OS_WIN) 610 #if defined(OS_WIN)
613 TEST_F(AutomationProxyTest, ConstrainedWindowTest) { 611 TEST_F(AutomationProxyTest, ConstrainedWindowTest) {
614 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 612 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
615 ASSERT_TRUE(window.get()); 613 ASSERT_TRUE(window.get());
616 614
617 scoped_ptr<TabProxy> tab(window->GetTab(0)); 615 scoped_refptr<TabProxy> tab(window->GetTab(0));
618 tab.reset(window->GetTab(0));
619 ASSERT_TRUE(tab.get()); 616 ASSERT_TRUE(tab.get());
620 617
621 FilePath filename(test_data_directory_); 618 FilePath filename(test_data_directory_);
622 filename = filename.AppendASCII("constrained_files"); 619 filename = filename.AppendASCII("constrained_files");
623 filename = filename.AppendASCII("constrained_window.html"); 620 filename = filename.AppendASCII("constrained_window.html");
624 621
625 ASSERT_TRUE(tab->NavigateToURL(net::FilePathToFileURL(filename))); 622 ASSERT_TRUE(tab->NavigateToURL(net::FilePathToFileURL(filename)));
626 623
627 int count; 624 int count;
628 ASSERT_TRUE(tab->WaitForChildWindowCountToChange(0, &count, 5000)); 625 ASSERT_TRUE(tab->WaitForChildWindowCountToChange(0, &count, 5000));
629 626
630 ASSERT_EQ(1, count); 627 ASSERT_EQ(1, count);
631 628
632 ConstrainedWindowProxy* cwindow = tab->GetConstrainedWindow(0); 629 scoped_refptr<ConstrainedWindowProxy> cwindow = tab->GetConstrainedWindow(0);
633 ASSERT_TRUE(cwindow); 630 ASSERT_TRUE(cwindow.get());
634 631
635 std::wstring title; 632 std::wstring title;
636 ASSERT_TRUE(cwindow->GetTitle(&title)); 633 ASSERT_TRUE(cwindow->GetTitle(&title));
637 std::wstring window_title = L"Pop-ups Blocked: 2"; 634 std::wstring window_title = L"Pop-ups Blocked: 2";
638 ASSERT_STREQ(window_title.c_str(), title.c_str()); 635 ASSERT_STREQ(window_title.c_str(), title.c_str());
639 delete cwindow;
640 } 636 }
641 637
642 TEST_F(AutomationProxyTest, CantEscapeByOnloadMoveto) { 638 TEST_F(AutomationProxyTest, CantEscapeByOnloadMoveto) {
643 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 639 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
644 ASSERT_TRUE(window.get()); 640 ASSERT_TRUE(window.get());
645 641
646 scoped_ptr<TabProxy> tab(window->GetTab(0)); 642 scoped_refptr<TabProxy> tab(window->GetTab(0));
647 tab.reset(window->GetTab(0));
648 ASSERT_TRUE(tab.get()); 643 ASSERT_TRUE(tab.get());
649 644
650 FilePath filename(test_data_directory_); 645 FilePath filename(test_data_directory_);
651 filename = filename.AppendASCII("constrained_files"); 646 filename = filename.AppendASCII("constrained_files");
652 filename = filename.AppendASCII("constrained_window_onload_moveto.html"); 647 filename = filename.AppendASCII("constrained_window_onload_moveto.html");
653 648
654 ASSERT_TRUE(tab->NavigateToURL(net::FilePathToFileURL(filename))); 649 ASSERT_TRUE(tab->NavigateToURL(net::FilePathToFileURL(filename)));
655 650
656 int count; 651 int count;
657 ASSERT_TRUE(tab->WaitForChildWindowCountToChange(0, &count, 5000)); 652 ASSERT_TRUE(tab->WaitForChildWindowCountToChange(0, &count, 5000));
658 653
659 ASSERT_EQ(1, count); 654 ASSERT_EQ(1, count);
660 655
661 ConstrainedWindowProxy* cwindow = tab->GetConstrainedWindow(0); 656 scoped_refptr<ConstrainedWindowProxy> cwindow = tab->GetConstrainedWindow(0);
662 ASSERT_TRUE(cwindow); 657 ASSERT_TRUE(cwindow.get());
663 658
664 gfx::Rect rect; 659 gfx::Rect rect;
665 bool is_timeout = false; 660 bool is_timeout = false;
666 ASSERT_TRUE(cwindow->GetBoundsWithTimeout(&rect, 1000, &is_timeout)); 661 ASSERT_TRUE(cwindow->GetBoundsWithTimeout(&rect, 1000, &is_timeout));
667 ASSERT_FALSE(is_timeout); 662 ASSERT_FALSE(is_timeout);
668 ASSERT_NE(20, rect.x()); 663 ASSERT_NE(20, rect.x());
669 ASSERT_NE(20, rect.y()); 664 ASSERT_NE(20, rect.y());
670 } 665 }
671 #endif // defined(OS_WIN) 666 #endif // defined(OS_WIN)
672 667
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 const std::string& target) { 791 const std::string& target) {
797 messages_received_++; 792 messages_received_++;
798 message_ = message; 793 message_ = message;
799 origin_ = origin; 794 origin_ = origin;
800 target_ = target; 795 target_ = target;
801 PostQuitMessage(0); 796 PostQuitMessage(0);
802 } 797 }
803 798
804 TEST_F(ExternalTabTestType, CreateExternalTab) { 799 TEST_F(ExternalTabTestType, CreateExternalTab) {
805 HWND external_tab_container = NULL; 800 HWND external_tab_container = NULL;
806 scoped_ptr<TabProxy> tab(automation()->CreateExternalTab(NULL, gfx::Rect(), 801 scoped_refptr<TabProxy> tab(automation()->CreateExternalTab(NULL, gfx::Rect(),
807 WS_POPUP, false, &external_tab_container)); 802 WS_POPUP, false, &external_tab_container));
808 EXPECT_TRUE(tab != NULL); 803 EXPECT_TRUE(tab != NULL);
809 EXPECT_NE(FALSE, ::IsWindow(external_tab_container)); 804 EXPECT_NE(FALSE, ::IsWindow(external_tab_container));
810 if (tab != NULL) { 805 if (tab != NULL) {
811 tab->NavigateInExternalTab(GURL(L"http://www.google.com")); 806 tab->NavigateInExternalTab(GURL(L"http://www.google.com"));
812 EXPECT_EQ(true, ExternalTabMessageLoop(external_tab_container, 1000)); 807 EXPECT_EQ(true, ExternalTabMessageLoop(external_tab_container, 1000));
813 // Since the tab goes away lazily, wait a bit 808 // Since the tab goes away lazily, wait a bit
814 PlatformThread::Sleep(1000); 809 PlatformThread::Sleep(1000);
815 EXPECT_FALSE(tab->is_valid()); 810 EXPECT_FALSE(tab->is_valid());
816 } 811 }
817 } 812 }
818 813
819 TEST_F(ExternalTabTestType, IncognitoMode) { 814 TEST_F(ExternalTabTestType, IncognitoMode) {
820 HWND external_tab_container = NULL; 815 HWND external_tab_container = NULL;
821 GURL url("http://anatomyofmelancholy.net"); 816 GURL url("http://anatomyofmelancholy.net");
822 std::string value_result; 817 std::string value_result;
823 818
824 // Create incognito tab 819 // Create incognito tab
825 scoped_ptr<TabProxy> tab(automation()->CreateExternalTab(NULL, gfx::Rect(), 820 scoped_refptr<TabProxy> tab(automation()->CreateExternalTab(NULL, gfx::Rect(),
826 WS_POPUP, true, &external_tab_container)); 821 WS_POPUP, true, &external_tab_container));
827 EXPECT_TRUE(tab->SetCookie(url, "robert=burton; " 822 EXPECT_TRUE(tab->SetCookie(url, "robert=burton; "
828 "expires=Thu, 13 Oct 2011 05:04:03 UTC;")); 823 "expires=Thu, 13 Oct 2011 05:04:03 UTC;"));
829 EXPECT_TRUE(tab->GetCookieByName(url, "robert", &value_result)); 824 EXPECT_TRUE(tab->GetCookieByName(url, "robert", &value_result));
830 EXPECT_EQ("burton", value_result); 825 EXPECT_EQ("burton", value_result);
831 tab.reset(NULL); 826 tab = NULL;
832 CloseBrowserAndServer(); 827 CloseBrowserAndServer();
833 828
834 value_result.empty(); 829 value_result.empty();
835 clear_profile_ = false; 830 clear_profile_ = false;
836 external_tab_container = NULL; 831 external_tab_container = NULL;
837 LaunchBrowserAndServer(); 832 LaunchBrowserAndServer();
838 tab.reset(automation()->CreateExternalTab(NULL, gfx::Rect(), 833 tab = automation()->CreateExternalTab(NULL, gfx::Rect(),
839 WS_POPUP, false, &external_tab_container)); 834 WS_POPUP, false, &external_tab_container);
840 EXPECT_TRUE(tab->GetCookieByName(url, "robert", &value_result)); 835 EXPECT_TRUE(tab->GetCookieByName(url, "robert", &value_result));
841 EXPECT_EQ("", value_result); 836 EXPECT_EQ("", value_result);
842 } 837 }
843 838
844 TEST_F(ExternalTabTestType, ExternalTabPostMessage) { 839 TEST_F(ExternalTabTestType, ExternalTabPostMessage) {
845 AutomationProxyForExternalTab* proxy = 840 AutomationProxyForExternalTab* proxy =
846 static_cast<AutomationProxyForExternalTab*>(automation()); 841 static_cast<AutomationProxyForExternalTab*>(automation());
847 842
848 HWND external_tab_container = NULL; 843 HWND external_tab_container = NULL;
849 scoped_ptr<TabProxy> tab(proxy->CreateExternalTab(NULL, gfx::Rect(), 844 scoped_refptr<TabProxy> tab(proxy->CreateExternalTab(NULL, gfx::Rect(),
850 WS_POPUP, false, &external_tab_container)); 845 WS_POPUP, false, &external_tab_container));
851 EXPECT_TRUE(tab != NULL); 846 EXPECT_TRUE(tab != NULL);
852 EXPECT_NE(FALSE, ::IsWindow(external_tab_container)); 847 EXPECT_NE(FALSE, ::IsWindow(external_tab_container));
853 if (tab != NULL) { 848 if (tab != NULL) {
854 std::string content = 849 std::string content =
855 "data:text/html,<html><head><script>" 850 "data:text/html,<html><head><script>"
856 "function onload() {" 851 "function onload() {"
857 " window.externalHost.onmessage = onMessage;" 852 " window.externalHost.onmessage = onMessage;"
858 "}" 853 "}"
859 "function onMessage(evt) {" 854 "function onMessage(evt) {"
(...skipping 13 matching lines...) Expand all
873 if (proxy->messages_received()) { 868 if (proxy->messages_received()) {
874 EXPECT_EQ("Hello from gtest", proxy->message()); 869 EXPECT_EQ("Hello from gtest", proxy->message());
875 } 870 }
876 } 871 }
877 } 872 }
878 #endif // defined(OS_WIN) 873 #endif // defined(OS_WIN)
879 874
880 // TODO(port): Need to port autocomplete_edit_proxy.* first. 875 // TODO(port): Need to port autocomplete_edit_proxy.* first.
881 #if defined(OS_WIN) || defined(OS_LINUX) 876 #if defined(OS_WIN) || defined(OS_LINUX)
882 TEST_F(AutomationProxyTest, AutocompleteGetSetText) { 877 TEST_F(AutomationProxyTest, AutocompleteGetSetText) {
883 scoped_ptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 878 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
884 ASSERT_TRUE(browser.get()); 879 ASSERT_TRUE(browser.get());
885 scoped_ptr<AutocompleteEditProxy> edit( 880 scoped_refptr<AutocompleteEditProxy> edit(
886 browser->GetAutocompleteEdit()); 881 browser->GetAutocompleteEdit());
887 ASSERT_TRUE(edit.get()); 882 ASSERT_TRUE(edit.get());
888 EXPECT_TRUE(edit->is_valid()); 883 EXPECT_TRUE(edit->is_valid());
889 const std::wstring text_to_set = L"Lollerskates"; 884 const std::wstring text_to_set = L"Lollerskates";
890 std::wstring actual_text; 885 std::wstring actual_text;
891 EXPECT_TRUE(edit->SetText(text_to_set)); 886 EXPECT_TRUE(edit->SetText(text_to_set));
892 EXPECT_TRUE(edit->GetText(&actual_text)); 887 EXPECT_TRUE(edit->GetText(&actual_text));
893 EXPECT_EQ(text_to_set, actual_text); 888 EXPECT_EQ(text_to_set, actual_text);
894 scoped_ptr<AutocompleteEditProxy> edit2( 889 scoped_refptr<AutocompleteEditProxy> edit2(
895 browser->GetAutocompleteEdit()); 890 browser->GetAutocompleteEdit());
896 EXPECT_TRUE(edit2->GetText(&actual_text)); 891 EXPECT_TRUE(edit2->GetText(&actual_text));
897 EXPECT_EQ(text_to_set, actual_text); 892 EXPECT_EQ(text_to_set, actual_text);
898 } 893 }
899 894
900 TEST_F(AutomationProxyTest, AutocompleteParallelProxy) { 895 TEST_F(AutomationProxyTest, AutocompleteParallelProxy) {
901 scoped_ptr<BrowserProxy> browser1(automation()->GetBrowserWindow(0)); 896 scoped_refptr<BrowserProxy> browser1(automation()->GetBrowserWindow(0));
902 ASSERT_TRUE(browser1.get()); 897 ASSERT_TRUE(browser1.get());
903 scoped_ptr<AutocompleteEditProxy> edit1( 898 scoped_refptr<AutocompleteEditProxy> edit1(
904 browser1->GetAutocompleteEdit()); 899 browser1->GetAutocompleteEdit());
905 ASSERT_TRUE(edit1.get()); 900 ASSERT_TRUE(edit1.get());
906 EXPECT_TRUE(browser1->RunCommand(IDC_NEW_WINDOW)); 901 EXPECT_TRUE(browser1->RunCommand(IDC_NEW_WINDOW));
907 scoped_ptr<BrowserProxy> browser2(automation()->GetBrowserWindow(1)); 902 scoped_refptr<BrowserProxy> browser2(automation()->GetBrowserWindow(1));
908 ASSERT_TRUE(browser2.get()); 903 ASSERT_TRUE(browser2.get());
909 scoped_ptr<AutocompleteEditProxy> edit2( 904 scoped_refptr<AutocompleteEditProxy> edit2(
910 browser2->GetAutocompleteEdit()); 905 browser2->GetAutocompleteEdit());
911 ASSERT_TRUE(edit2.get()); 906 ASSERT_TRUE(edit2.get());
912 EXPECT_TRUE(browser2->GetTab(0)->WaitForTabToBeRestored( 907 EXPECT_TRUE(browser2->GetTab(0)->WaitForTabToBeRestored(
913 action_max_timeout_ms())); 908 action_max_timeout_ms()));
914 const std::wstring text_to_set1 = L"Lollerskates"; 909 const std::wstring text_to_set1 = L"Lollerskates";
915 const std::wstring text_to_set2 = L"Roflcopter"; 910 const std::wstring text_to_set2 = L"Roflcopter";
916 std::wstring actual_text1, actual_text2; 911 std::wstring actual_text1, actual_text2;
917 EXPECT_TRUE(edit1->SetText(text_to_set1)); 912 EXPECT_TRUE(edit1->SetText(text_to_set1));
918 EXPECT_TRUE(edit2->SetText(text_to_set2)); 913 EXPECT_TRUE(edit2->SetText(text_to_set2));
919 EXPECT_TRUE(edit1->GetText(&actual_text1)); 914 EXPECT_TRUE(edit1->GetText(&actual_text1));
920 EXPECT_TRUE(edit2->GetText(&actual_text2)); 915 EXPECT_TRUE(edit2->GetText(&actual_text2));
921 EXPECT_EQ(text_to_set1, actual_text1); 916 EXPECT_EQ(text_to_set1, actual_text1);
922 EXPECT_EQ(text_to_set2, actual_text2); 917 EXPECT_EQ(text_to_set2, actual_text2);
923 } 918 }
924 919
925 TEST_F(AutomationProxyVisibleTest, AutocompleteMatchesTest) { 920 TEST_F(AutomationProxyVisibleTest, AutocompleteMatchesTest) {
926 scoped_ptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 921 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
927 ASSERT_TRUE(browser.get()); 922 ASSERT_TRUE(browser.get());
928 scoped_ptr<AutocompleteEditProxy> edit( 923 scoped_refptr<AutocompleteEditProxy> edit(
929 browser->GetAutocompleteEdit()); 924 browser->GetAutocompleteEdit());
930 ASSERT_TRUE(edit.get()); 925 ASSERT_TRUE(edit.get());
931 EXPECT_TRUE(browser->ApplyAccelerator(IDC_FOCUS_LOCATION)); 926 EXPECT_TRUE(browser->ApplyAccelerator(IDC_FOCUS_LOCATION));
932 EXPECT_TRUE(edit->is_valid()); 927 EXPECT_TRUE(edit->is_valid());
933 EXPECT_TRUE(edit->SetText(L"Roflcopter")); 928 EXPECT_TRUE(edit->SetText(L"Roflcopter"));
934 EXPECT_TRUE(edit->WaitForQuery(30000)); 929 EXPECT_TRUE(edit->WaitForQuery(30000));
935 bool query_in_progress; 930 bool query_in_progress;
936 EXPECT_TRUE(edit->IsQueryInProgress(&query_in_progress)); 931 EXPECT_TRUE(edit->IsQueryInProgress(&query_in_progress));
937 EXPECT_FALSE(query_in_progress); 932 EXPECT_FALSE(query_in_progress);
938 std::vector<AutocompleteMatchData> matches; 933 std::vector<AutocompleteMatchData> matches;
939 EXPECT_TRUE(edit->GetAutocompleteMatches(&matches)); 934 EXPECT_TRUE(edit->GetAutocompleteMatches(&matches));
940 EXPECT_FALSE(matches.empty()); 935 EXPECT_FALSE(matches.empty());
941 } 936 }
942 #endif // defined(OS_WIN) || defined(OS_LINUX) 937 #endif // defined(OS_WIN) || defined(OS_LINUX)
943 938
944 // Disabled because flaky see bug #5314. 939 // Disabled because flaky see bug #5314.
945 TEST_F(AutomationProxyTest, DISABLED_AppModalDialogTest) { 940 TEST_F(AutomationProxyTest, DISABLED_AppModalDialogTest) {
946 scoped_ptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); 941 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
947 ASSERT_TRUE(browser.get()); 942 ASSERT_TRUE(browser.get());
948 scoped_ptr<TabProxy> tab(browser->GetTab(0)); 943 scoped_refptr<TabProxy> tab(browser->GetTab(0));
949 tab.reset(browser->GetTab(0));
950 ASSERT_TRUE(tab.get()); 944 ASSERT_TRUE(tab.get());
951 945
952 bool modal_dialog_showing = false; 946 bool modal_dialog_showing = false;
953 MessageBoxFlags::DialogButton button = MessageBoxFlags::DIALOGBUTTON_NONE; 947 MessageBoxFlags::DialogButton button = MessageBoxFlags::DIALOGBUTTON_NONE;
954 EXPECT_TRUE(automation()->GetShowingAppModalDialog(&modal_dialog_showing, 948 EXPECT_TRUE(automation()->GetShowingAppModalDialog(&modal_dialog_showing,
955 &button)); 949 &button));
956 EXPECT_FALSE(modal_dialog_showing); 950 EXPECT_FALSE(modal_dialog_showing);
957 EXPECT_EQ(MessageBoxFlags::DIALOGBUTTON_NONE, button); 951 EXPECT_EQ(MessageBoxFlags::DIALOGBUTTON_NONE, button);
958 952
959 // Show a simple alert. 953 // Show a simple alert.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 AutomationProxyTest5() { 1026 AutomationProxyTest5() {
1033 show_window_ = true; 1027 show_window_ = true;
1034 dom_automation_enabled_ = true; 1028 dom_automation_enabled_ = true;
1035 // We need to disable popup blocking to ensure that the RenderView 1029 // We need to disable popup blocking to ensure that the RenderView
1036 // instance for the popup actually closes. 1030 // instance for the popup actually closes.
1037 launch_arguments_.AppendSwitch(switches::kDisablePopupBlocking); 1031 launch_arguments_.AppendSwitch(switches::kDisablePopupBlocking);
1038 } 1032 }
1039 }; 1033 };
1040 1034
1041 TEST_F(AutomationProxyTest5, TestLifetimeOfDomAutomationController) { 1035 TEST_F(AutomationProxyTest5, TestLifetimeOfDomAutomationController) {
1042 scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); 1036 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
1043 ASSERT_TRUE(window.get()); 1037 ASSERT_TRUE(window.get());
1044 1038
1045 scoped_ptr<TabProxy> tab(window->GetTab(0)); 1039 scoped_refptr<TabProxy> tab(window->GetTab(0));
1046 ASSERT_TRUE(tab.get()); 1040 ASSERT_TRUE(tab.get());
1047 1041
1048 FilePath filename(test_data_directory_); 1042 FilePath filename(test_data_directory_);
1049 filename = filename.AppendASCII("dom_automation_test_with_popup.html"); 1043 filename = filename.AppendASCII("dom_automation_test_with_popup.html");
1050 1044
1051 tab->NavigateToURL(net::FilePathToFileURL(filename)); 1045 tab->NavigateToURL(net::FilePathToFileURL(filename));
1052 1046
1053 // Allow some time for the popup to show up and close. 1047 // Allow some time for the popup to show up and close.
1054 PlatformThread::Sleep(2000); 1048 PlatformThread::Sleep(2000);
1055 1049
1056 std::wstring expected(L"string"); 1050 std::wstring expected(L"string");
1057 std::wstring jscript = CreateJSString(L"\"" + expected + L"\""); 1051 std::wstring jscript = CreateJSString(L"\"" + expected + L"\"");
1058 std::wstring actual; 1052 std::wstring actual;
1059 ASSERT_TRUE(tab->ExecuteAndExtractString(L"", jscript, &actual)); 1053 ASSERT_TRUE(tab->ExecuteAndExtractString(L"", jscript, &actual));
1060 ASSERT_EQ(expected, actual); 1054 ASSERT_EQ(expected, actual);
1061 } 1055 }
OLDNEW
« no previous file with comments | « chrome/test/automation/automation_proxy.cc ('k') | chrome/test/automation/browser_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698