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

Side by Side Diff: ios/chrome/browser/web/window_open_by_dom_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 <EarlGrey/EarlGrey.h> 5 #import <EarlGrey/EarlGrey.h>
6 6
7 #include "base/format_macros.h" 7 #include "base/format_macros.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/strings/sys_string_conversions.h" 9 #include "base/strings/sys_string_conversions.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 11 matching lines...) Expand all
22 #include "ios/web/public/test/http_server/http_server_util.h" 22 #include "ios/web/public/test/http_server/http_server_util.h"
23 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
24 24
25 #if !defined(__has_feature) || !__has_feature(objc_arc) 25 #if !defined(__has_feature) || !__has_feature(objc_arc)
26 #error "This file requires ARC support." 26 #error "This file requires ARC support."
27 #endif 27 #endif
28 28
29 using chrome_test_util::AssertMainTabCount; 29 using chrome_test_util::AssertMainTabCount;
30 using chrome_test_util::OmniboxText; 30 using chrome_test_util::OmniboxText;
31 using chrome_test_util::TapWebViewElementWithId; 31 using chrome_test_util::TapWebViewElementWithId;
32 using chrome_test_util::WebViewContainingText;
33 using web::test::HttpServer; 32 using web::test::HttpServer;
34 33
35 namespace { 34 namespace {
36 // URL of the file-based page supporting these tests. 35 // URL of the file-based page supporting these tests.
37 const char kTestURL[] = 36 const char kTestURL[] =
38 "http://ios/testing/data/http_server_files/window_open.html"; 37 "http://ios/testing/data/http_server_files/window_open.html";
39 // Returns the text used for the blocked popup infobar when |blocked_count| 38 // Returns the text used for the blocked popup infobar when |blocked_count|
40 // popups are blocked. 39 // popups are blocked.
41 NSString* GetBlockedPopupInfobarText(size_t blocked_count) { 40 NSString* GetBlockedPopupInfobarText(size_t blocked_count) {
42 return base::SysUTF16ToNSString(l10n_util::GetStringFUTF16( 41 return base::SysUTF16ToNSString(l10n_util::GetStringFUTF16(
(...skipping 16 matching lines...) Expand all
59 58
60 + (void)tearDown { 59 + (void)tearDown {
61 chrome_test_util::SetContentSettingsBlockPopups(CONTENT_SETTING_DEFAULT); 60 chrome_test_util::SetContentSettingsBlockPopups(CONTENT_SETTING_DEFAULT);
62 [super tearDown]; 61 [super tearDown];
63 } 62 }
64 63
65 - (void)setUp { 64 - (void)setUp {
66 [super setUp]; 65 [super setUp];
67 // Open the test page. There should only be one tab open. 66 // Open the test page. There should only be one tab open.
68 [ChromeEarlGrey loadURL:HttpServer::MakeUrl(kTestURL)]; 67 [ChromeEarlGrey loadURL:HttpServer::MakeUrl(kTestURL)];
69 [[EarlGrey selectElementWithMatcher:WebViewContainingText("Expected result")] 68 [ChromeEarlGrey waitForWebViewContainingText:"Expected result"];
70 assertWithMatcher:grey_notNil()];
71 AssertMainTabCount(1); 69 AssertMainTabCount(1);
72 } 70 }
73 71
74 // Tests that opening a link with target=_blank which then immediately closes 72 // Tests that opening a link with target=_blank which then immediately closes
75 // itself works. 73 // itself works.
76 - (void)testLinkWithBlankTargetWithImmediateClose { 74 - (void)testLinkWithBlankTargetWithImmediateClose {
77 TapWebViewElementWithId("webScenarioWindowOpenBlankTargetWithImmediateClose"); 75 TapWebViewElementWithId("webScenarioWindowOpenBlankTargetWithImmediateClose");
78 AssertMainTabCount(1); 76 AssertMainTabCount(1);
79 } 77 }
80 78
81 // Tests that sessionStorage content is available for windows opened by DOM via 79 // Tests that sessionStorage content is available for windows opened by DOM via
82 // target="_blank" links. 80 // target="_blank" links.
83 - (void)testLinkWithBlankTargetSessionStorage { 81 - (void)testLinkWithBlankTargetSessionStorage {
84 using chrome_test_util::ExecuteJavaScript; 82 using chrome_test_util::ExecuteJavaScript;
85 83
86 __unsafe_unretained NSError* error = nil; 84 __unsafe_unretained NSError* error = nil;
87 ExecuteJavaScript(@"sessionStorage.setItem('key', 'value');", &error); 85 ExecuteJavaScript(@"sessionStorage.setItem('key', 'value');", &error);
88 GREYAssert(!error, @"Error during script execution: %@", error); 86 GREYAssert(!error, @"Error during script execution: %@", error);
89 87
90 TapWebViewElementWithId("webScenarioWindowOpenSameURLWithBlankTarget"); 88 TapWebViewElementWithId("webScenarioWindowOpenSameURLWithBlankTarget");
91 AssertMainTabCount(2); 89 AssertMainTabCount(2);
92 [[EarlGrey selectElementWithMatcher:WebViewContainingText("Expected result")] 90 [ChromeEarlGrey waitForWebViewContainingText:"Expected result"];
93 assertWithMatcher:grey_notNil()];
94 91
95 id value = ExecuteJavaScript(@"sessionStorage.getItem('key');", &error); 92 id value = ExecuteJavaScript(@"sessionStorage.getItem('key');", &error);
96 GREYAssert(!error, @"Error during script execution: %@", error); 93 GREYAssert(!error, @"Error during script execution: %@", error);
97 GREYAssert([value isEqual:@"value"], @"sessionStorage is not shared"); 94 GREYAssert([value isEqual:@"value"], @"sessionStorage is not shared");
98 } 95 }
99 96
100 // Tests a link with target="_blank". 97 // Tests a link with target="_blank".
101 - (void)testLinkWithBlankTarget { 98 - (void)testLinkWithBlankTarget {
102 TapWebViewElementWithId("webScenarioWindowOpenRegularLink"); 99 TapWebViewElementWithId("webScenarioWindowOpenRegularLink");
103 AssertMainTabCount(2); 100 AssertMainTabCount(2);
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 - (void)testBlockPopupInjectedIntoOpenedWindow { 218 - (void)testBlockPopupInjectedIntoOpenedWindow {
222 chrome_test_util::SetContentSettingsBlockPopups(CONTENT_SETTING_BLOCK); 219 chrome_test_util::SetContentSettingsBlockPopups(CONTENT_SETTING_BLOCK);
223 TapWebViewElementWithId("webScenarioOpenWindowAndInjectPopup"); 220 TapWebViewElementWithId("webScenarioOpenWindowAndInjectPopup");
224 NSString* infobarText = GetBlockedPopupInfobarText(1); 221 NSString* infobarText = GetBlockedPopupInfobarText(1);
225 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(infobarText)] 222 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(infobarText)]
226 assertWithMatcher:grey_notNil()]; 223 assertWithMatcher:grey_notNil()];
227 AssertMainTabCount(2); 224 AssertMainTabCount(2);
228 } 225 }
229 226
230 @end 227 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698