diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-25 17:33:34 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-25 17:33:34 +0000 |
commit | 78962e2e1abcf55d0600dfaf437c6a0675fd77c7 (patch) | |
tree | 107a80f107395d374db57374527e8d88a56f2913 /chrome/browser/automation/testing_automation_provider_win.cc | |
parent | 909a42ef4998bcda783dabe019dbcdedd4b49a18 (diff) | |
download | chromium_src-78962e2e1abcf55d0600dfaf437c6a0675fd77c7.zip chromium_src-78962e2e1abcf55d0600dfaf437c6a0675fd77c7.tar.gz chromium_src-78962e2e1abcf55d0600dfaf437c6a0675fd77c7.tar.bz2 |
GTTF: Continue moving testing automation bits out of AutomationProvider.
TEST=ui_tests, chrome_frame_tests
BUG=52097
Review URL: http://codereview.chromium.org/3167038
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57344 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/testing_automation_provider_win.cc')
-rw-r--r-- | chrome/browser/automation/testing_automation_provider_win.cc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/chrome/browser/automation/testing_automation_provider_win.cc b/chrome/browser/automation/testing_automation_provider_win.cc index dcb8b1c..c48b372 100644 --- a/chrome/browser/automation/testing_automation_provider_win.cc +++ b/chrome/browser/automation/testing_automation_provider_win.cc @@ -6,7 +6,9 @@ #include <windows.h> +#include "chrome/browser/automation/automation_browser_tracker.h" #include "chrome/browser/automation/automation_window_tracker.h" +#include "chrome/browser/browser_window.h" void TestingAutomationProvider::ActivateWindow(int handle) { if (window_tracker_->ContainsHandle(handle)) { @@ -28,3 +30,51 @@ void TestingAutomationProvider::IsWindowMaximized(int handle, } } +void TestingAutomationProvider::TerminateSession(int handle, bool* success) { + *success = false; + + if (browser_tracker_->ContainsHandle(handle)) { + Browser* browser = browser_tracker_->GetResource(handle); + HWND window = browser->window()->GetNativeHandle(); + *success = (::PostMessageW(window, WM_ENDSESSION, 0, 0) == TRUE); + } +} + +void TestingAutomationProvider::GetWindowBounds(int handle, + gfx::Rect* bounds, + bool* success) { + *success = false; + HWND hwnd = window_tracker_->GetResource(handle); + if (hwnd) { + *success = true; + WINDOWPLACEMENT window_placement; + GetWindowPlacement(hwnd, &window_placement); + *bounds = window_placement.rcNormalPosition; + } +} + +void TestingAutomationProvider::SetWindowBounds(int handle, + const gfx::Rect& bounds, + bool* success) { + *success = false; + if (window_tracker_->ContainsHandle(handle)) { + HWND hwnd = window_tracker_->GetResource(handle); + if (::MoveWindow(hwnd, bounds.x(), bounds.y(), bounds.width(), + bounds.height(), true)) { + *success = true; + } + } +} + +void TestingAutomationProvider::SetWindowVisible(int handle, + bool visible, + bool* result) { + if (window_tracker_->ContainsHandle(handle)) { + HWND hwnd = window_tracker_->GetResource(handle); + ::ShowWindow(hwnd, visible ? SW_SHOW : SW_HIDE); + *result = true; + } else { + *result = false; + } +} + |