summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/testing_automation_provider_win.cc
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 17:33:34 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 17:33:34 +0000
commit78962e2e1abcf55d0600dfaf437c6a0675fd77c7 (patch)
tree107a80f107395d374db57374527e8d88a56f2913 /chrome/browser/automation/testing_automation_provider_win.cc
parent909a42ef4998bcda783dabe019dbcdedd4b49a18 (diff)
downloadchromium_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.cc50
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;
+ }
+}
+