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

Side by Side Diff: chrome/test/ui_test_utils.cc

Issue 5610006: Converted download UI tests to Browser tests. (Closed) Base URL: http://git.chromium.org/git/chromium.git@browser_tests
Patch Set: Cleaned up code. Fixed failing tests. Created 10 years 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
« chrome/test/ui_test_utils.h ('K') | « chrome/test/ui_test_utils.h ('k') | no next file » | 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) 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 "chrome/test/ui_test_utils.h" 5 #include "chrome/test/ui_test_utils.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 400
401 void WaitForNavigation(NavigationController* controller) { 401 void WaitForNavigation(NavigationController* controller) {
402 WaitForNavigations(controller, 1); 402 WaitForNavigations(controller, 1);
403 } 403 }
404 404
405 void WaitForNavigations(NavigationController* controller, 405 void WaitForNavigations(NavigationController* controller,
406 int number_of_navigations) { 406 int number_of_navigations) {
407 NavigationNotificationObserver observer(controller, number_of_navigations); 407 NavigationNotificationObserver observer(controller, number_of_navigations);
408 } 408 }
409 409
410 void WaitForWindowClosed(Browser* browser) {
411 TestNotificationObserver observer;
412 RegisterAndWait(&observer,
413 NotificationType::BROWSER_CLOSED,
414 Source<Browser>(browser));
415 }
416
417 Browser* WaitForAnyNewTab() {
418 TestNotificationObserver observer;
419 RegisterAndWait(&observer,
420 NotificationType::TAB_ADDED,
421 NotificationService::AllSources());
422 return Source<Browser>(observer.source()).ptr();
423 }
424
410 void WaitForNewTab(Browser* browser) { 425 void WaitForNewTab(Browser* browser) {
411 TestNotificationObserver observer; 426 TestNotificationObserver observer;
412 RegisterAndWait(&observer, NotificationType::TAB_ADDED, 427 RegisterAndWait(&observer, NotificationType::TAB_ADDED,
413 Source<Browser>(browser)); 428 Source<Browser>(browser));
414 } 429 }
415 430
416 void WaitForBrowserActionUpdated(ExtensionAction* browser_action) { 431 void WaitForBrowserActionUpdated(ExtensionAction* browser_action) {
417 TestNotificationObserver observer; 432 TestNotificationObserver observer;
418 RegisterAndWait(&observer, NotificationType::EXTENSION_BROWSER_ACTION_UPDATED, 433 RegisterAndWait(&observer, NotificationType::EXTENSION_BROWSER_ACTION_UPDATED,
419 Source<ExtensionAction>(browser_action)); 434 Source<ExtensionAction>(browser_action));
420 } 435 }
421 436
422 void WaitForLoadStop(NavigationController* controller) { 437 void WaitForLoadStop(NavigationController* controller) {
423 TestNotificationObserver observer; 438 TestNotificationObserver observer;
424 RegisterAndWait(&observer, NotificationType::LOAD_STOP, 439 RegisterAndWait(&observer, NotificationType::LOAD_STOP,
425 Source<NavigationController>(controller)); 440 Source<NavigationController>(controller));
426 } 441 }
427 442
428 Browser* WaitForNewBrowser() { 443 Browser* WaitForNewBrowser() {
429 TestNotificationObserver observer; 444 TestNotificationObserver observer;
430 RegisterAndWait(&observer, NotificationType::BROWSER_WINDOW_READY, 445 RegisterAndWait(&observer, NotificationType::BROWSER_WINDOW_READY,
431 NotificationService::AllSources()); 446 NotificationService::AllSources());
432 return Source<Browser>(observer.source()).ptr(); 447 Browser* new_browser = Source<Browser>(observer.source()).ptr();
448 return new_browser;
449 }
450
451 Browser* WaitForNewBrowserWithCount(size_t start_count) {
452 TestNotificationObserver observer;
453 size_t cur_count = BrowserList::size();
454 Browser* new_browser = NULL;
455 if (cur_count <= start_count) {
456 new_browser = WaitForNewBrowser();
457 } else {
458 int index = start_count;
459 new_browser = GetBrowser(index);
460 }
461 return new_browser;
433 } 462 }
434 463
435 void OpenURLOffTheRecord(Profile* profile, const GURL& url) { 464 void OpenURLOffTheRecord(Profile* profile, const GURL& url) {
436 Browser::OpenURLOffTheRecord(profile, url); 465 Browser::OpenURLOffTheRecord(profile, url);
437 Browser* browser = BrowserList::FindBrowserWithType( 466 Browser* browser = BrowserList::FindBrowserWithType(
438 profile->GetOffTheRecordProfile(), Browser::TYPE_NORMAL, false); 467 profile->GetOffTheRecordProfile(), Browser::TYPE_NORMAL, false);
439 WaitForNavigations(&browser->GetSelectedTabContents()->controller(), 1); 468 WaitForNavigations(&browser->GetSelectedTabContents()->controller(), 1);
440 } 469 }
441 470
442 void NavigateToURL(Browser* browser, const GURL& url) { 471 void NavigateToURL(Browser* browser, const GURL& url) {
443 NavigateToURLBlockUntilNavigationsComplete(browser, url, 1); 472 NavigateToURLWithDisposition(browser, url, CURRENT_TAB,
473 BROWSER_TEST_WAIT_FOR_NAVIGATION);
474 }
475
476 void NavigateToURLWithDisposition(Browser* browser,
477 const GURL& url,
478 WindowOpenDisposition disposition,
479 int browser_test_flags) {
480 NavigateToURLWithDispositionBlockUntilNavigationsComplete(
481 browser,
482 url,
483 1,
484 disposition,
485 browser_test_flags);
444 } 486 }
445 487
446 void NavigateToURLBlockUntilNavigationsComplete(Browser* browser, 488 void NavigateToURLBlockUntilNavigationsComplete(Browser* browser,
447 const GURL& url, 489 const GURL& url,
448 int number_of_navigations) { 490 int number_of_navigations) {
449 NavigationController* controller = 491 NavigateToURLWithDispositionBlockUntilNavigationsComplete(
450 &browser->GetSelectedTabContents()->controller(); 492 browser,
451 browser->OpenURL(url, GURL(), CURRENT_TAB, PageTransition::TYPED); 493 url,
452 WaitForNavigations(controller, number_of_navigations); 494 number_of_navigations,
495 CURRENT_TAB,
496 BROWSER_TEST_WAIT_FOR_NAVIGATION);
497 }
498
499 void NavigateToURLWithDispositionBlockUntilNavigationsComplete(
500 Browser* browser,
501 const GURL& url,
502 int number_of_navigations,
503 WindowOpenDisposition disposition,
504 int browser_test_flags) {
505 size_t browser_count = BrowserList::size();
506 browser->OpenURL(url, GURL(), disposition, PageTransition::TYPED);
507 if (browser_test_flags & BROWSER_TEST_WAIT_FOR_BROWSER)
508 browser = WaitForNewBrowserWithCount(browser_count);
Randy Smith (Not in Mondays) 2010/12/13 21:44:58 It's a judgment call, but I think reassigning brow
509 if (browser_test_flags & BROWSER_TEST_WAIT_FOR_TAB)
510 WaitForAnyNewTab();
511 if (!(browser_test_flags & BROWSER_TEST_WAIT_FOR_NAVIGATION))
512 return;
513 TabContents* tab_contents = NULL;
514 if (disposition == NEW_BACKGROUND_TAB) {
515 // We've opened up a new tab, but not selected it.
516 tab_contents = browser->GetTabContentsAt(browser->selected_index() + 1);
517 EXPECT_TRUE(tab_contents != NULL)
518 << " Unable to wait for navigation to \"" << url.spec()
519 << "\" because the new tab is not available yet";
520 return;
521 } else if ((disposition == CURRENT_TAB) ||
522 (disposition == NEW_FOREGROUND_TAB) ||
523 (disposition == SINGLETON_TAB)) {
524 // The currently selected tab is the right one.
525 tab_contents = browser->GetSelectedTabContents();
526 }
527 if (tab_contents) {
528 NavigationController* controller = &tab_contents->controller();
529 WaitForNavigations(controller, number_of_navigations);
530 return;
531 }
532 EXPECT_TRUE(NULL != tab_contents) << " Unable to wait for navigation to \""
533 << url.spec() << "\""
534 << " because we can't get the tab contents";
453 } 535 }
454 536
455 DOMElementProxyRef GetActiveDOMDocument(Browser* browser) { 537 DOMElementProxyRef GetActiveDOMDocument(Browser* browser) {
456 JavaScriptExecutionController* executor = 538 JavaScriptExecutionController* executor =
457 new InProcessJavaScriptExecutionController( 539 new InProcessJavaScriptExecutionController(
458 browser->GetSelectedTabContents()->render_view_host()); 540 browser->GetSelectedTabContents()->render_view_host());
459 int element_handle; 541 int element_handle;
460 executor->ExecuteJavaScriptAndGetReturn("document;", &element_handle); 542 executor->ExecuteJavaScriptAndGetReturn("document;", &element_handle);
461 return executor->GetObjectProxy<DOMElementProxy>(element_handle); 543 return executor->GetObjectProxy<DOMElementProxy>(element_handle);
462 } 544 }
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 681
600 bool BringBrowserWindowToFront(const Browser* browser) { 682 bool BringBrowserWindowToFront(const Browser* browser) {
601 gfx::NativeWindow window = NULL; 683 gfx::NativeWindow window = NULL;
602 if (!GetNativeWindow(browser, &window)) 684 if (!GetNativeWindow(browser, &window))
603 return false; 685 return false;
604 686
605 ui_test_utils::ShowAndFocusNativeWindow(window); 687 ui_test_utils::ShowAndFocusNativeWindow(window);
606 return true; 688 return true;
607 } 689 }
608 690
691 Browser* GetBrowser(int index) {
692 if (index >= 0) {
693 BrowserList::const_iterator iter = BrowserList::begin();
694 for ( ; (iter != BrowserList::end()) && (index > 0); ++iter, --index) {}
695 if (iter != BrowserList::end()) {
696 return *iter;
697 }
698 }
699 return NULL;
700 }
701
609 bool SendKeyPressSync(const Browser* browser, 702 bool SendKeyPressSync(const Browser* browser,
610 app::KeyboardCode key, 703 app::KeyboardCode key,
611 bool control, 704 bool control,
612 bool shift, 705 bool shift,
613 bool alt, 706 bool alt,
614 bool command) { 707 bool command) {
615 base::TimeTicks start_time = base::TimeTicks::Now(); 708 base::TimeTicks start_time = base::TimeTicks::Now();
616 709
617 gfx::NativeWindow window = NULL; 710 gfx::NativeWindow window = NULL;
618 if (!GetNativeWindow(browser, &window)) 711 if (!GetNativeWindow(browser, &window))
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 return taker.TakeRenderWidgetSnapshot(rwh, page_size, page_size, bitmap); 1005 return taker.TakeRenderWidgetSnapshot(rwh, page_size, page_size, bitmap);
913 } 1006 }
914 1007
915 bool TakeEntirePageSnapshot(RenderViewHost* rvh, SkBitmap* bitmap) { 1008 bool TakeEntirePageSnapshot(RenderViewHost* rvh, SkBitmap* bitmap) {
916 DCHECK(bitmap); 1009 DCHECK(bitmap);
917 SnapshotTaker taker; 1010 SnapshotTaker taker;
918 return taker.TakeEntirePageSnapshot(rvh, bitmap); 1011 return taker.TakeEntirePageSnapshot(rvh, bitmap);
919 } 1012 }
920 1013
921 } // namespace ui_test_utils 1014 } // namespace ui_test_utils
OLDNEW
« chrome/test/ui_test_utils.h ('K') | « chrome/test/ui_test_utils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698