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

Side by Side Diff: ios/chrome/browser/web/progress_indicator_egtest.mm

Issue 2798773002: Create ChromeEarlGrey waitForWebViewContainingText. (Closed)
Patch Set: review comments Created 3 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #import <EarlGrey/EarlGrey.h> 5 #import <EarlGrey/EarlGrey.h>
6 6
7 #include "base/mac/foundation_util.h" 7 #include "base/mac/foundation_util.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 const GURL infinitePendingURL = 145 const GURL infinitePendingURL =
146 web::test::HttpServer::MakeUrl(kInfinitePendingPageURL); 146 web::test::HttpServer::MakeUrl(kInfinitePendingPageURL);
147 web::test::SetUpHttpServer( 147 web::test::SetUpHttpServer(
148 base::MakeUnique<InfinitePendingResponseProvider>(infinitePendingURL)); 148 base::MakeUnique<InfinitePendingResponseProvider>(infinitePendingURL));
149 149
150 // The page being loaded never completes, so call the LoadUrl helper that 150 // The page being loaded never completes, so call the LoadUrl helper that
151 // does not wait for the page to complete loading. 151 // does not wait for the page to complete loading.
152 chrome_test_util::LoadUrl(infinitePendingURL); 152 chrome_test_util::LoadUrl(infinitePendingURL);
153 153
154 // Wait until the page is half loaded. 154 // Wait until the page is half loaded.
155 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kPageText)] 155 [ChromeEarlGrey waitForWebViewContainingText:kPageText];
156 assertWithMatcher:grey_notNil()];
157 156
158 // Verify progress view visible and halfway progress. 157 // Verify progress view visible and halfway progress.
159 [[EarlGrey selectElementWithMatcher:ProgressViewWithProgress(0.5)] 158 [[EarlGrey selectElementWithMatcher:ProgressViewWithProgress(0.5)]
160 assertWithMatcher:grey_sufficientlyVisible()]; 159 assertWithMatcher:grey_sufficientlyVisible()];
161 160
162 [ChromeEarlGreyUI waitForToolbarVisible:YES]; 161 [ChromeEarlGreyUI waitForToolbarVisible:YES];
163 } 162 }
164 163
165 // Tests that the progress indicator is shown and has expected progress value 164 // Tests that the progress indicator is shown and has expected progress value
166 // after a form is submitted, and the toolbar is visible. 165 // after a form is submitted, and the toolbar is visible.
(...skipping 11 matching lines...) Expand all
178 responses[formURL] = [self formPageHTMLWithFormSubmitURL:infinitePendingURL]; 177 responses[formURL] = [self formPageHTMLWithFormSubmitURL:infinitePendingURL];
179 web::test::SetUpSimpleHttpServer(responses); 178 web::test::SetUpSimpleHttpServer(responses);
180 179
181 // Add responseProvider for page that never finishes loading. 180 // Add responseProvider for page that never finishes loading.
182 web::test::AddResponseProvider( 181 web::test::AddResponseProvider(
183 base::MakeUnique<InfinitePendingResponseProvider>(infinitePendingURL)); 182 base::MakeUnique<InfinitePendingResponseProvider>(infinitePendingURL));
184 183
185 // Load form first. 184 // Load form first.
186 [ChromeEarlGrey loadURL:formURL]; 185 [ChromeEarlGrey loadURL:formURL];
187 186
187 // TODO(crbug.com/707009): Replace this matcher with
188 // [ChromeEarlGrey waitForWebViewContainingText]. It fails to synchronize with
189 // the progress bar.
188 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kFormPageText)] 190 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kFormPageText)]
189 assertWithMatcher:grey_notNil()]; 191 assertWithMatcher:grey_notNil()];
190 192
191 chrome_test_util::SubmitWebViewFormWithId(kFormID); 193 chrome_test_util::SubmitWebViewFormWithId(kFormID);
192 194
193 // Wait until the page is half loaded. 195 // Wait until the page is half loaded.
196 // TODO(crbug.com/707009): Replace this matcher with
197 // [ChromeEarlGrey waitForWebViewContainingText].
194 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kPageText)] 198 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kPageText)]
195 assertWithMatcher:grey_notNil()]; 199 assertWithMatcher:grey_notNil()];
196 200
197 // Verify progress view visible and halfway progress. 201 // Verify progress view visible and halfway progress.
198 [[EarlGrey selectElementWithMatcher:ProgressViewWithProgress(0.5)] 202 [[EarlGrey selectElementWithMatcher:ProgressViewWithProgress(0.5)]
199 assertWithMatcher:grey_sufficientlyVisible()]; 203 assertWithMatcher:grey_sufficientlyVisible()];
200 204
201 [ChromeEarlGreyUI waitForToolbarVisible:YES]; 205 [ChromeEarlGreyUI waitForToolbarVisible:YES];
202 } 206 }
203 207
204 // Tests that the progress indicator disappears after form has been submitted. 208 // Tests that the progress indicator disappears after form has been submitted.
205 - (void)testProgressIndicatorDisappearsAfterFormSubmit { 209 - (void)testProgressIndicatorDisappearsAfterFormSubmit {
206 if (IsIPadIdiom()) { 210 if (IsIPadIdiom()) {
207 EARL_GREY_TEST_SKIPPED(@"Skipped for iPad (no progress view in tablet)"); 211 EARL_GREY_TEST_SKIPPED(@"Skipped for iPad (no progress view in tablet)");
208 } 212 }
209 213
210 const GURL formURL = web::test::HttpServer::MakeUrl(kFormURL); 214 const GURL formURL = web::test::HttpServer::MakeUrl(kFormURL);
211 const GURL simplePageURL = web::test::HttpServer::MakeUrl(kSimplePageURL); 215 const GURL simplePageURL = web::test::HttpServer::MakeUrl(kSimplePageURL);
212 216
213 // Create a page with a form to test. 217 // Create a page with a form to test.
214 std::map<GURL, std::string> responses; 218 std::map<GURL, std::string> responses;
215 responses[formURL] = [self formPageHTMLWithFormSubmitURL:simplePageURL]; 219 responses[formURL] = [self formPageHTMLWithFormSubmitURL:simplePageURL];
216 responses[simplePageURL] = kPageText; 220 responses[simplePageURL] = kPageText;
217 web::test::SetUpSimpleHttpServer(responses); 221 web::test::SetUpSimpleHttpServer(responses);
218 222
219 [ChromeEarlGrey loadURL:formURL]; 223 [ChromeEarlGrey loadURL:formURL];
220 224
221 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kFormPageText)] 225 [ChromeEarlGrey waitForWebViewContainingText:kFormPageText];
222 assertWithMatcher:grey_notNil()];
223 226
224 chrome_test_util::SubmitWebViewFormWithId(kFormID); 227 chrome_test_util::SubmitWebViewFormWithId(kFormID);
225 228
226 // Verify the new page has been loaded. 229 // Verify the new page has been loaded.
227 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kPageText)] 230 [ChromeEarlGrey waitForWebViewContainingText:kPageText];
228 assertWithMatcher:grey_notNil()];
229 231
230 // Verify progress view is not visible. 232 // Verify progress view is not visible.
231 [[EarlGrey selectElementWithMatcher:ProgressView()] 233 [[EarlGrey selectElementWithMatcher:ProgressView()]
232 assertWithMatcher:grey_notVisible()]; 234 assertWithMatcher:grey_notVisible()];
233 } 235 }
234 236
235 // Tests that the progress indicator disappears after form post attempt with a 237 // Tests that the progress indicator disappears after form post attempt with a
236 // submit event that returns false. 238 // submit event that returns false.
237 - (void)testProgressIndicatorDisappearsAfterSuppressedFormPost { 239 - (void)testProgressIndicatorDisappearsAfterSuppressedFormPost {
238 if (IsIPadIdiom()) { 240 if (IsIPadIdiom()) {
239 EARL_GREY_TEST_SKIPPED(@"Skipped for iPad (no progress view in tablet)"); 241 EARL_GREY_TEST_SKIPPED(@"Skipped for iPad (no progress view in tablet)");
240 } 242 }
241 243
242 // Create a page with a form to test. 244 // Create a page with a form to test.
243 const GURL formURL = web::test::HttpServer::MakeUrl(kFormURL); 245 const GURL formURL = web::test::HttpServer::MakeUrl(kFormURL);
244 std::map<GURL, std::string> responses; 246 std::map<GURL, std::string> responses;
245 responses[formURL] = [self formPageHTMLWithSuppressedSubmitEvent]; 247 responses[formURL] = [self formPageHTMLWithSuppressedSubmitEvent];
246 web::test::SetUpSimpleHttpServer(responses); 248 web::test::SetUpSimpleHttpServer(responses);
247 249
248 [ChromeEarlGrey loadURL:formURL]; 250 [ChromeEarlGrey loadURL:formURL];
249 251
250 // Verify the form page has been loaded. 252 // Verify the form page has been loaded.
251 [[EarlGrey selectElementWithMatcher:WebViewContainingText(kFormPageText)] 253 [ChromeEarlGrey waitForWebViewContainingText:kFormPageText];
252 assertWithMatcher:grey_notNil()];
253 254
254 chrome_test_util::SubmitWebViewFormWithId(kFormID); 255 chrome_test_util::SubmitWebViewFormWithId(kFormID);
255 256
256 // Verify progress view is not visible. 257 // Verify progress view is not visible.
257 [[EarlGrey selectElementWithMatcher:grey_kindOfClass([MDCProgressView class])] 258 [[EarlGrey selectElementWithMatcher:grey_kindOfClass([MDCProgressView class])]
258 assertWithMatcher:grey_notVisible()]; 259 assertWithMatcher:grey_notVisible()];
259 } 260 }
260 261
261 @end 262 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/web/navigation_egtest.mm ('k') | ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698