OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "base/scoped_ptr.h" | 5 #include "base/scoped_ptr.h" |
6 #include "base/string_number_conversions.h" | 6 #include "base/string_number_conversions.h" |
7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
9 #include "chrome/test/automation/extension_proxy.h" | 9 #include "chrome/test/automation/extension_proxy.h" |
10 #include "chrome/test/automation/tab_proxy.h" | 10 #include "chrome/test/automation/tab_proxy.h" |
11 #include "chrome/test/pyautolib/pyautolib.h" | 11 #include "chrome/test/pyautolib/pyautolib.h" |
12 #include "googleurl/src/gurl.h" | 12 #include "googleurl/src/gurl.h" |
13 | 13 |
14 static int64 StringToId(const std::wstring& str) { | 14 static int64 StringToId(const string16& str) { |
15 int64 id; | 15 int64 id; |
16 base::StringToInt64(WideToUTF8(str), &id); | 16 base::StringToInt64(str, &id); |
17 return id; | 17 return id; |
18 } | 18 } |
19 | 19 |
20 // PyUITestSuiteBase | 20 // PyUITestSuiteBase |
21 PyUITestSuiteBase::PyUITestSuiteBase(int argc, char** argv) | 21 PyUITestSuiteBase::PyUITestSuiteBase(int argc, char** argv) |
22 : UITestSuite(argc, argv) { | 22 : UITestSuite(argc, argv) { |
23 } | 23 } |
24 | 24 |
25 PyUITestSuiteBase::~PyUITestSuiteBase() { | 25 PyUITestSuiteBase::~PyUITestSuiteBase() { |
26 pool_.Recycle(); | 26 pool_.Recycle(); |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 automation()->GetBrowserWindow(0); // Window doesn't matter. | 234 automation()->GetBrowserWindow(0); // Window doesn't matter. |
235 EXPECT_TRUE(browser_proxy.get()); | 235 EXPECT_TRUE(browser_proxy.get()); |
236 if (!browser_proxy.get()) | 236 if (!browser_proxy.get()) |
237 return false; | 237 return false; |
238 | 238 |
239 std::string s; | 239 std::string s; |
240 EXPECT_TRUE(browser_proxy->GetBookmarksAsJSON(&s)); | 240 EXPECT_TRUE(browser_proxy->GetBookmarksAsJSON(&s)); |
241 return s; | 241 return s; |
242 } | 242 } |
243 | 243 |
244 bool PyUITestBase::AddBookmarkGroup(std::wstring& parent_id, int index, | 244 bool PyUITestBase::AddBookmarkGroup(const string16& parent_id, int index, |
245 std::wstring& title) { | 245 const string16& title) { |
246 scoped_refptr<BrowserProxy> browser_proxy = | 246 scoped_refptr<BrowserProxy> browser_proxy = |
247 automation()->GetBrowserWindow(0); // Window doesn't matter. | 247 automation()->GetBrowserWindow(0); // Window doesn't matter. |
248 EXPECT_TRUE(browser_proxy.get()); | 248 EXPECT_TRUE(browser_proxy.get()); |
249 if (!browser_proxy.get()) | 249 if (!browser_proxy.get()) |
250 return false; | 250 return false; |
251 | 251 |
252 return browser_proxy->AddBookmarkGroup(StringToId(parent_id), index, title); | 252 return browser_proxy->AddBookmarkGroup(StringToId(parent_id), |
| 253 index, |
| 254 title); |
253 } | 255 } |
254 | 256 |
255 bool PyUITestBase::AddBookmarkURL(std::wstring& parent_id, int index, | 257 bool PyUITestBase::AddBookmarkURL(const string16& parent_id, int index, |
256 std::wstring& title, std::wstring& url) { | 258 const string16& title, |
| 259 const string16& url) { |
257 scoped_refptr<BrowserProxy> browser_proxy = | 260 scoped_refptr<BrowserProxy> browser_proxy = |
258 automation()->GetBrowserWindow(0); // Window doesn't matter. | 261 automation()->GetBrowserWindow(0); // Window doesn't matter. |
259 EXPECT_TRUE(browser_proxy.get()); | 262 EXPECT_TRUE(browser_proxy.get()); |
260 if (!browser_proxy.get()) | 263 if (!browser_proxy.get()) |
261 return false; | 264 return false; |
262 | 265 |
263 return browser_proxy->AddBookmarkURL(StringToId(parent_id), | 266 return browser_proxy->AddBookmarkURL(StringToId(parent_id), |
264 index, title, | 267 index, |
265 GURL(WideToUTF8(url))); | 268 title, |
| 269 GURL(UTF16ToUTF8(url))); |
266 } | 270 } |
267 | 271 |
268 bool PyUITestBase::ReparentBookmark( | 272 bool PyUITestBase::ReparentBookmark( |
269 std::wstring& id, std::wstring& new_parent_id, int index) { | 273 const string16& id, const string16& new_parent_id, int index) { |
270 scoped_refptr<BrowserProxy> browser_proxy = | 274 scoped_refptr<BrowserProxy> browser_proxy = |
271 automation()->GetBrowserWindow(0); // Window doesn't matter. | 275 automation()->GetBrowserWindow(0); // Window doesn't matter. |
272 EXPECT_TRUE(browser_proxy.get()); | 276 EXPECT_TRUE(browser_proxy.get()); |
273 if (!browser_proxy.get()) | 277 if (!browser_proxy.get()) |
274 return false; | 278 return false; |
275 | 279 |
276 return browser_proxy->ReparentBookmark(StringToId(id), | 280 return browser_proxy->ReparentBookmark(StringToId(id), |
277 StringToId(new_parent_id), | 281 StringToId(new_parent_id), |
278 index); | 282 index); |
279 } | 283 } |
280 | 284 |
281 bool PyUITestBase::SetBookmarkTitle(std::wstring& id, std::wstring& title) { | 285 bool PyUITestBase::SetBookmarkTitle(const string16& id, const string16& title) { |
282 scoped_refptr<BrowserProxy> browser_proxy = | 286 scoped_refptr<BrowserProxy> browser_proxy = |
283 automation()->GetBrowserWindow(0); // Window doesn't matter. | 287 automation()->GetBrowserWindow(0); // Window doesn't matter. |
284 EXPECT_TRUE(browser_proxy.get()); | 288 EXPECT_TRUE(browser_proxy.get()); |
285 if (!browser_proxy.get()) | 289 if (!browser_proxy.get()) |
286 return false; | 290 return false; |
287 | 291 |
288 return browser_proxy->SetBookmarkTitle(StringToId(id), title); | 292 return browser_proxy->SetBookmarkTitle(StringToId(id), title); |
289 } | 293 } |
290 | 294 |
291 bool PyUITestBase::SetBookmarkURL(std::wstring& id, std::wstring& url) { | 295 bool PyUITestBase::SetBookmarkURL(const string16& id, const string16& url) { |
292 scoped_refptr<BrowserProxy> browser_proxy = | 296 scoped_refptr<BrowserProxy> browser_proxy = |
293 automation()->GetBrowserWindow(0); // Window doesn't matter. | 297 automation()->GetBrowserWindow(0); // Window doesn't matter. |
294 EXPECT_TRUE(browser_proxy.get()); | 298 EXPECT_TRUE(browser_proxy.get()); |
295 if (!browser_proxy.get()) | 299 if (!browser_proxy.get()) |
296 return false; | 300 return false; |
297 | 301 |
298 return browser_proxy->SetBookmarkURL(StringToId(id), GURL(WideToUTF8(url))); | 302 return browser_proxy->SetBookmarkURL(StringToId(id), GURL(UTF16ToUTF8(url))); |
299 } | 303 } |
300 | 304 |
301 bool PyUITestBase::RemoveBookmark(std::wstring& id) { | 305 bool PyUITestBase::RemoveBookmark(const string16& id) { |
302 scoped_refptr<BrowserProxy> browser_proxy = | 306 scoped_refptr<BrowserProxy> browser_proxy = |
303 automation()->GetBrowserWindow(0); // Window doesn't matter. | 307 automation()->GetBrowserWindow(0); // Window doesn't matter. |
304 EXPECT_TRUE(browser_proxy.get()); | 308 EXPECT_TRUE(browser_proxy.get()); |
305 if (!browser_proxy.get()) | 309 if (!browser_proxy.get()) |
306 return false; | 310 return false; |
307 | 311 |
308 return browser_proxy->RemoveBookmark(StringToId(id)); | 312 return browser_proxy->RemoveBookmark(StringToId(id)); |
309 } | 313 } |
310 | 314 |
311 scoped_refptr<BrowserProxy> PyUITestBase::GetBrowserWindow(int window_index) { | 315 scoped_refptr<BrowserProxy> PyUITestBase::GetBrowserWindow(int window_index) { |
(...skipping 12 matching lines...) Expand all Loading... |
324 return response; | 328 return response; |
325 } | 329 } |
326 | 330 |
327 std::wstring PyUITestBase::ExecuteJavascript(const std::wstring& script, | 331 std::wstring PyUITestBase::ExecuteJavascript(const std::wstring& script, |
328 int window_index, | 332 int window_index, |
329 int tab_index, | 333 int tab_index, |
330 const std::wstring& frame_xpath) { | 334 const std::wstring& frame_xpath) { |
331 scoped_refptr<BrowserProxy> browser_proxy = | 335 scoped_refptr<BrowserProxy> browser_proxy = |
332 automation()->GetBrowserWindow(window_index); | 336 automation()->GetBrowserWindow(window_index); |
333 EXPECT_TRUE(browser_proxy.get()); | 337 EXPECT_TRUE(browser_proxy.get()); |
334 std::wstring response; | |
335 if (!browser_proxy.get()) | 338 if (!browser_proxy.get()) |
336 return response; | 339 return std::wstring(); |
337 scoped_refptr<TabProxy> tab_proxy = | 340 scoped_refptr<TabProxy> tab_proxy = |
338 browser_proxy->GetTab(tab_index); | 341 browser_proxy->GetTab(tab_index); |
339 EXPECT_TRUE(tab_proxy.get()); | 342 EXPECT_TRUE(tab_proxy.get()); |
340 if (!tab_proxy.get()) | 343 if (!tab_proxy.get()) |
341 return response; | 344 return std::wstring(); |
342 | 345 |
343 EXPECT_TRUE(tab_proxy->ExecuteAndExtractString(frame_xpath, script, | 346 string16 response; |
| 347 EXPECT_TRUE(tab_proxy->ExecuteAndExtractString(WideToUTF16Hack(frame_xpath), |
| 348 WideToUTF16Hack(script), |
344 &response)); | 349 &response)); |
345 return response; | 350 return UTF16ToWideHack(response); |
346 } | 351 } |
347 | 352 |
348 std::wstring PyUITestBase::GetDOMValue(const std::wstring& expr, | 353 std::wstring PyUITestBase::GetDOMValue(const std::wstring& expr, |
349 int window_index, | 354 int window_index, |
350 int tab_index, | 355 int tab_index, |
351 const std::wstring& frame_xpath) { | 356 const std::wstring& frame_xpath) { |
352 std::wstring script = std::wstring(L"window.domAutomationController.send(") + | 357 std::wstring script = std::wstring(L"window.domAutomationController.send(") + |
353 expr + std::wstring(L")"); | 358 expr + std::wstring(L")"); |
354 return ExecuteJavascript(script, window_index, tab_index, frame_xpath); | 359 return ExecuteJavascript(script, window_index, tab_index, frame_xpath); |
355 } | 360 } |
(...skipping 26 matching lines...) Expand all Loading... |
382 // TODO(phadjan.jr): figure out a way to unambiguously report error. | 387 // TODO(phadjan.jr): figure out a way to unambiguously report error. |
383 if (!browser_proxy.get()) | 388 if (!browser_proxy.get()) |
384 return cookie_val; | 389 return cookie_val; |
385 scoped_refptr<TabProxy> tab_proxy = browser_proxy->GetTab(tab_index); | 390 scoped_refptr<TabProxy> tab_proxy = browser_proxy->GetTab(tab_index); |
386 EXPECT_TRUE(tab_proxy.get()); | 391 EXPECT_TRUE(tab_proxy.get()); |
387 if (!tab_proxy.get()) | 392 if (!tab_proxy.get()) |
388 return cookie_val; | 393 return cookie_val; |
389 EXPECT_TRUE(tab_proxy->GetCookies(cookie_url, &cookie_val)); | 394 EXPECT_TRUE(tab_proxy->GetCookies(cookie_url, &cookie_val)); |
390 return cookie_val; | 395 return cookie_val; |
391 } | 396 } |
OLD | NEW |