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

Side by Side Diff: chrome_frame/test/ui_test.cc

Issue 7198017: Attempt to fix the following flaky ChromeFrame tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 months 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
« no previous file with comments | « no previous file | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <mshtmcid.h> 5 #include <mshtmcid.h>
6 #include <string> 6 #include <string>
7 7
8 #include "base/test/test_file_util.h" 8 #include "base/test/test_file_util.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "base/win/scoped_bstr.h" 10 #include "base/win/scoped_bstr.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 DelaySendScanCode(&loop_, 1000, bkspace, simulate_input::SHIFT))); 100 DelaySendScanCode(&loop_, 1000, bkspace, simulate_input::SHIFT)));
101 101
102 EXPECT_CALL(ie_mock_, OnLoad(in_cf, StrEq(page2))) 102 EXPECT_CALL(ie_mock_, OnLoad(in_cf, StrEq(page2)))
103 .WillOnce(CloseBrowserMock(&ie_mock_)); 103 .WillOnce(CloseBrowserMock(&ie_mock_));
104 104
105 LaunchIENavigateAndLoop(page1, 105 LaunchIENavigateAndLoop(page1,
106 kChromeFrameVeryLongNavigationTimeoutInSeconds); 106 kChromeFrameVeryLongNavigationTimeoutInSeconds);
107 } 107 }
108 108
109 // Tests new window behavior with ctrl+N. 109 // Tests new window behavior with ctrl+N.
110 // Flaky on Chrome Frame Tests (ie6), http://crbug.com/86251. 110 TEST_P(FullTabUITest, CtrlN) {
111 TEST_P(FullTabUITest, FLAKY_CtrlN) {
112 if (IsWorkstationLocked()) { 111 if (IsWorkstationLocked()) {
113 LOG(ERROR) << "This test cannot be run in a locked workstation."; 112 LOG(ERROR) << "This test cannot be run in a locked workstation.";
114 return; 113 return;
115 } 114 }
116 115
117 bool is_cf = GetParam().invokes_cf(); 116 bool is_cf = GetParam().invokes_cf();
118 if (!is_cf) { 117 if (!is_cf) {
119 LOG(ERROR) << "Test not implemented for this configuration."; 118 LOG(ERROR) << "Test not implemented for this configuration.";
120 return; 119 return;
121 } 120 }
122 // Ideally we want to use a ie_mock_ to watch for finer grained 121 // Ideally we want to use a ie_mock_ to watch for finer grained
123 // events for New Window, but for Crl+N we don't get any 122 // events for New Window, but for Crl+N we don't get any
124 // OnNewWindowX notifications. :( 123 // OnNewWindowX notifications. :(
125 MockWindowObserver win_observer_mock; 124 MockWindowObserver win_observer_mock;
126 125
127 const char* kNewWindowTitlePattern = "*Internet Explorer*"; 126 const char* kNewWindowTitlePattern = "*Internet Explorer*";
128 EXPECT_CALL(ie_mock_, OnLoad(is_cf, StrEq(GetSimplePageUrl()))) 127 EXPECT_CALL(ie_mock_, OnLoad(is_cf, StrEq(GetSimplePageUrl())))
129 .WillOnce(testing::DoAll( 128 .WillOnce(testing::DoAll(
130 WatchWindow(&win_observer_mock, kNewWindowTitlePattern, ""), 129 WatchWindow(&win_observer_mock, kNewWindowTitlePattern, ""),
131 SetFocusToRenderer(&ie_mock_), 130 SetFocusToRenderer(&ie_mock_),
132 DelaySendChar(&loop_, 1000, 'n', simulate_input::CONTROL))); 131 DelaySendChar(&loop_, 1000, 'n', simulate_input::CONTROL)));
133 132
134 // Watch for new window. It appears that the window close message cannot be 133 // Watch for new window. It appears that the window close message cannot be
135 // reliably delivered immediately upon receipt of the window open event. 134 // reliably delivered immediately upon receipt of the window open event.
136 EXPECT_CALL(win_observer_mock, OnWindowOpen(_)) 135 EXPECT_CALL(win_observer_mock, OnWindowOpen(_))
137 .Times(testing::AtMost(2)) 136 .Times(testing::AtMost(2))
138 .WillOnce(DelayDoCloseWindow(500))
139 .WillOnce(testing::Return());
140
141 EXPECT_CALL(win_observer_mock, OnWindowClose(_))
142 .Times(testing::AtMost(2))
143 .WillOnce(CloseBrowserMock(&ie_mock_)) 137 .WillOnce(CloseBrowserMock(&ie_mock_))
144 .WillOnce(testing::Return()); 138 .WillOnce(testing::Return());
145 139
146 LaunchIEAndNavigate(GetSimplePageUrl()); 140 EXPECT_CALL(win_observer_mock, OnWindowClose(_))
141 .Times(testing::AtMost(2));
142
143 LaunchIENavigateAndLoop(GetSimplePageUrl(),
144 kChromeFrameVeryLongNavigationTimeoutInSeconds);
147 } 145 }
148 146
149 // Test that Ctrl+F opens the Find dialog. 147 // Test that Ctrl+F opens the Find dialog.
150 TEST_P(FullTabUITest, CtrlF) { 148 TEST_P(FullTabUITest, CtrlF) {
151 if (IsWorkstationLocked()) { 149 if (IsWorkstationLocked()) {
152 LOG(ERROR) << "This test cannot be run in a locked workstation."; 150 LOG(ERROR) << "This test cannot be run in a locked workstation.";
153 return; 151 return;
154 } 152 }
155 153
156 bool is_cf = GetParam().invokes_cf(); 154 bool is_cf = GetParam().invokes_cf();
157 if (!is_cf) { 155 if (!is_cf) {
158 LOG(ERROR) << "Test not implemented for this configuration."; 156 LOG(ERROR) << "Test not implemented for this configuration.";
159 return; 157 return;
160 } 158 }
161 server_mock_.ExpectAndServeAnyRequests(CFInvocation::MetaTag()); 159 server_mock_.ExpectAndServeAnyRequests(CFInvocation::MetaTag());
162 MockWindowObserver win_observer_mock; 160 MockWindowObserver win_observer_mock;
163 InSequence expect_in_sequence_for_scope; 161 InSequence expect_in_sequence_for_scope;
164 162
165 const char* kFindDialogCaption = "Find"; 163 const char* kFindDialogCaption = "Find";
166 EXPECT_CALL(ie_mock_, OnLoad(IN_CF, StrEq(GetSimplePageUrl()))) 164 EXPECT_CALL(ie_mock_, OnLoad(IN_CF, StrEq(GetSimplePageUrl())))
167 .WillOnce(testing::DoAll( 165 .WillOnce(testing::DoAll(
168 WatchWindow(&win_observer_mock, kFindDialogCaption, ""), 166 WatchWindow(&win_observer_mock, kFindDialogCaption, ""),
169 SetFocusToRenderer(&ie_mock_), 167 SetFocusToRenderer(&ie_mock_),
170 DelaySendChar(&loop_, 1500, 'f', simulate_input::CONTROL))); 168 DelaySendChar(&loop_, 1500, 'f', simulate_input::CONTROL)));
171 169
172 // Watch for find dialog. It appears that the window close message cannot be
173 // reliably delivered immediately upon receipt of the window open event.
174 EXPECT_CALL(win_observer_mock, OnWindowOpen(_)) 170 EXPECT_CALL(win_observer_mock, OnWindowOpen(_))
175 .WillOnce(DelayDoCloseWindow(500));
176
177 EXPECT_CALL(win_observer_mock, OnWindowClose(_))
178 .WillOnce(CloseBrowserMock(&ie_mock_)); 171 .WillOnce(CloseBrowserMock(&ie_mock_));
179 172
180 LaunchIEAndNavigate(GetSimplePageUrl()); 173 LaunchIENavigateAndLoop(GetSimplePageUrl(),
174 kChromeFrameVeryLongNavigationTimeoutInSeconds);
181 } 175 }
182 176
183 // Test that ctrl+r does cause a refresh. 177 // Test that ctrl+r does cause a refresh.
184 // http://code.google.com/p/chromium/issues/detail?id=84297 178 TEST_P(FullTabUITest, CtrlR) {
185 TEST_P(FullTabUITest, FLAKY_CtrlR) {
186 if (IsWorkstationLocked()) { 179 if (IsWorkstationLocked()) {
187 LOG(ERROR) << "This test cannot be run in a locked workstation."; 180 LOG(ERROR) << "This test cannot be run in a locked workstation.";
188 return; 181 return;
189 } 182 }
190 183
191 EXPECT_CALL(server_mock_, Get(_, UrlPathEq(GetSimplePageUrl()), _)) 184 EXPECT_CALL(server_mock_, Get(_, UrlPathEq(GetSimplePageUrl()), _))
192 .Times(testing::AtMost(2)) 185 .Times(testing::AtMost(2))
193 .WillRepeatedly(SendResponse(&server_mock_, GetParam())); 186 .WillRepeatedly(SendResponse(&server_mock_, GetParam()));
194 187
195 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(), 188 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(),
196 StrEq(GetSimplePageUrl()))) 189 StrEq(GetSimplePageUrl())))
197 .Times(testing::AtMost(2)) 190 .Times(testing::AtMost(2))
198 .WillOnce(testing::DoAll( 191 .WillOnce(testing::DoAll(
199 SetFocusToRenderer(&ie_mock_), 192 SetFocusToRenderer(&ie_mock_),
200 DelaySendChar(&loop_, 1000, 'r', simulate_input::CONTROL), 193 DelaySendChar(&loop_, 1000, 'r', simulate_input::CONTROL),
201 DelayCloseBrowserMock(&loop_, 4000, &ie_mock_))) 194 DelayCloseBrowserMock(&loop_, 4000, &ie_mock_)))
202 .WillRepeatedly(testing::Return()); 195 .WillRepeatedly(testing::Return());
203 196
204 LaunchIEAndNavigate(GetSimplePageUrl()); 197 LaunchIENavigateAndLoop(GetSimplePageUrl(),
198 kChromeFrameVeryLongNavigationTimeoutInSeconds);
205 } 199 }
206 200
207 // Test window close with ctrl+w. 201 // Test window close with ctrl+w.
208 TEST_P(FullTabUITest, CtrlW) { 202 TEST_P(FullTabUITest, CtrlW) {
209 if (IsWorkstationLocked()) { 203 if (IsWorkstationLocked()) {
210 LOG(ERROR) << "This test cannot be run in a locked workstation."; 204 LOG(ERROR) << "This test cannot be run in a locked workstation.";
211 return; 205 return;
212 } 206 }
213 207
214 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(), 208 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(),
215 StrEq(GetSimplePageUrl()))) 209 StrEq(GetSimplePageUrl())))
216 .WillOnce(testing::DoAll( 210 .WillOnce(testing::DoAll(
217 SetFocusToRenderer(&ie_mock_), 211 SetFocusToRenderer(&ie_mock_),
218 DelaySendChar(&loop_, 1000, 'w', simulate_input::CONTROL))); 212 DelaySendChar(&loop_, 1000, 'w', simulate_input::CONTROL)));
219 213
220 LaunchIEAndNavigate(GetSimplePageUrl()); 214 LaunchIENavigateAndLoop(GetSimplePageUrl(),
215 kChromeFrameVeryLongNavigationTimeoutInSeconds);
221 } 216 }
222 217
223 // Test address bar navigation with Alt+d and URL. 218 // Test address bar navigation with Alt+d and URL.
224 // http://code.google.com/p/chromium/issues/detail?id=84297 219 TEST_P(FullTabUITest, AltD) {
225 TEST_P(FullTabUITest, FLAKY_AltD) {
226 if (IsWorkstationLocked()) { 220 if (IsWorkstationLocked()) {
227 LOG(ERROR) << "This test cannot be run in a locked workstation."; 221 LOG(ERROR) << "This test cannot be run in a locked workstation.";
228 return; 222 return;
229 } 223 }
230 224
231 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(), 225 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(),
232 StrEq(GetSimplePageUrl()))) 226 StrEq(GetSimplePageUrl())))
233 .WillOnce(testing::DoAll( 227 .WillOnce(testing::DoAll(
234 SetFocusToRenderer(&ie_mock_), 228 SetFocusToRenderer(&ie_mock_),
235 TypeUrlInAddressBar(&loop_, GetLinkPageUrl(), 1500))); 229 TypeUrlInAddressBar(&loop_, GetLinkPageUrl(), 1500)));
236 230
237 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(), 231 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(),
238 StrEq(GetLinkPageUrl()))) 232 StrEq(GetLinkPageUrl())))
239 .WillOnce(CloseBrowserMock(&ie_mock_)); 233 .WillOnce(CloseBrowserMock(&ie_mock_));
240 234
241 LaunchIEAndNavigate(GetSimplePageUrl()); 235 LaunchIENavigateAndLoop(GetSimplePageUrl(),
236 kChromeFrameVeryLongNavigationTimeoutInSeconds);
242 } 237 }
243 238
244 // Tests that the renderer has focus after navigation. 239 // Tests that the renderer has focus after navigation.
245 TEST_P(FullTabUITest, RendererHasFocus) { 240 TEST_P(FullTabUITest, RendererHasFocus) {
246 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(), 241 EXPECT_CALL(ie_mock_, OnLoad(GetParam().invokes_cf(),
247 StrEq(GetSimplePageUrl()))) 242 StrEq(GetSimplePageUrl())))
248 .WillOnce(testing::DoAll( 243 .WillOnce(testing::DoAll(
249 ExpectRendererHasFocus(&ie_mock_), 244 ExpectRendererHasFocus(&ie_mock_),
250 CloseBrowserMock(&ie_mock_))); 245 CloseBrowserMock(&ie_mock_)));
251 246
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 .WillOnce(AccLeftClick(AccObjectMatcher(L"Forward"))); 964 .WillOnce(AccLeftClick(AccObjectMatcher(L"Forward")));
970 965
971 EXPECT_CALL(ie_mock_, OnLoad(IN_CF, StrEq(page3))) 966 EXPECT_CALL(ie_mock_, OnLoad(IN_CF, StrEq(page3)))
972 .WillOnce(CloseBrowserMock(&ie_mock_)); 967 .WillOnce(CloseBrowserMock(&ie_mock_));
973 968
974 LaunchIENavigateAndLoop(page1, 969 LaunchIENavigateAndLoop(page1,
975 kChromeFrameVeryLongNavigationTimeoutInSeconds); 970 kChromeFrameVeryLongNavigationTimeoutInSeconds);
976 } 971 }
977 972
978 } // namespace chrome_frame_test 973 } // namespace chrome_frame_test
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698