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

Side by Side Diff: ios/chrome/browser/web/browsing_prevent_default_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
« no previous file with comments | « ios/chrome/browser/web/browsing_egtest.mm ('k') | ios/chrome/browser/web/cache_egtest.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #import <UIKit/UIKit.h> 6 #import <UIKit/UIKit.h>
7 #import <XCTest/XCTest.h> 7 #import <XCTest/XCTest.h>
8 8
9 #include "base/strings/sys_string_conversions.h" 9 #include "base/strings/sys_string_conversions.h"
10 #include "components/content_settings/core/browser/host_content_settings_map.h" 10 #include "components/content_settings/core/browser/host_content_settings_map.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 ScopedBlockPopupsPref scoper(CONTENT_SETTING_ALLOW); 90 ScopedBlockPopupsPref scoper(CONTENT_SETTING_ALLOW);
91 web::test::SetUpFileBasedHttpServer(); 91 web::test::SetUpFileBasedHttpServer();
92 92
93 const GURL testURL = GetTestUrl(); 93 const GURL testURL = GetTestUrl();
94 [ChromeEarlGrey loadURL:testURL]; 94 [ChromeEarlGrey loadURL:testURL];
95 chrome_test_util::AssertMainTabCount(1U); 95 chrome_test_util::AssertMainTabCount(1U);
96 96
97 // Tap on the test link and wait for the page to display "Click done", as an 97 // Tap on the test link and wait for the page to display "Click done", as an
98 // indicator that the element was tapped. 98 // indicator that the element was tapped.
99 chrome_test_util::TapWebViewElementWithId(linkID); 99 chrome_test_util::TapWebViewElementWithId(linkID);
100 [[GREYCondition 100 [ChromeEarlGrey waitForWebViewContainingText:"Click done"];
101 conditionWithName:@"Waiting for webview to display 'Click done'."
102 block:^BOOL {
103 id<GREYMatcher> webViewMatcher =
104 chrome_test_util::WebViewContainingText("Click done");
105 NSError* error = nil;
106 [[EarlGrey selectElementWithMatcher:webViewMatcher]
107 assertWithMatcher:grey_notNil()
108 error:&error];
109 return error == nil;
110 }] waitWithTimeout:kConditionTimeout];
111 101
112 // Check that no navigation occurred and no new tabs were opened. 102 // Check that no navigation occurred and no new tabs were opened.
113 chrome_test_util::AssertMainTabCount(1U); 103 chrome_test_util::AssertMainTabCount(1U);
114 const GURL& currentURL = 104 const GURL& currentURL =
115 chrome_test_util::GetCurrentWebState()->GetVisibleURL(); 105 chrome_test_util::GetCurrentWebState()->GetVisibleURL();
116 GREYAssert(currentURL == testURL, @"Page navigated unexpectedly %s", 106 GREYAssert(currentURL == testURL, @"Page navigated unexpectedly %s",
117 currentURL.spec().c_str()); 107 currentURL.spec().c_str());
118 } 108 }
119 109
120 // Taps a link with onclick="event.preventDefault()" and target="_blank" and 110 // Taps a link with onclick="event.preventDefault()" and target="_blank" and
(...skipping 21 matching lines...) Expand all
142 web::test::SetUpFileBasedHttpServer(); 132 web::test::SetUpFileBasedHttpServer();
143 133
144 const GURL testURL = GetTestUrl(); 134 const GURL testURL = GetTestUrl();
145 [ChromeEarlGrey loadURL:testURL]; 135 [ChromeEarlGrey loadURL:testURL];
146 chrome_test_util::AssertMainTabCount(1U); 136 chrome_test_util::AssertMainTabCount(1U);
147 137
148 // Tap on the test link. 138 // Tap on the test link.
149 const std::string linkID = 139 const std::string linkID =
150 "webScenarioBrowsingLinkPreventDefaultOverridesWindowOpen"; 140 "webScenarioBrowsingLinkPreventDefaultOverridesWindowOpen";
151 chrome_test_util::TapWebViewElementWithId(linkID); 141 chrome_test_util::TapWebViewElementWithId(linkID);
152 142 [ChromeEarlGrey waitForWebViewContainingText:"Click done"];
153 // Stall a bit to make sure the webview doesn't do anything asynchronously.
154 [[GREYCondition
155 conditionWithName:@"Waiting for webview to display 'Click done'."
156 block:^BOOL {
157 id<GREYMatcher> webViewMatcher =
158 chrome_test_util::WebViewContainingText("Click done");
159 NSError* error = nil;
160 [[EarlGrey selectElementWithMatcher:webViewMatcher]
161 assertWithMatcher:grey_notNil()
162 error:&error];
163 return error == nil;
164 }] waitWithTimeout:kConditionTimeout];
165 143
166 // Check that the tab navigated to about:blank and no new tabs were opened. 144 // Check that the tab navigated to about:blank and no new tabs were opened.
167 [[GREYCondition 145 [[GREYCondition
168 conditionWithName:@"Wait for navigation to about:blank" 146 conditionWithName:@"Wait for navigation to about:blank"
169 block:^BOOL { 147 block:^BOOL {
170 const GURL& currentURL = 148 const GURL& currentURL =
171 chrome_test_util::GetCurrentWebState()->GetVisibleURL(); 149 chrome_test_util::GetCurrentWebState()->GetVisibleURL();
172 return currentURL == GURL(url::kAboutBlankURL); 150 return currentURL == GURL(url::kAboutBlankURL);
173 }] waitWithTimeout:kConditionTimeout]; 151 }] waitWithTimeout:kConditionTimeout];
174 chrome_test_util::AssertMainTabCount(1U); 152 chrome_test_util::AssertMainTabCount(1U);
175 } 153 }
176 154
177 @end 155 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/web/browsing_egtest.mm ('k') | ios/chrome/browser/web/cache_egtest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698