| 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 #ifndef CHROME_TEST_UI_TEST_UTILS_H_ | 5 #ifndef CHROME_TEST_UI_TEST_UTILS_H_ |
| 6 #define CHROME_TEST_UI_TEST_UTILS_H_ | 6 #define CHROME_TEST_UI_TEST_UTILS_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <queue> | 10 #include <queue> |
| 11 #include <string> | 11 #include <string> |
| 12 #include <set> | 12 #include <set> |
| 13 | 13 |
| 14 #include "app/keyboard_codes.h" | |
| 15 #include "base/basictypes.h" | 14 #include "base/basictypes.h" |
| 16 #include "base/message_loop.h" | 15 #include "base/message_loop.h" |
| 17 #include "base/scoped_temp_dir.h" | 16 #include "base/scoped_temp_dir.h" |
| 18 #include "base/string16.h" | 17 #include "base/string16.h" |
| 19 #include "chrome/browser/ui/view_ids.h" | 18 #include "chrome/browser/ui/view_ids.h" |
| 20 #include "chrome/common/notification_observer.h" | 19 #include "chrome/common/notification_observer.h" |
| 21 #include "chrome/common/notification_registrar.h" | 20 #include "chrome/common/notification_registrar.h" |
| 22 #include "chrome/common/notification_service.h" | 21 #include "chrome/common/notification_service.h" |
| 23 #include "chrome/common/notification_source.h" | 22 #include "chrome/common/notification_source.h" |
| 24 #include "chrome/test/automation/dom_element_proxy.h" | 23 #include "chrome/test/automation/dom_element_proxy.h" |
| 25 #include "gfx/native_widget_types.h" | 24 #include "gfx/native_widget_types.h" |
| 26 #include "testing/gtest/include/gtest/gtest.h" | 25 #include "testing/gtest/include/gtest/gtest.h" |
| 26 #include "ui/base/keycodes/keyboard_codes.h" |
| 27 #include "webkit/glue/window_open_disposition.h" | 27 #include "webkit/glue/window_open_disposition.h" |
| 28 | 28 |
| 29 class AppModalDialog; | 29 class AppModalDialog; |
| 30 class BookmarkModel; | 30 class BookmarkModel; |
| 31 class BookmarkNode; | 31 class BookmarkNode; |
| 32 class Browser; | 32 class Browser; |
| 33 class CommandLine; | 33 class CommandLine; |
| 34 class DownloadManager; | 34 class DownloadManager; |
| 35 class ExtensionAction; | 35 class ExtensionAction; |
| 36 class FilePath; | 36 class FilePath; |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 // success. | 250 // success. |
| 251 bool BringBrowserWindowToFront(const Browser* browser) WARN_UNUSED_RESULT; | 251 bool BringBrowserWindowToFront(const Browser* browser) WARN_UNUSED_RESULT; |
| 252 | 252 |
| 253 // Gets the first browser that is not in the specified set. | 253 // Gets the first browser that is not in the specified set. |
| 254 Browser* GetBrowserNotInSet(std::set<Browser*> excluded_browsers); | 254 Browser* GetBrowserNotInSet(std::set<Browser*> excluded_browsers); |
| 255 | 255 |
| 256 // Sends a key press, blocking until the key press is received or the test times | 256 // Sends a key press, blocking until the key press is received or the test times |
| 257 // out. This uses ui_controls::SendKeyPress, see it for details. Returns true | 257 // out. This uses ui_controls::SendKeyPress, see it for details. Returns true |
| 258 // if the event was successfully sent and received. | 258 // if the event was successfully sent and received. |
| 259 bool SendKeyPressSync(const Browser* browser, | 259 bool SendKeyPressSync(const Browser* browser, |
| 260 app::KeyboardCode key, | 260 ui::KeyboardCode key, |
| 261 bool control, | 261 bool control, |
| 262 bool shift, | 262 bool shift, |
| 263 bool alt, | 263 bool alt, |
| 264 bool command) WARN_UNUSED_RESULT; | 264 bool command) WARN_UNUSED_RESULT; |
| 265 | 265 |
| 266 // Sends a key press, blocking until both the key press and a notification from | 266 // Sends a key press, blocking until both the key press and a notification from |
| 267 // |source| of type |type| are received, or until the test times out. This uses | 267 // |source| of type |type| are received, or until the test times out. This uses |
| 268 // ui_controls::SendKeyPress, see it for details. Returns true if the event was | 268 // ui_controls::SendKeyPress, see it for details. Returns true if the event was |
| 269 // successfully sent and both the event and notification were received. | 269 // successfully sent and both the event and notification were received. |
| 270 bool SendKeyPressAndWait(const Browser* browser, | 270 bool SendKeyPressAndWait(const Browser* browser, |
| 271 app::KeyboardCode key, | 271 ui::KeyboardCode key, |
| 272 bool control, | 272 bool control, |
| 273 bool shift, | 273 bool shift, |
| 274 bool alt, | 274 bool alt, |
| 275 bool command, | 275 bool command, |
| 276 NotificationType type, | 276 NotificationType type, |
| 277 const NotificationSource& source) WARN_UNUSED_RESULT; | 277 const NotificationSource& source) WARN_UNUSED_RESULT; |
| 278 | 278 |
| 279 // Run a message loop only for the specified amount of time. | 279 // Run a message loop only for the specified amount of time. |
| 280 class TimedMessageLoopRunner { | 280 class TimedMessageLoopRunner { |
| 281 public: | 281 public: |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 467 std::map<uintptr_t, U> details_; | 467 std::map<uintptr_t, U> details_; |
| 468 | 468 |
| 469 DISALLOW_COPY_AND_ASSIGN(WindowedNotificationObserverWithDetails); | 469 DISALLOW_COPY_AND_ASSIGN(WindowedNotificationObserverWithDetails); |
| 470 }; | 470 }; |
| 471 | 471 |
| 472 // See SendKeyPressAndWait. This function additionally performs a check on the | 472 // See SendKeyPressAndWait. This function additionally performs a check on the |
| 473 // NotificationDetails using the provided Details<U>. | 473 // NotificationDetails using the provided Details<U>. |
| 474 template <class U> | 474 template <class U> |
| 475 bool SendKeyPressAndWaitWithDetails( | 475 bool SendKeyPressAndWaitWithDetails( |
| 476 const Browser* browser, | 476 const Browser* browser, |
| 477 app::KeyboardCode key, | 477 ui::KeyboardCode key, |
| 478 bool control, | 478 bool control, |
| 479 bool shift, | 479 bool shift, |
| 480 bool alt, | 480 bool alt, |
| 481 bool command, | 481 bool command, |
| 482 NotificationType type, | 482 NotificationType type, |
| 483 const NotificationSource& source, | 483 const NotificationSource& source, |
| 484 const Details<U>& details) WARN_UNUSED_RESULT; | 484 const Details<U>& details) WARN_UNUSED_RESULT; |
| 485 | 485 |
| 486 template <class U> | 486 template <class U> |
| 487 bool SendKeyPressAndWaitWithDetails( | 487 bool SendKeyPressAndWaitWithDetails( |
| 488 const Browser* browser, | 488 const Browser* browser, |
| 489 app::KeyboardCode key, | 489 ui::KeyboardCode key, |
| 490 bool control, | 490 bool control, |
| 491 bool shift, | 491 bool shift, |
| 492 bool alt, | 492 bool alt, |
| 493 bool command, | 493 bool command, |
| 494 NotificationType type, | 494 NotificationType type, |
| 495 const NotificationSource& source, | 495 const NotificationSource& source, |
| 496 const Details<U>& details) { | 496 const Details<U>& details) { |
| 497 WindowedNotificationObserverWithDetails<U> observer(type, source); | 497 WindowedNotificationObserverWithDetails<U> observer(type, source); |
| 498 | 498 |
| 499 if (!SendKeyPressSync(browser, key, control, shift, alt, command)) | 499 if (!SendKeyPressSync(browser, key, control, shift, alt, command)) |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 | 548 |
| 549 // Takes a snapshot of the entire page, according to the width and height | 549 // Takes a snapshot of the entire page, according to the width and height |
| 550 // properties of the DOM's document. Returns true on success. DOMAutomation | 550 // properties of the DOM's document. Returns true on success. DOMAutomation |
| 551 // must be enabled. | 551 // must be enabled. |
| 552 bool TakeEntirePageSnapshot(RenderViewHost* rvh, | 552 bool TakeEntirePageSnapshot(RenderViewHost* rvh, |
| 553 SkBitmap* bitmap) WARN_UNUSED_RESULT; | 553 SkBitmap* bitmap) WARN_UNUSED_RESULT; |
| 554 | 554 |
| 555 } // namespace ui_test_utils | 555 } // namespace ui_test_utils |
| 556 | 556 |
| 557 #endif // CHROME_TEST_UI_TEST_UTILS_H_ | 557 #endif // CHROME_TEST_UI_TEST_UTILS_H_ |
| OLD | NEW |