diff options
author | erikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-28 13:47:13 +0000 |
---|---|---|
committer | erikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-28 13:47:13 +0000 |
commit | f5d1ea32ea7081621c692e03ae153f74bde105b3 (patch) | |
tree | 6f508b877d92d3d3dccab58dc49284434c5b9cd3 /chrome_frame/test/mock_ie_event_sink_actions.h | |
parent | 2014db003dcdc6e45aed7ba6d5e51819354ef66a (diff) | |
download | chromium_src-f5d1ea32ea7081621c692e03ae153f74bde105b3.zip chromium_src-f5d1ea32ea7081621c692e03ae153f74bde105b3.tar.gz chromium_src-f5d1ea32ea7081621c692e03ae153f74bde105b3.tar.bz2 |
This changelist consists of a test for the Delete Browsing History feature.
The feature was never covered by automated tests, and a recent changelist addressed a bug in the feature (http://codereview.chromium.org/3167040).
The test validates the following:
1) That cached files are re-retrieved after the user requests their deletion.
2) That saved form data is deleted after the user requests its deletion.
3) That Chrome Frame tabs do not crash when the user deletes browsing history.
BUG=56212
TEST= (1) Run "chrome_frame_tests.exe --gclient_filter=DeleteBro*" (should pass) (2) Run the test, and immediately lock your workstation before it starts. It should still pass. (3) Comment out the call to RemoveBrowsingData in DeleteChromeHistory::OnAutomationServerReady (chrome_frame/delete_chrome_history.cc) and run the test. It fails. (4) Revert changes from 3, comment out the check for low integrity level in DeleteChromeHistory::DeleteBrowsingHistory (same file) and run the test. It fails.
Review URL: http://codereview.chromium.org/3365010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60779 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/test/mock_ie_event_sink_actions.h')
-rw-r--r-- | chrome_frame/test/mock_ie_event_sink_actions.h | 67 |
1 files changed, 49 insertions, 18 deletions
diff --git a/chrome_frame/test/mock_ie_event_sink_actions.h b/chrome_frame/test/mock_ie_event_sink_actions.h index d6d8160..7c9b38b 100644 --- a/chrome_frame/test/mock_ie_event_sink_actions.h +++ b/chrome_frame/test/mock_ie_event_sink_actions.h @@ -6,6 +6,7 @@ #define CHROME_FRAME_TEST_MOCK_IE_EVENT_SINK_ACTIONS_H_ #include <windows.h> +#include <string> #include "base/basictypes.h" #include "base/platform_thread.h" @@ -126,28 +127,35 @@ ACTION_P2(AccSetValue, matcher, value) { } } +namespace { // NOLINT +template<typename R> R AccInWindow(testing::Action<R(HWND)> action, HWND hwnd) { + return action.Perform(typename testing::Action<R(HWND)>::ArgumentTuple(hwnd)); +} +} + +ACTION_P2(AccDoDefaultActionInBrowser, mock, matcher) { + AccInWindow<void>(AccDoDefaultAction(matcher), + mock->event_sink()->GetBrowserWindow()); +} + ACTION_P2(AccDoDefaultActionInRenderer, mock, matcher) { - HWND window = mock->event_sink()->GetRendererWindow(); - scoped_refptr<AccObject> object; - if (FindAccObjectInWindow(window, matcher, &object)) { - EXPECT_TRUE(object->DoDefaultAction()); - } + AccInWindow<void>(AccDoDefaultAction(matcher), + mock->event_sink()->GetRendererWindow()); } ACTION_P2(AccLeftClickInBrowser, mock, matcher) { - HWND window = mock->event_sink()->GetBrowserWindow(); - scoped_refptr<AccObject> object; - if (FindAccObjectInWindow(window, matcher, &object)) { - EXPECT_TRUE(object->LeftClick()); - } + AccInWindow<void>(AccLeftClick(matcher), + mock->event_sink()->GetBrowserWindow()); +} + +ACTION_P2(AccLeftClickInRenderer, mock, matcher) { + AccInWindow<void>(AccLeftClick(matcher), + mock->event_sink()->GetRendererWindow()); } ACTION_P3(AccSetValueInBrowser, mock, matcher, value) { - HWND window = mock->event_sink()->GetBrowserWindow(); - scoped_refptr<AccObject> object; - if (FindAccObjectInWindow(window, matcher, &object)) { - EXPECT_TRUE(object->SetValue(value)); - } + AccInWindow<void>(AccSetValue(matcher, value), + mock->event_sink()->GetBrowserWindow()); } ACTION_P2(AccWatchForOneValueChange, observer, matcher) { @@ -172,8 +180,8 @@ ACTION_P(PostCharMessage, character_code) { } ACTION_P2(PostCharMessageToRenderer, mock, character_code) { - HWND window = mock->event_sink()->GetRendererWindow(); - ::PostMessage(window, WM_CHAR, character_code, 0); + AccInWindow<void>(PostCharMessage(character_code), + mock->event_sink()->GetRendererWindow()); } ACTION_P2(PostCharMessagesToRenderer, mock, character_codes) { @@ -191,7 +199,21 @@ ACTION_P(StopWindowWatching, mock) { mock->StopWatching(); } -namespace { +ACTION_P(WatchWindowProcess, mock_observer) { + mock_observer->WatchProcessForHwnd(arg0); +} + +ACTION_P2(WatchBrowserProcess, mock_observer, mock) { + AccInWindow<void>(WatchWindowProcess(mock_observer), + mock->event_sink()->GetBrowserWindow()); +} + +ACTION_P2(WatchRendererProcess, mock_observer, mock) { + AccInWindow<void>(WatchWindowProcess(mock_observer), + mock->event_sink()->GetRendererWindow()); +} + +namespace { // NOLINT void DoCloseWindowNow(HWND hwnd) { ::PostMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0); @@ -218,6 +240,15 @@ ACTION(KillChromeFrameProcesses) { } // Verifying actions +ACTION_P(AccExpect, matcher) { + scoped_refptr<AccObject> object; + EXPECT_TRUE(FindAccObjectInWindow(arg0, matcher, &object)); +} + +ACTION_P2(AccExpectInRenderer, mock, matcher) { + AccInWindow<void>(AccExpect(matcher), + mock->event_sink()->GetRendererWindow()); +} ACTION_P(ExpectRendererHasFocus, mock) { mock->event_sink()->ExpectRendererWindowHasFocus(); |