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

Side by Side Diff: ios/web_view/test/chrome_web_view_kvo_inttest.mm

Issue 2940953003: Consolidated all CWVWebView test helpers inside web_view_test_util file. (Closed)
Patch Set: Addressed 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 <ChromeWebView/ChromeWebView.h> 5 #import <ChromeWebView/ChromeWebView.h>
6 #import <Foundation/Foundation.h> 6 #import <Foundation/Foundation.h>
7 7
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #import "base/strings/sys_string_conversions.h" 9 #import "base/strings/sys_string_conversions.h"
10 #import "ios/testing/wait_util.h" 10 #import "ios/testing/wait_util.h"
(...skipping 29 matching lines...) Expand all
40 GURL page_3_url = GetUrlForPageWithTitle("Page 3"); 40 GURL page_3_url = GetUrlForPageWithTitle("Page 3");
41 41
42 std::string page_2_html = 42 std::string page_2_html =
43 "<a id='link_2' href='" + page_3_url.spec() + "'>Link 2</a>"; 43 "<a id='link_2' href='" + page_3_url.spec() + "'>Link 2</a>";
44 GURL page_2_url = GetUrlForPageWithHtmlBody(page_2_html); 44 GURL page_2_url = GetUrlForPageWithHtmlBody(page_2_html);
45 45
46 std::string page_1_html = 46 std::string page_1_html =
47 "<a id='link_1' href='" + page_2_url.spec() + "'>Link 1</a>"; 47 "<a id='link_1' href='" + page_2_url.spec() + "'>Link 1</a>";
48 GURL page_1_url = GetUrlForPageWithHtmlBody(page_1_html); 48 GURL page_1_url = GetUrlForPageWithHtmlBody(page_1_html);
49 49
50 LoadUrl(web_view_, net::NSURLWithGURL(page_1_url)); 50 ASSERT_TRUE(test::LoadUrl(web_view_, net::NSURLWithGURL(page_1_url)));
51 // Loading initial URL should not affect back/forward navigation state. 51 // Loading initial URL should not affect back/forward navigation state.
52 EXPECT_FALSE([back_observer.lastValue boolValue]); 52 EXPECT_FALSE([back_observer.lastValue boolValue]);
53 EXPECT_FALSE([forward_observer.lastValue boolValue]); 53 EXPECT_FALSE([forward_observer.lastValue boolValue]);
54 54
55 // Navigate to page 2. 55 // Navigate to page 2.
56 EXPECT_TRUE(test::TapChromeWebViewElementWithId(web_view_, @"link_1")); 56 EXPECT_TRUE(test::TapWebViewElementWithId(web_view_, @"link_1"));
57 WaitForPageLoadCompletion(web_view_); 57 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
58 EXPECT_TRUE([back_observer.lastValue boolValue]); 58 EXPECT_TRUE([back_observer.lastValue boolValue]);
59 EXPECT_FALSE([forward_observer.lastValue boolValue]); 59 EXPECT_FALSE([forward_observer.lastValue boolValue]);
60 60
61 // Navigate back to page 1. 61 // Navigate back to page 1.
62 [web_view_ goBack]; 62 [web_view_ goBack];
63 WaitForPageLoadCompletion(web_view_); 63 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
64 EXPECT_FALSE([back_observer.lastValue boolValue]); 64 EXPECT_FALSE([back_observer.lastValue boolValue]);
65 EXPECT_TRUE([forward_observer.lastValue boolValue]); 65 EXPECT_TRUE([forward_observer.lastValue boolValue]);
66 66
67 // Navigate forward to page 2. 67 // Navigate forward to page 2.
68 [web_view_ goForward]; 68 [web_view_ goForward];
69 WaitForPageLoadCompletion(web_view_); 69 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
70 EXPECT_TRUE([back_observer.lastValue boolValue]); 70 EXPECT_TRUE([back_observer.lastValue boolValue]);
71 EXPECT_FALSE([forward_observer.lastValue boolValue]); 71 EXPECT_FALSE([forward_observer.lastValue boolValue]);
72 72
73 // Navigate to page 3. 73 // Navigate to page 3.
74 EXPECT_TRUE(test::TapChromeWebViewElementWithId(web_view_, @"link_2")); 74 EXPECT_TRUE(test::TapWebViewElementWithId(web_view_, @"link_2"));
75 WaitForPageLoadCompletion(web_view_); 75 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
76 EXPECT_TRUE([back_observer.lastValue boolValue]); 76 EXPECT_TRUE([back_observer.lastValue boolValue]);
77 EXPECT_FALSE([forward_observer.lastValue boolValue]); 77 EXPECT_FALSE([forward_observer.lastValue boolValue]);
78 78
79 // Navigate back to page 2. 79 // Navigate back to page 2.
80 [web_view_ goBack]; 80 [web_view_ goBack];
81 WaitForPageLoadCompletion(web_view_); 81 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
82 EXPECT_TRUE([back_observer.lastValue boolValue]); 82 EXPECT_TRUE([back_observer.lastValue boolValue]);
83 EXPECT_TRUE([forward_observer.lastValue boolValue]); 83 EXPECT_TRUE([forward_observer.lastValue boolValue]);
84 } 84 }
85 85
86 // Tests that CWVWebView correctly reports current |title|. 86 // Tests that CWVWebView correctly reports current |title|.
87 TEST_F(ChromeWebViewKvoTest, Title) { 87 TEST_F(ChromeWebViewKvoTest, Title) {
88 Observer* observer = [[Observer alloc] init]; 88 Observer* observer = [[Observer alloc] init];
89 [observer setObservedObject:web_view_ keyPath:@"title"]; 89 [observer setObservedObject:web_view_ keyPath:@"title"];
90 90
91 NSString* page_2_title = @"Page 2"; 91 NSString* page_2_title = @"Page 2";
92 GURL page_2_url = 92 GURL page_2_url =
93 GetUrlForPageWithTitle(base::SysNSStringToUTF8(page_2_title)); 93 GetUrlForPageWithTitle(base::SysNSStringToUTF8(page_2_title));
94 94
95 NSString* page_1_title = @"Page 1"; 95 NSString* page_1_title = @"Page 1";
96 std::string page_1_html = base::StringPrintf( 96 std::string page_1_html = base::StringPrintf(
97 "<a id='link_1' href='%s'>Link 1</a>", page_2_url.spec().c_str()); 97 "<a id='link_1' href='%s'>Link 1</a>", page_2_url.spec().c_str());
98 GURL page_1_url = GetUrlForPageWithTitleAndBody( 98 GURL page_1_url = GetUrlForPageWithTitleAndBody(
99 base::SysNSStringToUTF8(page_1_title), page_1_html); 99 base::SysNSStringToUTF8(page_1_title), page_1_html);
100 100
101 LoadUrl(web_view_, net::NSURLWithGURL(page_1_url)); 101 ASSERT_TRUE(test::LoadUrl(web_view_, net::NSURLWithGURL(page_1_url)));
102 EXPECT_NSEQ(page_1_title, observer.lastValue); 102 EXPECT_NSEQ(page_1_title, observer.lastValue);
103 103
104 // Navigate to page 2. 104 // Navigate to page 2.
105 EXPECT_TRUE(test::TapChromeWebViewElementWithId(web_view_, @"link_1")); 105 EXPECT_TRUE(test::TapWebViewElementWithId(web_view_, @"link_1"));
106 WaitForPageLoadCompletion(web_view_); 106 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
107 EXPECT_NSEQ(page_2_title, observer.lastValue); 107 EXPECT_NSEQ(page_2_title, observer.lastValue);
108 108
109 // Navigate back to page 1. 109 // Navigate back to page 1.
110 [web_view_ goBack]; 110 [web_view_ goBack];
111 WaitForPageLoadCompletion(web_view_); 111 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
112 EXPECT_NSEQ(page_1_title, observer.lastValue); 112 EXPECT_NSEQ(page_1_title, observer.lastValue);
113 } 113 }
114 114
115 // Tests that CWVWebView correctly reports |isLoading| value. 115 // Tests that CWVWebView correctly reports |isLoading| value.
116 TEST_F(ChromeWebViewKvoTest, Loading) { 116 TEST_F(ChromeWebViewKvoTest, Loading) {
117 Observer* observer = [[Observer alloc] init]; 117 Observer* observer = [[Observer alloc] init];
118 [observer setObservedObject:web_view_ keyPath:@"loading"]; 118 [observer setObservedObject:web_view_ keyPath:@"loading"];
119 119
120 GURL page_2_url = GetUrlForPageWithTitle("Page 2"); 120 GURL page_2_url = GetUrlForPageWithTitle("Page 2");
121 121
122 std::string page_1_html = base::StringPrintf( 122 std::string page_1_html = base::StringPrintf(
123 "<a id='link_1' href='%s'>Link 1</a>", page_2_url.spec().c_str()); 123 "<a id='link_1' href='%s'>Link 1</a>", page_2_url.spec().c_str());
124 GURL page_1_url = GetUrlForPageWithTitleAndBody("Page 1", page_1_html); 124 GURL page_1_url = GetUrlForPageWithTitleAndBody("Page 1", page_1_html);
125 125
126 LoadUrl(web_view_, net::NSURLWithGURL(page_1_url)); 126 ASSERT_TRUE(test::LoadUrl(web_view_, net::NSURLWithGURL(page_1_url)));
127 EXPECT_TRUE([observer.previousValue boolValue]); 127 EXPECT_TRUE([observer.previousValue boolValue]);
128 EXPECT_FALSE([observer.lastValue boolValue]); 128 EXPECT_FALSE([observer.lastValue boolValue]);
129 129
130 // Navigate to page 2. 130 // Navigate to page 2.
131 EXPECT_TRUE(test::TapChromeWebViewElementWithId(web_view_, @"link_1")); 131 EXPECT_TRUE(test::TapWebViewElementWithId(web_view_, @"link_1"));
132 WaitForPageLoadCompletion(web_view_); 132 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
133 EXPECT_TRUE([observer.previousValue boolValue]); 133 EXPECT_TRUE([observer.previousValue boolValue]);
134 EXPECT_FALSE([observer.lastValue boolValue]); 134 EXPECT_FALSE([observer.lastValue boolValue]);
135 135
136 // Navigate back to page 1. 136 // Navigate back to page 1.
137 [web_view_ goBack]; 137 [web_view_ goBack];
138 WaitForPageLoadCompletion(web_view_); 138 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
139 EXPECT_TRUE([observer.previousValue boolValue]); 139 EXPECT_TRUE([observer.previousValue boolValue]);
140 EXPECT_FALSE([observer.lastValue boolValue]); 140 EXPECT_FALSE([observer.lastValue boolValue]);
141 } 141 }
142 142
143 // Tests that CWVWebView correctly reports |visibleURL| and |lastCommittedURL|. 143 // Tests that CWVWebView correctly reports |visibleURL| and |lastCommittedURL|.
144 TEST_F(ChromeWebViewKvoTest, URLs) { 144 TEST_F(ChromeWebViewKvoTest, URLs) {
145 Observer* last_committed_url_observer = [[Observer alloc] init]; 145 Observer* last_committed_url_observer = [[Observer alloc] init];
146 [last_committed_url_observer setObservedObject:web_view_ 146 [last_committed_url_observer setObservedObject:web_view_
147 keyPath:@"lastCommittedURL"]; 147 keyPath:@"lastCommittedURL"];
148 148
149 Observer* visible_url_observer = [[Observer alloc] init]; 149 Observer* visible_url_observer = [[Observer alloc] init];
150 [visible_url_observer setObservedObject:web_view_ keyPath:@"visibleURL"]; 150 [visible_url_observer setObservedObject:web_view_ keyPath:@"visibleURL"];
151 151
152 GURL page_2 = GetUrlForPageWithTitle("Page 2"); 152 GURL page_2 = GetUrlForPageWithTitle("Page 2");
153 NSURL* page_2_url = net::NSURLWithGURL(page_2); 153 NSURL* page_2_url = net::NSURLWithGURL(page_2);
154 154
155 std::string page_1_html = base::StringPrintf( 155 std::string page_1_html = base::StringPrintf(
156 "<a id='link_1' href='%s'>Link 1</a>", page_2.spec().c_str()); 156 "<a id='link_1' href='%s'>Link 1</a>", page_2.spec().c_str());
157 NSURL* page_1_url = 157 NSURL* page_1_url =
158 net::NSURLWithGURL(GetUrlForPageWithTitleAndBody("Page 1", page_1_html)); 158 net::NSURLWithGURL(GetUrlForPageWithTitleAndBody("Page 1", page_1_html));
159 159
160 [web_view_ loadRequest:[NSURLRequest requestWithURL:page_1_url]]; 160 [web_view_ loadRequest:[NSURLRequest requestWithURL:page_1_url]];
161 161
162 // |visibleURL| will update immediately 162 // |visibleURL| will update immediately
163 EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue); 163 EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue);
164 164
165 WaitForPageLoadCompletion(web_view_); 165 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
166 EXPECT_NSEQ(page_1_url, last_committed_url_observer.lastValue); 166 EXPECT_NSEQ(page_1_url, last_committed_url_observer.lastValue);
167 EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue); 167 EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue);
168 168
169 // Navigate to page 2. 169 // Navigate to page 2.
170 EXPECT_TRUE(test::TapChromeWebViewElementWithId(web_view_, @"link_1")); 170 EXPECT_TRUE(test::TapWebViewElementWithId(web_view_, @"link_1"));
171 WaitForPageLoadCompletion(web_view_); 171 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
172 EXPECT_NSEQ(page_2_url, last_committed_url_observer.lastValue); 172 EXPECT_NSEQ(page_2_url, last_committed_url_observer.lastValue);
173 EXPECT_NSEQ(page_2_url, visible_url_observer.lastValue); 173 EXPECT_NSEQ(page_2_url, visible_url_observer.lastValue);
174 174
175 // Navigate back to page 1. 175 // Navigate back to page 1.
176 [web_view_ goBack]; 176 [web_view_ goBack];
177 WaitForPageLoadCompletion(web_view_); 177 ASSERT_TRUE(test::WaitForWebViewLoadCompletionOrTimeout(web_view_));
178 EXPECT_NSEQ(page_1_url, last_committed_url_observer.lastValue); 178 EXPECT_NSEQ(page_1_url, last_committed_url_observer.lastValue);
179 EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue); 179 EXPECT_NSEQ(page_1_url, visible_url_observer.lastValue);
180 } 180 }
181 181
182 } // namespace ios_web_view 182 } // namespace ios_web_view
OLDNEW
« no previous file with comments | « ios/web_view/test/BUILD.gn ('k') | ios/web_view/test/chrome_web_view_restorable_state_inttest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698