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

Side by Side Diff: ios/web/shell/test/navigation_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/web/shell/test/meta_tags_egtest.mm ('k') | ios/web/shell/test/plugin_placeholder_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 <UIKit/UIKit.h> 5 #import <UIKit/UIKit.h>
6 #import <WebKit/WebKit.h> 6 #import <WebKit/WebKit.h>
7 #import <XCTest/XCTest.h> 7 #import <XCTest/XCTest.h>
8 8
9 #import <EarlGrey/EarlGrey.h> 9 #import <EarlGrey/EarlGrey.h>
10 10
11 #include "base/strings/sys_string_conversions.h"
12 #import "ios/web/public/test/http_server/http_server.h" 11 #import "ios/web/public/test/http_server/http_server.h"
13 #include "ios/web/public/test/http_server/http_server_util.h" 12 #include "ios/web/public/test/http_server/http_server_util.h"
14 #include "ios/web/shell/test/app/web_view_interaction_test_util.h" 13 #include "ios/web/shell/test/app/web_view_interaction_test_util.h"
15 #import "ios/web/shell/test/earl_grey/shell_earl_grey.h" 14 #import "ios/web/shell/test/earl_grey/shell_earl_grey.h"
16 #import "ios/web/shell/test/earl_grey/shell_matchers.h" 15 #import "ios/web/shell/test/earl_grey/shell_matchers.h"
17 #import "ios/web/shell/test/earl_grey/web_shell_test_case.h" 16 #import "ios/web/shell/test/earl_grey/web_shell_test_case.h"
18 17
19 #if !defined(__has_feature) || !__has_feature(objc_arc) 18 #if !defined(__has_feature) || !__has_feature(objc_arc)
20 #error "This file requires ARC support." 19 #error "This file requires ARC support."
21 #endif 20 #endif
(...skipping 20 matching lines...) Expand all
42 41
43 [[EarlGrey selectElementWithMatcher:web::AddressFieldText("about:blank")] 42 [[EarlGrey selectElementWithMatcher:web::AddressFieldText("about:blank")]
44 assertWithMatcher:grey_notNil()]; 43 assertWithMatcher:grey_notNil()];
45 } 44 }
46 45
47 // Tests the back and forward button after entering two URLs. 46 // Tests the back and forward button after entering two URLs.
48 - (void)testNavigationBackAndForward { 47 - (void)testNavigationBackAndForward {
49 // Create map of canned responses and set up the test HTML server. 48 // Create map of canned responses and set up the test HTML server.
50 std::map<GURL, std::string> responses; 49 std::map<GURL, std::string> responses;
51 const GURL URL1 = web::test::HttpServer::MakeUrl("http://firstURL"); 50 const GURL URL1 = web::test::HttpServer::MakeUrl("http://firstURL");
52 std::string response1 = "Test Page 1"; 51 const char response1[] = "Test Page 1";
53 responses[URL1] = response1; 52 responses[URL1] = response1;
54 53
55 const GURL URL2 = web::test::HttpServer::MakeUrl("http://secondURL"); 54 const GURL URL2 = web::test::HttpServer::MakeUrl("http://secondURL");
56 std::string response2 = "Test Page 2"; 55 const char response2[] = "Test Page 2";
57 responses[URL2] = response2; 56 responses[URL2] = response2;
58 57
59 web::test::SetUpSimpleHttpServer(responses); 58 web::test::SetUpSimpleHttpServer(responses);
60 59
61 [ShellEarlGrey loadURL:URL1]; 60 [ShellEarlGrey loadURL:URL1];
62 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL1.spec())] 61 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL1.spec())]
63 assertWithMatcher:grey_notNil()]; 62 assertWithMatcher:grey_notNil()];
64 [[EarlGrey selectElementWithMatcher:web::WebViewContainingText(response1)] 63 [ShellEarlGrey waitForWebViewContainingText:response1];
65 assertWithMatcher:grey_notNil()];
66 64
67 [ShellEarlGrey loadURL:URL2]; 65 [ShellEarlGrey loadURL:URL2];
68 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL2.spec())] 66 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL2.spec())]
69 assertWithMatcher:grey_notNil()]; 67 assertWithMatcher:grey_notNil()];
70 [[EarlGrey selectElementWithMatcher:web::WebViewContainingText(response2)] 68 [ShellEarlGrey waitForWebViewContainingText:response2];
71 assertWithMatcher:grey_notNil()];
72 69
73 [[EarlGrey selectElementWithMatcher:web::BackButton()] 70 [[EarlGrey selectElementWithMatcher:web::BackButton()]
74 performAction:grey_tap()]; 71 performAction:grey_tap()];
75 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL1.spec())] 72 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL1.spec())]
76 assertWithMatcher:grey_notNil()]; 73 assertWithMatcher:grey_notNil()];
77 [[EarlGrey selectElementWithMatcher:web::WebViewContainingText(response1)] 74 [ShellEarlGrey waitForWebViewContainingText:response1];
78 assertWithMatcher:grey_notNil()];
79 75
80 [[EarlGrey selectElementWithMatcher:web::ForwardButton()] 76 [[EarlGrey selectElementWithMatcher:web::ForwardButton()]
81 performAction:grey_tap()]; 77 performAction:grey_tap()];
82 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL2.spec())] 78 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL2.spec())]
83 assertWithMatcher:grey_notNil()]; 79 assertWithMatcher:grey_notNil()];
84 [[EarlGrey selectElementWithMatcher:web::WebViewContainingText(response2)] 80 [ShellEarlGrey waitForWebViewContainingText:response2];
85 assertWithMatcher:grey_notNil()];
86 } 81 }
87 82
88 // Tests back and forward navigation where a fragment link is tapped. 83 // Tests back and forward navigation where a fragment link is tapped.
89 - (void)testNavigationBackAndForwardAfterFragmentLink { 84 - (void)testNavigationBackAndForwardAfterFragmentLink {
90 // Create map of canned responses and set up the test HTML server. 85 // Create map of canned responses and set up the test HTML server.
91 std::map<GURL, std::string> responses; 86 std::map<GURL, std::string> responses;
92 const GURL URL1 = web::test::HttpServer::MakeUrl("http://fragmentLink"); 87 const GURL URL1 = web::test::HttpServer::MakeUrl("http://fragmentLink");
93 const std::string response = "<a href='#hash' id='link'>link</a>"; 88 const std::string response = "<a href='#hash' id='link'>link</a>";
94 responses[URL1] = response; 89 responses[URL1] = response;
95 90
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 web::test::SetUpSimpleHttpServer(responses); 131 web::test::SetUpSimpleHttpServer(responses);
137 132
138 [ShellEarlGrey loadURL:URL]; 133 [ShellEarlGrey loadURL:URL];
139 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())] 134 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())]
140 assertWithMatcher:grey_notNil()]; 135 assertWithMatcher:grey_notNil()];
141 136
142 web::shell_test_util::TapWebViewElementWithId("overrides-href"); 137 web::shell_test_util::TapWebViewElementWithId("overrides-href");
143 138
144 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())] 139 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())]
145 assertWithMatcher:grey_notNil()]; 140 assertWithMatcher:grey_notNil()];
146 [[EarlGrey 141 [ShellEarlGrey waitForWebViewContainingText:"Default prevented!"];
147 selectElementWithMatcher:web::WebViewContainingText("Default prevented!")]
148 assertWithMatcher:grey_notNil()];
149 } 142 }
150 143
151 // Tests tapping on a link with unsupported URL scheme. 144 // Tests tapping on a link with unsupported URL scheme.
152 - (void)testNavigationUnsupportedSchema { 145 - (void)testNavigationUnsupportedSchema {
153 // Create map of canned responses and set up the test HTML server. 146 // Create map of canned responses and set up the test HTML server.
154 std::map<GURL, std::string> responses; 147 std::map<GURL, std::string> responses;
155 const GURL URL = 148 const GURL URL =
156 web::test::HttpServer::MakeUrl("http://urlWithUnsupportedSchemeLink"); 149 web::test::HttpServer::MakeUrl("http://urlWithUnsupportedSchemeLink");
157 const char pageHTML[] = 150 const char pageHTML[] =
158 "<script>" 151 "<script>"
159 " function printMsg() {" 152 " function printMsg() {"
160 " document.body.appendChild(document.createTextNode(" 153 " document.body.appendChild(document.createTextNode("
161 " 'No navigation!'));" 154 " 'No navigation!'));"
162 " }" 155 " }"
163 "</script>" 156 "</script>"
164 "<a href='aaa://unsupported' id='link' " 157 "<a href='aaa://unsupported' id='link' "
165 "onclick='printMsg();'>unsupportedScheme</a>"; 158 "onclick='printMsg();'>unsupportedScheme</a>";
166 responses[URL] = pageHTML; 159 responses[URL] = pageHTML;
167 160
168 web::test::SetUpSimpleHttpServer(responses); 161 web::test::SetUpSimpleHttpServer(responses);
169 162
170 [ShellEarlGrey loadURL:URL]; 163 [ShellEarlGrey loadURL:URL];
171 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())] 164 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())]
172 assertWithMatcher:grey_notNil()]; 165 assertWithMatcher:grey_notNil()];
173 166
174 web::shell_test_util::TapWebViewElementWithId("link"); 167 web::shell_test_util::TapWebViewElementWithId("link");
175 168
176 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())] 169 [[EarlGrey selectElementWithMatcher:web::AddressFieldText(URL.spec())]
177 assertWithMatcher:grey_notNil()]; 170 assertWithMatcher:grey_notNil()];
178 [[EarlGrey 171 [ShellEarlGrey waitForWebViewContainingText:"No navigation!"];
179 selectElementWithMatcher:web::WebViewContainingText("No navigation!")]
180 assertWithMatcher:grey_notNil()];
181 } 172 }
182 173
183 @end 174 @end
OLDNEW
« no previous file with comments | « ios/web/shell/test/meta_tags_egtest.mm ('k') | ios/web/shell/test/plugin_placeholder_egtest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698