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

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

Issue 2798773002: Create ChromeEarlGrey waitForWebViewContainingText. (Closed)
Patch Set: more cleanup 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 <XCTest/XCTest.h> 5 #import <XCTest/XCTest.h>
6 6
7 #include "base/strings/sys_string_conversions.h" 7 #include "base/strings/sys_string_conversions.h"
8 #include "components/strings/grit/components_strings.h" 8 #include "components/strings/grit/components_strings.h"
9 #include "ios/chrome/browser/ui/ui_util.h" 9 #include "ios/chrome/browser/ui/ui_util.h"
10 #import "ios/chrome/test/earl_grey/chrome_earl_grey.h" 10 #import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 } 227 }
228 228
229 // Tests calling pushState with unicode characters. 229 // Tests calling pushState with unicode characters.
230 - (void)testHtml5HistoryPushUnicodeCharacters { 230 - (void)testHtml5HistoryPushUnicodeCharacters {
231 const GURL pushStateUnicodeURLEncoded = web::test::HttpServer::MakeUrl( 231 const GURL pushStateUnicodeURLEncoded = web::test::HttpServer::MakeUrl(
232 "http://ios/testing/data/http_server_files/" 232 "http://ios/testing/data/http_server_files/"
233 "history.html#unicode%E1%84%91"); 233 "history.html#unicode%E1%84%91");
234 const GURL pushStateUnicode2URLEncoded = web::test::HttpServer::MakeUrl( 234 const GURL pushStateUnicode2URLEncoded = web::test::HttpServer::MakeUrl(
235 "http://ios/testing/data/http_server_files/" 235 "http://ios/testing/data/http_server_files/"
236 "history.html#unicode2%E2%88%A2"); 236 "history.html#unicode2%E2%88%A2");
237 std::string pushStateUnicodeLabel = "Action: pushStateUnicodeᄑ"; 237 const char pushStateUnicodeLabel[] = "Action: pushStateUnicodeᄑ";
238 NSString* pushStateUnicodeStatus = @"pushStateUnicodeᄑ"; 238 NSString* pushStateUnicodeStatus = @"pushStateUnicodeᄑ";
239 std::string pushStateUnicode2Label = "Action: pushStateUnicode2∢"; 239 const char pushStateUnicode2Label[] = "Action: pushStateUnicode2∢";
240 NSString* pushStateUnicode2Status = @"pushStateUnicode2∢"; 240 NSString* pushStateUnicode2Status = @"pushStateUnicode2∢";
241 241
242 web::test::SetUpFileBasedHttpServer(); 242 web::test::SetUpFileBasedHttpServer();
243 [ChromeEarlGrey loadURL:web::test::HttpServer::MakeUrl(kHistoryTestUrl)]; 243 [ChromeEarlGrey loadURL:web::test::HttpServer::MakeUrl(kHistoryTestUrl)];
244 244
245 // TODO(crbug.com/643458): The fact that the URL shows %-escaped is due to 245 // TODO(crbug.com/643458): The fact that the URL shows %-escaped is due to
246 // NSURL escaping to make UIWebView/JS happy. See if it's possible to 246 // NSURL escaping to make UIWebView/JS happy. See if it's possible to
247 // represent differently such that it displays unescaped. 247 // represent differently such that it displays unescaped.
248 // Do 2 push states with unicode characters. 248 // Do 2 push states with unicode characters.
249 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode"]; 249 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode"];
250 [[EarlGrey 250 [[EarlGrey
251 selectElementWithMatcher:chrome_test_util::OmniboxText( 251 selectElementWithMatcher:chrome_test_util::OmniboxText(
252 pushStateUnicodeURLEncoded.GetContent())] 252 pushStateUnicodeURLEncoded.GetContent())]
253 assertWithMatcher:grey_notNil()]; 253 assertWithMatcher:grey_notNil()];
254 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 254 [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicodeLabel];
255 pushStateUnicodeLabel)]
256 assertWithMatcher:grey_notNil()];
257 255
258 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode2"]; 256 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode2"];
259 [[EarlGrey 257 [[EarlGrey
260 selectElementWithMatcher:chrome_test_util::OmniboxText( 258 selectElementWithMatcher:chrome_test_util::OmniboxText(
261 pushStateUnicode2URLEncoded.GetContent())] 259 pushStateUnicode2URLEncoded.GetContent())]
262 assertWithMatcher:grey_notNil()]; 260 assertWithMatcher:grey_notNil()];
263 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 261 [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicode2Label];
264 pushStateUnicode2Label)]
265 assertWithMatcher:grey_notNil()];
266 262
267 // Do a push state without a unicode character. 263 // Do a push state without a unicode character.
268 const GURL pushStatePathURL = 264 const GURL pushStatePathURL =
269 web::test::HttpServer::MakeUrl(kPushStatePathURL); 265 web::test::HttpServer::MakeUrl(kPushStatePathURL);
270 [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"]; 266 [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"];
271 267
272 [self assertStatusText:@"pushStatePath" 268 [self assertStatusText:@"pushStatePath"
273 withURL:pushStatePathURL 269 withURL:pushStatePathURL
274 pageLoaded:NO]; 270 pageLoaded:NO];
275 271
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 assertWithMatcher:grey_notNil()]; 319 assertWithMatcher:grey_notNil()];
324 } 320 }
325 321
326 #pragma mark - Utility methods 322 #pragma mark - Utility methods
327 323
328 // Assert that status text |status| is displayed in the webview, that "onloaded" 324 // Assert that status text |status| is displayed in the webview, that "onloaded"
329 // text is displayed if pageLoaded is YES, and that the URL is as expected. 325 // text is displayed if pageLoaded is YES, and that the URL is as expected.
330 - (void)assertStatusText:(NSString*)status 326 - (void)assertStatusText:(NSString*)status
331 withURL:(const GURL&)urlToVerify 327 withURL:(const GURL&)urlToVerify
332 pageLoaded:(BOOL)pageLoaded { 328 pageLoaded:(BOOL)pageLoaded {
333 id<GREYMatcher> pageLoadedMatcher = 329 if (pageLoaded) {
334 pageLoaded ? chrome_test_util::WebViewContainingText("onload") 330 [ChromeEarlGrey waitForWebViewContainingText:"onload"];
335 : chrome_test_util::WebViewNotContainingText("onload"); 331 } else {
336 [[EarlGrey selectElementWithMatcher:pageLoadedMatcher] 332 id<GREYMatcher> pageLoadedMatcher =
337 assertWithMatcher:grey_notNil()]; 333 chrome_test_util::WebViewNotContainingText("onload");
334 [[EarlGrey selectElementWithMatcher:pageLoadedMatcher]
335 assertWithMatcher:grey_notNil()];
336 }
338 337
339 if (status != NULL) { 338 if (status != NULL) {
340 NSString* statusLabel = [NSString stringWithFormat:@"Action: %@", status]; 339 NSString* statusLabel = [NSString stringWithFormat:@"Action: %@", status];
341 [[EarlGrey 340 [ChromeEarlGrey
342 selectElementWithMatcher:chrome_test_util::WebViewContainingText( 341 waitForWebViewContainingText:base::SysNSStringToUTF8(statusLabel)];
343 base::SysNSStringToUTF8(statusLabel))]
344 assertWithMatcher:grey_notNil()];
345 } 342 }
346 343
347 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( 344 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText(
348 urlToVerify.GetContent())] 345 urlToVerify.GetContent())]
349 assertWithMatcher:grey_notNil()]; 346 assertWithMatcher:grey_notNil()];
350 } 347 }
351 348
352 @end 349 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698