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

Side by Side Diff: ios/web/navigation/crw_session_controller_unittest.mm

Issue 2794723002: Create new pending item if UserAgentOverrideOption is not INHERIT. (Closed)
Patch Set: Address comments Created 3 years, 8 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "ios/web/navigation/crw_session_controller.h" 5 #import "ios/web/navigation/crw_session_controller.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 }; 59 };
60 60
61 TEST_F(CRWSessionControllerTest, Init) { 61 TEST_F(CRWSessionControllerTest, Init) {
62 EXPECT_TRUE([session_controller_ items].empty()); 62 EXPECT_TRUE([session_controller_ items].empty());
63 EXPECT_FALSE([session_controller_ currentItem]); 63 EXPECT_FALSE([session_controller_ currentItem]);
64 } 64 }
65 65
66 // Tests session controller state after setting a pending index. 66 // Tests session controller state after setting a pending index.
67 TEST_F(CRWSessionControllerTest, SetPendingIndex) { 67 TEST_F(CRWSessionControllerTest, SetPendingIndex) {
68 [session_controller_ 68 [session_controller_
69 addPendingItem:GURL("http://www.example.com") 69 addPendingItem:GURL("http://www.example.com")
70 referrer:web::Referrer() 70 referrer:web::Referrer()
71 transition:ui::PAGE_TRANSITION_TYPED 71 transition:ui::PAGE_TRANSITION_TYPED
72 initiationType:web::NavigationInitiationType::USER_INITIATED]; 72 initiationType:web::NavigationInitiationType::USER_INITIATED
73 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
Eugene But (OOO till 7-30) 2017/04/06 22:53:17 Do you want to use "using web::NavigationManager::
liaoyuke 2017/04/07 15:49:08 Done.
74 INHERIT];
73 [session_controller_ commitPendingItem]; 75 [session_controller_ commitPendingItem];
74 76
75 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 77 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
76 [session_controller_ setPendingItemIndex:0]; 78 [session_controller_ setPendingItemIndex:0];
77 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 79 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
78 EXPECT_EQ([session_controller_ items].back().get(), 80 EXPECT_EQ([session_controller_ items].back().get(),
79 [session_controller_ pendingItem]); 81 [session_controller_ pendingItem]);
80 } 82 }
81 83
82 TEST_F(CRWSessionControllerTest, addPendingItem) { 84 TEST_F(CRWSessionControllerTest, addPendingItem) {
83 [session_controller_ 85 [session_controller_
84 addPendingItem:GURL("http://www.url.com") 86 addPendingItem:GURL("http://www.url.com")
85 referrer:MakeReferrer("http://www.referer.com") 87 referrer:MakeReferrer("http://www.referer.com")
86 transition:ui::PAGE_TRANSITION_TYPED 88 transition:ui::PAGE_TRANSITION_TYPED
87 initiationType:web::NavigationInitiationType::USER_INITIATED]; 89 initiationType:web::NavigationInitiationType::USER_INITIATED
90 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
91 INHERIT];
88 92
89 EXPECT_TRUE([session_controller_ items].empty()); 93 EXPECT_TRUE([session_controller_ items].empty());
90 EXPECT_EQ( 94 EXPECT_EQ(
91 GURL("http://www.url.com/"), 95 GURL("http://www.url.com/"),
92 [session_controller_ currentURL]); 96 [session_controller_ currentURL]);
93 } 97 }
94 98
95 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedItems) { 99 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedItems) {
96 [session_controller_ 100 [session_controller_
97 addPendingItem:GURL("http://www.committed.url.com") 101 addPendingItem:GURL("http://www.committed.url.com")
98 referrer:MakeReferrer("http://www.referer.com") 102 referrer:MakeReferrer("http://www.referer.com")
99 transition:ui::PAGE_TRANSITION_TYPED 103 transition:ui::PAGE_TRANSITION_TYPED
100 initiationType:web::NavigationInitiationType::USER_INITIATED]; 104 initiationType:web::NavigationInitiationType::USER_INITIATED
105 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
106 INHERIT];
101 [session_controller_ commitPendingItem]; 107 [session_controller_ commitPendingItem];
102 108
103 [session_controller_ 109 [session_controller_
104 addPendingItem:GURL("http://www.url.com") 110 addPendingItem:GURL("http://www.url.com")
105 referrer:MakeReferrer("http://www.referer.com") 111 referrer:MakeReferrer("http://www.referer.com")
106 transition:ui::PAGE_TRANSITION_TYPED 112 transition:ui::PAGE_TRANSITION_TYPED
107 initiationType:web::NavigationInitiationType::USER_INITIATED]; 113 initiationType:web::NavigationInitiationType::USER_INITIATED
114 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
115 INHERIT];
108 116
109 EXPECT_EQ(1U, [session_controller_ items].size()); 117 EXPECT_EQ(1U, [session_controller_ items].size());
110 EXPECT_EQ(GURL("http://www.committed.url.com/"), 118 EXPECT_EQ(GURL("http://www.committed.url.com/"),
111 [session_controller_ URLForItemAtIndex:0U]); 119 [session_controller_ URLForItemAtIndex:0U]);
112 EXPECT_EQ( 120 EXPECT_EQ(
113 GURL("http://www.url.com/"), 121 GURL("http://www.url.com/"),
114 [session_controller_ currentURL]); 122 [session_controller_ currentURL]);
115 } 123 }
116 124
117 // Tests that adding a pending item resets pending item index. 125 // Tests that adding a pending item resets pending item index.
118 TEST_F(CRWSessionControllerTest, addPendingItemWithExistingPendingItemIndex) { 126 TEST_F(CRWSessionControllerTest, addPendingItemWithExistingPendingItemIndex) {
119 [session_controller_ 127 [session_controller_
120 addPendingItem:GURL("http://www.example.com") 128 addPendingItem:GURL("http://www.example.com")
121 referrer:web::Referrer() 129 referrer:web::Referrer()
122 transition:ui::PAGE_TRANSITION_TYPED 130 transition:ui::PAGE_TRANSITION_TYPED
123 initiationType:web::NavigationInitiationType::USER_INITIATED]; 131 initiationType:web::NavigationInitiationType::USER_INITIATED
132 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
133 INHERIT];
124 [session_controller_ commitPendingItem]; 134 [session_controller_ commitPendingItem];
125 [session_controller_ 135 [session_controller_
126 addPendingItem:GURL("http://www.example.com/0") 136 addPendingItem:GURL("http://www.example.com/0")
127 referrer:web::Referrer() 137 referrer:web::Referrer()
128 transition:ui::PAGE_TRANSITION_TYPED 138 transition:ui::PAGE_TRANSITION_TYPED
129 initiationType:web::NavigationInitiationType::USER_INITIATED]; 139 initiationType:web::NavigationInitiationType::USER_INITIATED
140 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
141 INHERIT];
130 [session_controller_ commitPendingItem]; 142 [session_controller_ commitPendingItem];
131 143
132 // Set 0 as pending item index. 144 // Set 0 as pending item index.
133 [session_controller_ setPendingItemIndex:0]; 145 [session_controller_ setPendingItemIndex:0];
134 EXPECT_EQ(GURL("http://www.example.com/"), 146 EXPECT_EQ(GURL("http://www.example.com/"),
135 [session_controller_ pendingItem]->GetURL()); 147 [session_controller_ pendingItem]->GetURL());
136 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 148 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
137 149
138 // Add a pending item, which should drop pending navigation index. 150 // Add a pending item, which should drop pending navigation index.
139 [session_controller_ 151 [session_controller_
140 addPendingItem:GURL("http://www.example.com/1") 152 addPendingItem:GURL("http://www.example.com/1")
141 referrer:web::Referrer() 153 referrer:web::Referrer()
142 transition:ui::PAGE_TRANSITION_TYPED 154 transition:ui::PAGE_TRANSITION_TYPED
143 initiationType:web::NavigationInitiationType::USER_INITIATED]; 155 initiationType:web::NavigationInitiationType::USER_INITIATED
156 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
157 INHERIT];
144 EXPECT_EQ(GURL("http://www.example.com/1"), 158 EXPECT_EQ(GURL("http://www.example.com/1"),
145 [session_controller_ pendingItem]->GetURL()); 159 [session_controller_ pendingItem]->GetURL());
146 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 160 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
147 } 161 }
148 162
149 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) { 163 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) {
150 [session_controller_ 164 [session_controller_
151 addPendingItem:GURL("http://www.url.com") 165 addPendingItem:GURL("http://www.url.com")
152 referrer:MakeReferrer("http://www.referer.com") 166 referrer:MakeReferrer("http://www.referer.com")
153 transition:ui::PAGE_TRANSITION_TYPED 167 transition:ui::PAGE_TRANSITION_TYPED
154 initiationType:web::NavigationInitiationType::USER_INITIATED]; 168 initiationType:web::NavigationInitiationType::USER_INITIATED
169 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
170 INHERIT];
155 [session_controller_ 171 [session_controller_
156 addPendingItem:GURL("http://www.another.url.com") 172 addPendingItem:GURL("http://www.another.url.com")
157 referrer:MakeReferrer("http://www.another.referer.com") 173 referrer:MakeReferrer("http://www.another.referer.com")
158 transition:ui::PAGE_TRANSITION_TYPED 174 transition:ui::PAGE_TRANSITION_TYPED
159 initiationType:web::NavigationInitiationType::USER_INITIATED]; 175 initiationType:web::NavigationInitiationType::USER_INITIATED
176 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
177 INHERIT];
160 178
161 EXPECT_TRUE([session_controller_ items].empty()); 179 EXPECT_TRUE([session_controller_ items].empty());
162 EXPECT_EQ( 180 EXPECT_EQ(
163 GURL("http://www.another.url.com/"), 181 GURL("http://www.another.url.com/"),
164 [session_controller_ currentURL]); 182 [session_controller_ currentURL]);
165 } 183 }
166 184
167 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) { 185 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) {
168 [session_controller_ 186 [session_controller_
169 addPendingItem:GURL("http://www.url.com") 187 addPendingItem:GURL("http://www.url.com")
170 referrer:MakeReferrer("http://www.referer.com") 188 referrer:MakeReferrer("http://www.referer.com")
171 transition:ui::PAGE_TRANSITION_TYPED 189 transition:ui::PAGE_TRANSITION_TYPED
172 initiationType:web::NavigationInitiationType::USER_INITIATED]; 190 initiationType:web::NavigationInitiationType::USER_INITIATED
191 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
192 INHERIT];
173 [session_controller_ commitPendingItem]; 193 [session_controller_ commitPendingItem];
174 194
175 EXPECT_EQ(1U, [session_controller_ items].size()); 195 EXPECT_EQ(1U, [session_controller_ items].size());
176 EXPECT_EQ(GURL("http://www.url.com/"), 196 EXPECT_EQ(GURL("http://www.url.com/"),
177 [session_controller_ URLForItemAtIndex:0U]); 197 [session_controller_ URLForItemAtIndex:0U]);
178 EXPECT_EQ([session_controller_ items].front().get(), 198 EXPECT_EQ([session_controller_ items].front().get(),
179 [session_controller_ currentItem]); 199 [session_controller_ currentItem]);
180 } 200 }
181 201
182 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) { 202 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) {
183 [session_controller_ 203 [session_controller_
184 addPendingItem:GURL("http://www.url.com") 204 addPendingItem:GURL("http://www.url.com")
185 referrer:MakeReferrer("http://www.referer.com") 205 referrer:MakeReferrer("http://www.referer.com")
186 transition:ui::PAGE_TRANSITION_TYPED 206 transition:ui::PAGE_TRANSITION_TYPED
187 initiationType:web::NavigationInitiationType::USER_INITIATED]; 207 initiationType:web::NavigationInitiationType::USER_INITIATED
208 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
209 INHERIT];
188 [session_controller_ 210 [session_controller_
189 addPendingItem:GURL("http://www.another.url.com") 211 addPendingItem:GURL("http://www.another.url.com")
190 referrer:MakeReferrer("http://www.another.referer.com") 212 referrer:MakeReferrer("http://www.another.referer.com")
191 transition:ui::PAGE_TRANSITION_TYPED 213 transition:ui::PAGE_TRANSITION_TYPED
192 initiationType:web::NavigationInitiationType::USER_INITIATED]; 214 initiationType:web::NavigationInitiationType::USER_INITIATED
215 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
216 INHERIT];
193 [session_controller_ commitPendingItem]; 217 [session_controller_ commitPendingItem];
194 218
195 EXPECT_EQ(1U, [session_controller_ items].size()); 219 EXPECT_EQ(1U, [session_controller_ items].size());
196 EXPECT_EQ(GURL("http://www.another.url.com/"), 220 EXPECT_EQ(GURL("http://www.another.url.com/"),
197 [session_controller_ URLForItemAtIndex:0U]); 221 [session_controller_ URLForItemAtIndex:0U]);
198 EXPECT_EQ([session_controller_ items].front().get(), 222 EXPECT_EQ([session_controller_ items].front().get(),
199 [session_controller_ currentItem]); 223 [session_controller_ currentItem]);
200 } 224 }
201 225
202 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) { 226 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) {
203 [session_controller_ 227 [session_controller_
204 addPendingItem:GURL("http://www.url.com") 228 addPendingItem:GURL("http://www.url.com")
205 referrer:MakeReferrer("http://www.referer.com") 229 referrer:MakeReferrer("http://www.referer.com")
206 transition:ui::PAGE_TRANSITION_TYPED 230 transition:ui::PAGE_TRANSITION_TYPED
207 initiationType:web::NavigationInitiationType::USER_INITIATED]; 231 initiationType:web::NavigationInitiationType::USER_INITIATED
232 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
233 INHERIT];
208 [session_controller_ commitPendingItem]; 234 [session_controller_ commitPendingItem];
209 235
210 [session_controller_ 236 [session_controller_
211 addPendingItem:GURL("http://www.another.url.com") 237 addPendingItem:GURL("http://www.another.url.com")
212 referrer:MakeReferrer("http://www.another.referer.com") 238 referrer:MakeReferrer("http://www.another.referer.com")
213 transition:ui::PAGE_TRANSITION_TYPED 239 transition:ui::PAGE_TRANSITION_TYPED
214 initiationType:web::NavigationInitiationType::USER_INITIATED]; 240 initiationType:web::NavigationInitiationType::USER_INITIATED
241 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
242 INHERIT];
215 [session_controller_ commitPendingItem]; 243 [session_controller_ commitPendingItem];
216 244
217 EXPECT_EQ(2U, [session_controller_ items].size()); 245 EXPECT_EQ(2U, [session_controller_ items].size());
218 EXPECT_EQ(GURL("http://www.url.com/"), 246 EXPECT_EQ(GURL("http://www.url.com/"),
219 [session_controller_ URLForItemAtIndex:0U]); 247 [session_controller_ URLForItemAtIndex:0U]);
220 EXPECT_EQ(GURL("http://www.another.url.com/"), 248 EXPECT_EQ(GURL("http://www.another.url.com/"),
221 [session_controller_ URLForItemAtIndex:1U]); 249 [session_controller_ URLForItemAtIndex:1U]);
222 EXPECT_EQ([session_controller_ items][1U].get(), 250 EXPECT_EQ([session_controller_ items][1U].get(),
223 [session_controller_ currentItem]); 251 [session_controller_ currentItem]);
224 } 252 }
225 253
226 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) { 254 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) {
227 [session_controller_ 255 [session_controller_
228 addPendingItem:GURL("http://www.url.com") 256 addPendingItem:GURL("http://www.url.com")
229 referrer:MakeReferrer("http://www.referer.com") 257 referrer:MakeReferrer("http://www.referer.com")
230 transition:ui::PAGE_TRANSITION_TYPED 258 transition:ui::PAGE_TRANSITION_TYPED
231 initiationType:web::NavigationInitiationType::USER_INITIATED]; 259 initiationType:web::NavigationInitiationType::USER_INITIATED
260 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
261 INHERIT];
232 [session_controller_ discardNonCommittedItems]; 262 [session_controller_ discardNonCommittedItems];
233 263
234 EXPECT_TRUE([session_controller_ items].empty()); 264 EXPECT_TRUE([session_controller_ items].empty());
235 EXPECT_FALSE([session_controller_ currentItem]); 265 EXPECT_FALSE([session_controller_ currentItem]);
236 } 266 }
237 267
238 // Tests discarding pending item added via |setPendingItemIndex:| call. 268 // Tests discarding pending item added via |setPendingItemIndex:| call.
239 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) { 269 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) {
240 [session_controller_ 270 [session_controller_
241 addPendingItem:GURL("http://www.example.com") 271 addPendingItem:GURL("http://www.example.com")
242 referrer:web::Referrer() 272 referrer:web::Referrer()
243 transition:ui::PAGE_TRANSITION_TYPED 273 transition:ui::PAGE_TRANSITION_TYPED
244 initiationType:web::NavigationInitiationType::USER_INITIATED]; 274 initiationType:web::NavigationInitiationType::USER_INITIATED
275 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
276 INHERIT];
245 [session_controller_ commitPendingItem]; 277 [session_controller_ commitPendingItem];
246 278
247 [session_controller_ setPendingItemIndex:0]; 279 [session_controller_ setPendingItemIndex:0];
248 EXPECT_TRUE([session_controller_ pendingItem]); 280 EXPECT_TRUE([session_controller_ pendingItem]);
249 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 281 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
250 282
251 [session_controller_ discardNonCommittedItems]; 283 [session_controller_ discardNonCommittedItems];
252 EXPECT_FALSE([session_controller_ pendingItem]); 284 EXPECT_FALSE([session_controller_ pendingItem]);
253 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 285 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
254 } 286 }
255 287
256 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) { 288 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) {
257 [session_controller_ 289 [session_controller_
258 addPendingItem:GURL("http://www.url.com") 290 addPendingItem:GURL("http://www.url.com")
259 referrer:MakeReferrer("http://www.referer.com") 291 referrer:MakeReferrer("http://www.referer.com")
260 transition:ui::PAGE_TRANSITION_TYPED 292 transition:ui::PAGE_TRANSITION_TYPED
261 initiationType:web::NavigationInitiationType::USER_INITIATED]; 293 initiationType:web::NavigationInitiationType::USER_INITIATED
294 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
295 INHERIT];
262 [session_controller_ discardNonCommittedItems]; 296 [session_controller_ discardNonCommittedItems];
263 297
264 [session_controller_ 298 [session_controller_
265 addPendingItem:GURL("http://www.another.url.com") 299 addPendingItem:GURL("http://www.another.url.com")
266 referrer:MakeReferrer("http://www.referer.com") 300 referrer:MakeReferrer("http://www.referer.com")
267 transition:ui::PAGE_TRANSITION_TYPED 301 transition:ui::PAGE_TRANSITION_TYPED
268 initiationType:web::NavigationInitiationType::USER_INITIATED]; 302 initiationType:web::NavigationInitiationType::USER_INITIATED
303 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
304 INHERIT];
269 [session_controller_ commitPendingItem]; 305 [session_controller_ commitPendingItem];
270 306
271 EXPECT_EQ(1U, [session_controller_ items].size()); 307 EXPECT_EQ(1U, [session_controller_ items].size());
272 EXPECT_EQ(GURL("http://www.another.url.com/"), 308 EXPECT_EQ(GURL("http://www.another.url.com/"),
273 [session_controller_ URLForItemAtIndex:0U]); 309 [session_controller_ URLForItemAtIndex:0U]);
274 EXPECT_EQ([session_controller_ items].front().get(), 310 EXPECT_EQ([session_controller_ items].front().get(),
275 [session_controller_ currentItem]); 311 [session_controller_ currentItem]);
276 } 312 }
277 313
278 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) { 314 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) {
279 [session_controller_ 315 [session_controller_
280 addPendingItem:GURL("http://www.url.com") 316 addPendingItem:GURL("http://www.url.com")
281 referrer:MakeReferrer("http://www.referer.com") 317 referrer:MakeReferrer("http://www.referer.com")
282 transition:ui::PAGE_TRANSITION_TYPED 318 transition:ui::PAGE_TRANSITION_TYPED
283 initiationType:web::NavigationInitiationType::USER_INITIATED]; 319 initiationType:web::NavigationInitiationType::USER_INITIATED
320 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
321 INHERIT];
284 [session_controller_ commitPendingItem]; 322 [session_controller_ commitPendingItem];
285 323
286 [session_controller_ 324 [session_controller_
287 addPendingItem:GURL("http://www.another.url.com") 325 addPendingItem:GURL("http://www.another.url.com")
288 referrer:MakeReferrer("http://www.referer.com") 326 referrer:MakeReferrer("http://www.referer.com")
289 transition:ui::PAGE_TRANSITION_TYPED 327 transition:ui::PAGE_TRANSITION_TYPED
290 initiationType:web::NavigationInitiationType::USER_INITIATED]; 328 initiationType:web::NavigationInitiationType::USER_INITIATED
329 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
330 INHERIT];
291 [session_controller_ discardNonCommittedItems]; 331 [session_controller_ discardNonCommittedItems];
292 332
293 EXPECT_EQ(1U, [session_controller_ items].size()); 333 EXPECT_EQ(1U, [session_controller_ items].size());
294 EXPECT_EQ(GURL("http://www.url.com/"), 334 EXPECT_EQ(GURL("http://www.url.com/"),
295 [session_controller_ URLForItemAtIndex:0U]); 335 [session_controller_ URLForItemAtIndex:0U]);
296 EXPECT_EQ([session_controller_ items].front().get(), 336 EXPECT_EQ([session_controller_ items].front().get(),
297 [session_controller_ currentItem]); 337 [session_controller_ currentItem]);
298 } 338 }
299 339
300 TEST_F(CRWSessionControllerTest, 340 TEST_F(CRWSessionControllerTest,
301 commitPendingItemWithoutPendingOrCommittedItem) { 341 commitPendingItemWithoutPendingOrCommittedItem) {
302 [session_controller_ commitPendingItem]; 342 [session_controller_ commitPendingItem];
303 343
304 EXPECT_TRUE([session_controller_ items].empty()); 344 EXPECT_TRUE([session_controller_ items].empty());
305 EXPECT_FALSE([session_controller_ currentItem]); 345 EXPECT_FALSE([session_controller_ currentItem]);
306 } 346 }
307 347
308 TEST_F(CRWSessionControllerTest, 348 TEST_F(CRWSessionControllerTest,
309 commitPendingItemWithoutPendingItemWithCommittedItem) { 349 commitPendingItemWithoutPendingItemWithCommittedItem) {
310 // Setup committed item. 350 // Setup committed item.
311 [session_controller_ 351 [session_controller_
312 addPendingItem:GURL("http://www.url.com/") 352 addPendingItem:GURL("http://www.url.com/")
313 referrer:MakeReferrer("http://www.referrer.com/") 353 referrer:MakeReferrer("http://www.referrer.com/")
314 transition:ui::PAGE_TRANSITION_TYPED 354 transition:ui::PAGE_TRANSITION_TYPED
315 initiationType:web::NavigationInitiationType::USER_INITIATED]; 355 initiationType:web::NavigationInitiationType::USER_INITIATED
356 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
357 INHERIT];
316 [session_controller_ commitPendingItem]; 358 [session_controller_ commitPendingItem];
317 359
318 // Commit pending item when there is no such one 360 // Commit pending item when there is no such one
319 [session_controller_ commitPendingItem]; 361 [session_controller_ commitPendingItem];
320 362
321 EXPECT_EQ(1U, [session_controller_ items].size()); 363 EXPECT_EQ(1U, [session_controller_ items].size());
322 EXPECT_EQ([session_controller_ items].front().get(), 364 EXPECT_EQ([session_controller_ items].front().get(),
323 [session_controller_ currentItem]); 365 [session_controller_ currentItem]);
324 } 366 }
325 367
326 // Tests that forward items are discarded after navigation item is committed. 368 // Tests that forward items are discarded after navigation item is committed.
327 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) { 369 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) {
328 // Make 3 items. 370 // Make 3 items.
329 [session_controller_ 371 [session_controller_
330 addPendingItem:GURL("http://www.example.com/0") 372 addPendingItem:GURL("http://www.example.com/0")
331 referrer:MakeReferrer("http://www.example.com/a") 373 referrer:MakeReferrer("http://www.example.com/a")
332 transition:ui::PAGE_TRANSITION_LINK 374 transition:ui::PAGE_TRANSITION_LINK
333 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 375 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
376 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
377 INHERIT];
334 [session_controller_ commitPendingItem]; 378 [session_controller_ commitPendingItem];
335 [session_controller_ 379 [session_controller_
336 addPendingItem:GURL("http://www.example.com/1") 380 addPendingItem:GURL("http://www.example.com/1")
337 referrer:MakeReferrer("http://www.example.com/b") 381 referrer:MakeReferrer("http://www.example.com/b")
338 transition:ui::PAGE_TRANSITION_LINK 382 transition:ui::PAGE_TRANSITION_LINK
339 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 383 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
384 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
385 INHERIT];
340 [session_controller_ commitPendingItem]; 386 [session_controller_ commitPendingItem];
341 [session_controller_ 387 [session_controller_
342 addPendingItem:GURL("http://www.example.com/2") 388 addPendingItem:GURL("http://www.example.com/2")
343 referrer:MakeReferrer("http://www.example.com/c") 389 referrer:MakeReferrer("http://www.example.com/c")
344 transition:ui::PAGE_TRANSITION_LINK 390 transition:ui::PAGE_TRANSITION_LINK
345 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 391 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
392 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
393 INHERIT];
346 [session_controller_ commitPendingItem]; 394 [session_controller_ commitPendingItem];
347 395
348 // Go back to the first item. 396 // Go back to the first item.
349 [session_controller_ goToItemAtIndex:0]; 397 [session_controller_ goToItemAtIndex:0];
350 398
351 // Create and commit a new pending item. 399 // Create and commit a new pending item.
352 [session_controller_ 400 [session_controller_
353 addPendingItem:GURL("http://www.example.com/2") 401 addPendingItem:GURL("http://www.example.com/2")
354 referrer:MakeReferrer("http://www.example.com/c") 402 referrer:MakeReferrer("http://www.example.com/c")
355 transition:ui::PAGE_TRANSITION_LINK 403 transition:ui::PAGE_TRANSITION_LINK
356 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 404 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
405 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
406 INHERIT];
357 [session_controller_ commitPendingItem]; 407 [session_controller_ commitPendingItem];
358 408
359 // All forward items should go away. 409 // All forward items should go away.
360 EXPECT_EQ(2U, [session_controller_ items].size()); 410 EXPECT_EQ(2U, [session_controller_ items].size());
361 EXPECT_EQ(0U, [session_controller_ forwardItems].size()); 411 EXPECT_EQ(0U, [session_controller_ forwardItems].size());
362 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]); 412 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]);
363 ASSERT_EQ(0, [session_controller_ previousItemIndex]); 413 ASSERT_EQ(0, [session_controller_ previousItemIndex]);
364 } 414 }
365 415
366 // Tests committing pending item index from the middle. 416 // Tests committing pending item index from the middle.
367 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) { 417 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) {
368 [session_controller_ 418 [session_controller_
369 addPendingItem:GURL("http://www.example.com/0") 419 addPendingItem:GURL("http://www.example.com/0")
370 referrer:web::Referrer() 420 referrer:web::Referrer()
371 transition:ui::PAGE_TRANSITION_TYPED 421 transition:ui::PAGE_TRANSITION_TYPED
372 initiationType:web::NavigationInitiationType::USER_INITIATED]; 422 initiationType:web::NavigationInitiationType::USER_INITIATED
423 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
424 INHERIT];
373 [session_controller_ commitPendingItem]; 425 [session_controller_ commitPendingItem];
374 [session_controller_ 426 [session_controller_
375 addPendingItem:GURL("http://www.example.com/1") 427 addPendingItem:GURL("http://www.example.com/1")
376 referrer:web::Referrer() 428 referrer:web::Referrer()
377 transition:ui::PAGE_TRANSITION_TYPED 429 transition:ui::PAGE_TRANSITION_TYPED
378 initiationType:web::NavigationInitiationType::USER_INITIATED]; 430 initiationType:web::NavigationInitiationType::USER_INITIATED
431 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
432 INHERIT];
379 [session_controller_ commitPendingItem]; 433 [session_controller_ commitPendingItem];
380 [session_controller_ 434 [session_controller_
381 addPendingItem:GURL("http://www.example.com/2") 435 addPendingItem:GURL("http://www.example.com/2")
382 referrer:web::Referrer() 436 referrer:web::Referrer()
383 transition:ui::PAGE_TRANSITION_TYPED 437 transition:ui::PAGE_TRANSITION_TYPED
384 initiationType:web::NavigationInitiationType::USER_INITIATED]; 438 initiationType:web::NavigationInitiationType::USER_INITIATED
439 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
440 INHERIT];
385 [session_controller_ commitPendingItem]; 441 [session_controller_ commitPendingItem];
386 ASSERT_EQ(3U, [session_controller_ items].size()); 442 ASSERT_EQ(3U, [session_controller_ items].size());
387 443
388 // Go to the middle, and commit first pending item index. 444 // Go to the middle, and commit first pending item index.
389 [session_controller_ goToItemAtIndex:1]; 445 [session_controller_ goToItemAtIndex:1];
390 [session_controller_ setPendingItemIndex:0]; 446 [session_controller_ setPendingItemIndex:0];
391 ASSERT_EQ(0, [session_controller_ pendingItemIndex]); 447 ASSERT_EQ(0, [session_controller_ pendingItemIndex]);
392 web::NavigationItem* pending_item = [session_controller_ pendingItem]; 448 web::NavigationItem* pending_item = [session_controller_ pendingItem];
393 ASSERT_TRUE(pending_item); 449 ASSERT_TRUE(pending_item);
394 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]); 450 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]);
(...skipping 15 matching lines...) Expand all
410 [session_controller_ discardNonCommittedItems]; 466 [session_controller_ discardNonCommittedItems];
411 467
412 EXPECT_TRUE([session_controller_ items].empty()); 468 EXPECT_TRUE([session_controller_ items].empty());
413 EXPECT_FALSE([session_controller_ currentItem]); 469 EXPECT_FALSE([session_controller_ currentItem]);
414 } 470 }
415 471
416 TEST_F(CRWSessionControllerTest, 472 TEST_F(CRWSessionControllerTest,
417 DiscardPendingItemWithoutPendingItemWithCommittedItem) { 473 DiscardPendingItemWithoutPendingItemWithCommittedItem) {
418 // Setup committed item 474 // Setup committed item
419 [session_controller_ 475 [session_controller_
420 addPendingItem:GURL("http://www.url.com") 476 addPendingItem:GURL("http://www.url.com")
421 referrer:MakeReferrer("http://www.referer.com") 477 referrer:MakeReferrer("http://www.referer.com")
422 transition:ui::PAGE_TRANSITION_TYPED 478 transition:ui::PAGE_TRANSITION_TYPED
423 initiationType:web::NavigationInitiationType::USER_INITIATED]; 479 initiationType:web::NavigationInitiationType::USER_INITIATED
480 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
481 INHERIT];
424 [session_controller_ commitPendingItem]; 482 [session_controller_ commitPendingItem];
425 483
426 // Discard noncommitted items when there is no such one 484 // Discard noncommitted items when there is no such one
427 [session_controller_ discardNonCommittedItems]; 485 [session_controller_ discardNonCommittedItems];
428 486
429 EXPECT_EQ(1U, [session_controller_ items].size()); 487 EXPECT_EQ(1U, [session_controller_ items].size());
430 EXPECT_EQ([session_controller_ items].front().get(), 488 EXPECT_EQ([session_controller_ items].front().get(),
431 [session_controller_ currentItem]); 489 [session_controller_ currentItem]);
432 } 490 }
433 491
434 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingItem) { 492 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingItem) {
435 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 493 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
436 [session_controller_ commitPendingItem]; 494 [session_controller_ commitPendingItem];
437 495
438 EXPECT_TRUE([session_controller_ items].empty()); 496 EXPECT_TRUE([session_controller_ items].empty());
439 EXPECT_FALSE([session_controller_ currentItem]); 497 EXPECT_FALSE([session_controller_ currentItem]);
440 } 498 }
441 499
442 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingItem) { 500 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingItem) {
443 [session_controller_ 501 [session_controller_
444 addPendingItem:GURL("http://www.url.com") 502 addPendingItem:GURL("http://www.url.com")
445 referrer:MakeReferrer("http://www.referer.com") 503 referrer:MakeReferrer("http://www.referer.com")
446 transition:ui::PAGE_TRANSITION_TYPED 504 transition:ui::PAGE_TRANSITION_TYPED
447 initiationType:web::NavigationInitiationType::USER_INITIATED]; 505 initiationType:web::NavigationInitiationType::USER_INITIATED
506 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
507 INHERIT];
448 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 508 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
449 509
450 EXPECT_EQ( 510 EXPECT_EQ(
451 GURL("http://www.another.url.com/"), 511 GURL("http://www.another.url.com/"),
452 [session_controller_ currentURL]); 512 [session_controller_ currentURL]);
453 } 513 }
454 514
455 TEST_F(CRWSessionControllerTest, 515 TEST_F(CRWSessionControllerTest,
456 updatePendingItemWithPendingItemAlreadyCommited) { 516 updatePendingItemWithPendingItemAlreadyCommited) {
457 [session_controller_ 517 [session_controller_
458 addPendingItem:GURL("http://www.url.com") 518 addPendingItem:GURL("http://www.url.com")
459 referrer:MakeReferrer("http://www.referer.com") 519 referrer:MakeReferrer("http://www.referer.com")
460 transition:ui::PAGE_TRANSITION_TYPED 520 transition:ui::PAGE_TRANSITION_TYPED
461 initiationType:web::NavigationInitiationType::USER_INITIATED]; 521 initiationType:web::NavigationInitiationType::USER_INITIATED
522 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
523 INHERIT];
462 [session_controller_ commitPendingItem]; 524 [session_controller_ commitPendingItem];
463 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 525 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
464 [session_controller_ commitPendingItem]; 526 [session_controller_ commitPendingItem];
465 527
466 EXPECT_EQ(1U, [session_controller_ items].size()); 528 EXPECT_EQ(1U, [session_controller_ items].size());
467 EXPECT_EQ(GURL("http://www.url.com/"), 529 EXPECT_EQ(GURL("http://www.url.com/"),
468 [session_controller_ URLForItemAtIndex:0U]); 530 [session_controller_ URLForItemAtIndex:0U]);
469 EXPECT_EQ([session_controller_ items].front().get(), 531 EXPECT_EQ([session_controller_ items].front().get(),
470 [session_controller_ currentItem]); 532 [session_controller_ currentItem]);
471 } 533 }
472 534
473 // Tests inserting session controller state. 535 // Tests inserting session controller state.
474 TEST_F(CRWSessionControllerTest, CopyState) { 536 TEST_F(CRWSessionControllerTest, CopyState) {
475 // Add 1 committed and 1 pending item to target controller. 537 // Add 1 committed and 1 pending item to target controller.
476 [session_controller_ 538 [session_controller_
477 addPendingItem:GURL("http://www.url.com/2") 539 addPendingItem:GURL("http://www.url.com/2")
478 referrer:web::Referrer() 540 referrer:web::Referrer()
479 transition:ui::PAGE_TRANSITION_TYPED 541 transition:ui::PAGE_TRANSITION_TYPED
480 initiationType:web::NavigationInitiationType::USER_INITIATED]; 542 initiationType:web::NavigationInitiationType::USER_INITIATED
543 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
544 INHERIT];
481 [session_controller_ commitPendingItem]; 545 [session_controller_ commitPendingItem];
482 [session_controller_ 546 [session_controller_
483 addPendingItem:GURL("http://www.url.com/3") 547 addPendingItem:GURL("http://www.url.com/3")
484 referrer:web::Referrer() 548 referrer:web::Referrer()
485 transition:ui::PAGE_TRANSITION_TYPED 549 transition:ui::PAGE_TRANSITION_TYPED
486 initiationType:web::NavigationInitiationType::USER_INITIATED]; 550 initiationType:web::NavigationInitiationType::USER_INITIATED
551 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
552 INHERIT];
487 553
488 // Create source session controller with 1 committed item. 554 // Create source session controller with 1 committed item.
489 base::scoped_nsobject<CRWSessionController> other_session_controller( 555 base::scoped_nsobject<CRWSessionController> other_session_controller(
490 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 556 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
491 [other_session_controller 557 [other_session_controller
492 addPendingItem:GURL("http://www.url.com/0") 558 addPendingItem:GURL("http://www.url.com/0")
493 referrer:web::Referrer() 559 referrer:web::Referrer()
494 transition:ui::PAGE_TRANSITION_TYPED 560 transition:ui::PAGE_TRANSITION_TYPED
495 initiationType:web::NavigationInitiationType::USER_INITIATED]; 561 initiationType:web::NavigationInitiationType::USER_INITIATED
562 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
563 INHERIT];
496 [other_session_controller commitPendingItem]; 564 [other_session_controller commitPendingItem];
497 [other_session_controller 565 [other_session_controller
498 addPendingItem:GURL("http://www.url.com/1") 566 addPendingItem:GURL("http://www.url.com/1")
499 referrer:web::Referrer() 567 referrer:web::Referrer()
500 transition:ui::PAGE_TRANSITION_TYPED 568 transition:ui::PAGE_TRANSITION_TYPED
501 initiationType:web::NavigationInitiationType::USER_INITIATED]; 569 initiationType:web::NavigationInitiationType::USER_INITIATED
570 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
571 INHERIT];
502 572
503 // Insert and verify the state of target session controller. 573 // Insert and verify the state of target session controller.
504 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]); 574 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]);
505 [session_controller_ 575 [session_controller_
506 copyStateFromSessionControllerAndPrune:other_session_controller.get()]; 576 copyStateFromSessionControllerAndPrune:other_session_controller.get()];
507 577
508 EXPECT_EQ(2U, [session_controller_ items].size()); 578 EXPECT_EQ(2U, [session_controller_ items].size());
509 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]); 579 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]);
510 EXPECT_EQ(-1, [session_controller_ previousItemIndex]); 580 EXPECT_EQ(-1, [session_controller_ previousItemIndex]);
511 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 581 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
512 582
513 EXPECT_EQ(GURL("http://www.url.com/0"), 583 EXPECT_EQ(GURL("http://www.url.com/0"),
514 [session_controller_ URLForItemAtIndex:0]); 584 [session_controller_ URLForItemAtIndex:0]);
515 EXPECT_EQ(GURL("http://www.url.com/2"), 585 EXPECT_EQ(GURL("http://www.url.com/2"),
516 [session_controller_ URLForItemAtIndex:1]); 586 [session_controller_ URLForItemAtIndex:1]);
517 EXPECT_EQ(GURL("http://www.url.com/3"), 587 EXPECT_EQ(GURL("http://www.url.com/3"),
518 [session_controller_ pendingItem]->GetURL()); 588 [session_controller_ pendingItem]->GetURL());
519 } 589 }
520 590
521 // Tests inserting session controller state from empty session controller. 591 // Tests inserting session controller state from empty session controller.
522 TEST_F(CRWSessionControllerTest, CopyStateFromEmptySessionController) { 592 TEST_F(CRWSessionControllerTest, CopyStateFromEmptySessionController) {
523 // Add 2 committed items to target controller. 593 // Add 2 committed items to target controller.
524 [session_controller_ 594 [session_controller_
525 addPendingItem:GURL("http://www.url.com/0") 595 addPendingItem:GURL("http://www.url.com/0")
526 referrer:web::Referrer() 596 referrer:web::Referrer()
527 transition:ui::PAGE_TRANSITION_TYPED 597 transition:ui::PAGE_TRANSITION_TYPED
528 initiationType:web::NavigationInitiationType::USER_INITIATED]; 598 initiationType:web::NavigationInitiationType::USER_INITIATED
599 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
600 INHERIT];
529 [session_controller_ commitPendingItem]; 601 [session_controller_ commitPendingItem];
530 [session_controller_ 602 [session_controller_
531 addPendingItem:GURL("http://www.url.com/1") 603 addPendingItem:GURL("http://www.url.com/1")
532 referrer:web::Referrer() 604 referrer:web::Referrer()
533 transition:ui::PAGE_TRANSITION_TYPED 605 transition:ui::PAGE_TRANSITION_TYPED
534 initiationType:web::NavigationInitiationType::USER_INITIATED]; 606 initiationType:web::NavigationInitiationType::USER_INITIATED
607 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
608 INHERIT];
535 [session_controller_ commitPendingItem]; 609 [session_controller_ commitPendingItem];
536 610
537 // Create empty source session controller. 611 // Create empty source session controller.
538 base::scoped_nsobject<CRWSessionController> other_session_controller( 612 base::scoped_nsobject<CRWSessionController> other_session_controller(
539 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 613 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
540 614
541 // Insert and verify the state of target session controller. 615 // Insert and verify the state of target session controller.
542 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]); 616 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]);
543 [session_controller_ 617 [session_controller_
544 copyStateFromSessionControllerAndPrune:other_session_controller.get()]; 618 copyStateFromSessionControllerAndPrune:other_session_controller.get()];
(...skipping 10 matching lines...) Expand all
555 629
556 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op when the 630 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op when the
557 // receiver has no last committed item. 631 // receiver has no last committed item.
558 TEST_F(CRWSessionControllerTest, CopyStateToEmptySessionController) { 632 TEST_F(CRWSessionControllerTest, CopyStateToEmptySessionController) {
559 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]); 633 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]);
560 634
561 // Create source session controller with 1 committed item. 635 // Create source session controller with 1 committed item.
562 base::scoped_nsobject<CRWSessionController> other_session_controller( 636 base::scoped_nsobject<CRWSessionController> other_session_controller(
563 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 637 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
564 [other_session_controller 638 [other_session_controller
565 addPendingItem:GURL("http://www.url.com/0") 639 addPendingItem:GURL("http://www.url.com/0")
566 referrer:web::Referrer() 640 referrer:web::Referrer()
567 transition:ui::PAGE_TRANSITION_TYPED 641 transition:ui::PAGE_TRANSITION_TYPED
568 initiationType:web::NavigationInitiationType::USER_INITIATED]; 642 initiationType:web::NavigationInitiationType::USER_INITIATED
643 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
644 INHERIT];
569 [other_session_controller commitPendingItem]; 645 [other_session_controller commitPendingItem];
570 [other_session_controller 646 [other_session_controller
571 addPendingItem:GURL("http://www.url.com/1") 647 addPendingItem:GURL("http://www.url.com/1")
572 referrer:web::Referrer() 648 referrer:web::Referrer()
573 transition:ui::PAGE_TRANSITION_TYPED 649 transition:ui::PAGE_TRANSITION_TYPED
574 initiationType:web::NavigationInitiationType::USER_INITIATED]; 650 initiationType:web::NavigationInitiationType::USER_INITIATED
651 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
652 INHERIT];
575 653
576 // Attempt to copy |other_session_controller|'s state and verify that 654 // Attempt to copy |other_session_controller|'s state and verify that
577 // |session_controller_| is unchanged. 655 // |session_controller_| is unchanged.
578 [session_controller_ 656 [session_controller_
579 copyStateFromSessionControllerAndPrune:other_session_controller]; 657 copyStateFromSessionControllerAndPrune:other_session_controller];
580 EXPECT_TRUE([session_controller_ items].empty()); 658 EXPECT_TRUE([session_controller_ items].empty());
581 EXPECT_EQ(-1, [session_controller_ lastCommittedItemIndex]); 659 EXPECT_EQ(-1, [session_controller_ lastCommittedItemIndex]);
582 EXPECT_EQ(-1, [session_controller_ previousItemIndex]); 660 EXPECT_EQ(-1, [session_controller_ previousItemIndex]);
583 EXPECT_FALSE([session_controller_ currentItem]); 661 EXPECT_FALSE([session_controller_ currentItem]);
584 EXPECT_FALSE([session_controller_ pendingItem]); 662 EXPECT_FALSE([session_controller_ pendingItem]);
585 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 663 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
586 } 664 }
587 665
588 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op during a 666 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op during a
589 // pending history navigation. 667 // pending history navigation.
590 TEST_F(CRWSessionControllerTest, CopyStateDuringPendingHistoryNavigation) { 668 TEST_F(CRWSessionControllerTest, CopyStateDuringPendingHistoryNavigation) {
591 // Add 1 committed and 1 pending item to target controller. 669 // Add 1 committed and 1 pending item to target controller.
592 [session_controller_ 670 [session_controller_
593 addPendingItem:GURL("http://www.url.com/1") 671 addPendingItem:GURL("http://www.url.com/1")
594 referrer:web::Referrer() 672 referrer:web::Referrer()
595 transition:ui::PAGE_TRANSITION_TYPED 673 transition:ui::PAGE_TRANSITION_TYPED
596 initiationType:web::NavigationInitiationType::USER_INITIATED]; 674 initiationType:web::NavigationInitiationType::USER_INITIATED
675 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
676 INHERIT];
597 [session_controller_ commitPendingItem]; 677 [session_controller_ commitPendingItem];
598 [session_controller_ 678 [session_controller_
599 addPendingItem:GURL("http://www.url.com/2") 679 addPendingItem:GURL("http://www.url.com/2")
600 referrer:web::Referrer() 680 referrer:web::Referrer()
601 transition:ui::PAGE_TRANSITION_TYPED 681 transition:ui::PAGE_TRANSITION_TYPED
602 initiationType:web::NavigationInitiationType::USER_INITIATED]; 682 initiationType:web::NavigationInitiationType::USER_INITIATED
683 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
684 INHERIT];
603 [session_controller_ commitPendingItem]; 685 [session_controller_ commitPendingItem];
604 686
605 // Create source session controller with 1 committed item. 687 // Create source session controller with 1 committed item.
606 base::scoped_nsobject<CRWSessionController> other_session_controller( 688 base::scoped_nsobject<CRWSessionController> other_session_controller(
607 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 689 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
608 [other_session_controller 690 [other_session_controller
609 addPendingItem:GURL("http://www.url.com/0") 691 addPendingItem:GURL("http://www.url.com/0")
610 referrer:web::Referrer() 692 referrer:web::Referrer()
611 transition:ui::PAGE_TRANSITION_TYPED 693 transition:ui::PAGE_TRANSITION_TYPED
612 initiationType:web::NavigationInitiationType::USER_INITIATED]; 694 initiationType:web::NavigationInitiationType::USER_INITIATED
695 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
696 INHERIT];
613 [other_session_controller commitPendingItem]; 697 [other_session_controller commitPendingItem];
614 [other_session_controller 698 [other_session_controller
615 addPendingItem:GURL("http://www.url.com/1") 699 addPendingItem:GURL("http://www.url.com/1")
616 referrer:web::Referrer() 700 referrer:web::Referrer()
617 transition:ui::PAGE_TRANSITION_TYPED 701 transition:ui::PAGE_TRANSITION_TYPED
618 initiationType:web::NavigationInitiationType::USER_INITIATED]; 702 initiationType:web::NavigationInitiationType::USER_INITIATED
703 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
704 INHERIT];
619 705
620 // Set the pending item index to the first item. 706 // Set the pending item index to the first item.
621 [session_controller_ setPendingItemIndex:0]; 707 [session_controller_ setPendingItemIndex:0];
622 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]); 708 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]);
623 709
624 // Attempt to copy |other_session_controller|'s state and verify that 710 // Attempt to copy |other_session_controller|'s state and verify that
625 // |session_controller_| is unchanged. 711 // |session_controller_| is unchanged.
626 [session_controller_ 712 [session_controller_
627 copyStateFromSessionControllerAndPrune:other_session_controller]; 713 copyStateFromSessionControllerAndPrune:other_session_controller];
628 EXPECT_EQ(2U, [session_controller_ items].size()); 714 EXPECT_EQ(2U, [session_controller_ items].size());
629 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]); 715 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]);
630 EXPECT_EQ(0, [session_controller_ previousItemIndex]); 716 EXPECT_EQ(0, [session_controller_ previousItemIndex]);
631 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 717 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
632 EXPECT_TRUE([session_controller_ pendingItem]); 718 EXPECT_TRUE([session_controller_ pendingItem]);
633 EXPECT_EQ([session_controller_ previousItem], 719 EXPECT_EQ([session_controller_ previousItem],
634 [session_controller_ pendingItem]); 720 [session_controller_ pendingItem]);
635 } 721 }
636 722
637 // Tests that |-copyStateFromSessionControllerAndPrune:| is a when a transient 723 // Tests that |-copyStateFromSessionControllerAndPrune:| is a when a transient
638 // NavigationItem exists. 724 // NavigationItem exists.
639 TEST_F(CRWSessionControllerTest, CopyStateWithTransientItem) { 725 TEST_F(CRWSessionControllerTest, CopyStateWithTransientItem) {
640 // Add 1 committed and 1 pending item to target controller. 726 // Add 1 committed and 1 pending item to target controller.
641 [session_controller_ 727 [session_controller_
642 addPendingItem:GURL("http://www.url.com/1") 728 addPendingItem:GURL("http://www.url.com/1")
643 referrer:web::Referrer() 729 referrer:web::Referrer()
644 transition:ui::PAGE_TRANSITION_TYPED 730 transition:ui::PAGE_TRANSITION_TYPED
645 initiationType:web::NavigationInitiationType::USER_INITIATED]; 731 initiationType:web::NavigationInitiationType::USER_INITIATED
732 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
733 INHERIT];
646 [session_controller_ commitPendingItem]; 734 [session_controller_ commitPendingItem];
647 GURL second_url = GURL("http://www.url.com/2"); 735 GURL second_url = GURL("http://www.url.com/2");
648 [session_controller_ 736 [session_controller_
649 addPendingItem:second_url 737 addPendingItem:second_url
650 referrer:web::Referrer() 738 referrer:web::Referrer()
651 transition:ui::PAGE_TRANSITION_TYPED 739 transition:ui::PAGE_TRANSITION_TYPED
652 initiationType:web::NavigationInitiationType::USER_INITIATED]; 740 initiationType:web::NavigationInitiationType::USER_INITIATED
741 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
742 INHERIT];
653 [session_controller_ addTransientItemWithURL:second_url]; 743 [session_controller_ addTransientItemWithURL:second_url];
654 744
655 // Create source session controller with 1 committed item. 745 // Create source session controller with 1 committed item.
656 base::scoped_nsobject<CRWSessionController> other_session_controller( 746 base::scoped_nsobject<CRWSessionController> other_session_controller(
657 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 747 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
658 [other_session_controller 748 [other_session_controller
659 addPendingItem:GURL("http://www.url.com/0") 749 addPendingItem:GURL("http://www.url.com/0")
660 referrer:web::Referrer() 750 referrer:web::Referrer()
661 transition:ui::PAGE_TRANSITION_TYPED 751 transition:ui::PAGE_TRANSITION_TYPED
662 initiationType:web::NavigationInitiationType::USER_INITIATED]; 752 initiationType:web::NavigationInitiationType::USER_INITIATED
753 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
754 INHERIT];
663 [other_session_controller commitPendingItem]; 755 [other_session_controller commitPendingItem];
664 [other_session_controller 756 [other_session_controller
665 addPendingItem:GURL("http://www.url.com/1") 757 addPendingItem:GURL("http://www.url.com/1")
666 referrer:web::Referrer() 758 referrer:web::Referrer()
667 transition:ui::PAGE_TRANSITION_TYPED 759 transition:ui::PAGE_TRANSITION_TYPED
668 initiationType:web::NavigationInitiationType::USER_INITIATED]; 760 initiationType:web::NavigationInitiationType::USER_INITIATED
761 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
762 INHERIT];
669 763
670 // Attempt to copy |other_session_controller|'s state and verify that 764 // Attempt to copy |other_session_controller|'s state and verify that
671 // |session_controller_| is unchanged. 765 // |session_controller_| is unchanged.
672 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]); 766 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]);
673 [session_controller_ 767 [session_controller_
674 copyStateFromSessionControllerAndPrune:other_session_controller]; 768 copyStateFromSessionControllerAndPrune:other_session_controller];
675 EXPECT_EQ(1U, [session_controller_ items].size()); 769 EXPECT_EQ(1U, [session_controller_ items].size());
676 EXPECT_EQ(0, [session_controller_ lastCommittedItemIndex]); 770 EXPECT_EQ(0, [session_controller_ lastCommittedItemIndex]);
677 EXPECT_EQ(-1, [session_controller_ previousItemIndex]); 771 EXPECT_EQ(-1, [session_controller_ previousItemIndex]);
678 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 772 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 EXPECT_EQ(controller.get().previousItemIndex, -1); 837 EXPECT_EQ(controller.get().previousItemIndex, -1);
744 // Sanity check the current item, the NavigationItem unit test will ensure 838 // Sanity check the current item, the NavigationItem unit test will ensure
745 // the entire object is created properly. 839 // the entire object is created properly.
746 EXPECT_EQ([controller currentItem]->GetURL(), GURL("http://www.yahoo.com")); 840 EXPECT_EQ([controller currentItem]->GetURL(), GURL("http://www.yahoo.com"));
747 } 841 }
748 842
749 // Tests index of previous navigation item. 843 // Tests index of previous navigation item.
750 TEST_F(CRWSessionControllerTest, PreviousNavigationItem) { 844 TEST_F(CRWSessionControllerTest, PreviousNavigationItem) {
751 EXPECT_EQ(session_controller_.get().previousItemIndex, -1); 845 EXPECT_EQ(session_controller_.get().previousItemIndex, -1);
752 [session_controller_ 846 [session_controller_
753 addPendingItem:GURL("http://www.url.com") 847 addPendingItem:GURL("http://www.url.com")
754 referrer:MakeReferrer("http://www.referer.com") 848 referrer:MakeReferrer("http://www.referer.com")
755 transition:ui::PAGE_TRANSITION_TYPED 849 transition:ui::PAGE_TRANSITION_TYPED
756 initiationType:web::NavigationInitiationType::USER_INITIATED]; 850 initiationType:web::NavigationInitiationType::USER_INITIATED
851 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
852 INHERIT];
757 [session_controller_ commitPendingItem]; 853 [session_controller_ commitPendingItem];
758 EXPECT_EQ(session_controller_.get().previousItemIndex, -1); 854 EXPECT_EQ(session_controller_.get().previousItemIndex, -1);
759 [session_controller_ 855 [session_controller_
760 addPendingItem:GURL("http://www.url1.com") 856 addPendingItem:GURL("http://www.url1.com")
761 referrer:MakeReferrer("http://www.referer.com") 857 referrer:MakeReferrer("http://www.referer.com")
762 transition:ui::PAGE_TRANSITION_TYPED 858 transition:ui::PAGE_TRANSITION_TYPED
763 initiationType:web::NavigationInitiationType::USER_INITIATED]; 859 initiationType:web::NavigationInitiationType::USER_INITIATED
860 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
861 INHERIT];
764 [session_controller_ commitPendingItem]; 862 [session_controller_ commitPendingItem];
765 EXPECT_EQ(session_controller_.get().previousItemIndex, 0); 863 EXPECT_EQ(session_controller_.get().previousItemIndex, 0);
766 [session_controller_ 864 [session_controller_
767 addPendingItem:GURL("http://www.url2.com") 865 addPendingItem:GURL("http://www.url2.com")
768 referrer:MakeReferrer("http://www.referer.com") 866 referrer:MakeReferrer("http://www.referer.com")
769 transition:ui::PAGE_TRANSITION_TYPED 867 transition:ui::PAGE_TRANSITION_TYPED
770 initiationType:web::NavigationInitiationType::USER_INITIATED]; 868 initiationType:web::NavigationInitiationType::USER_INITIATED
869 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
870 INHERIT];
771 [session_controller_ commitPendingItem]; 871 [session_controller_ commitPendingItem];
772 872
773 EXPECT_EQ(session_controller_.get().previousItemIndex, 1); 873 EXPECT_EQ(session_controller_.get().previousItemIndex, 1);
774 874
775 [session_controller_ goToItemAtIndex:1]; 875 [session_controller_ goToItemAtIndex:1];
776 EXPECT_EQ(session_controller_.get().previousItemIndex, 2); 876 EXPECT_EQ(session_controller_.get().previousItemIndex, 2);
777 877
778 [session_controller_ goToItemAtIndex:0]; 878 [session_controller_ goToItemAtIndex:0];
779 EXPECT_EQ(session_controller_.get().previousItemIndex, 1); 879 EXPECT_EQ(session_controller_.get().previousItemIndex, 1);
780 880
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 replacedItem = [controller currentItem]; 1006 replacedItem = [controller currentItem];
907 EXPECT_EQ(expectedCount, controller.get().items.size()); 1007 EXPECT_EQ(expectedCount, controller.get().items.size());
908 EXPECT_EQ(replacePageGurl2, replacedItem->GetURL()); 1008 EXPECT_EQ(replacePageGurl2, replacedItem->GetURL());
909 EXPECT_FALSE(replacedItem->IsCreatedFromPushState()); 1009 EXPECT_FALSE(replacedItem->IsCreatedFromPushState());
910 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject()); 1010 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject());
911 EXPECT_EQ(GURL("http://www.starturl.com/"), replacedItem->GetReferrer().url); 1011 EXPECT_EQ(GURL("http://www.starturl.com/"), replacedItem->GetReferrer().url);
912 } 1012 }
913 1013
914 TEST_F(CRWSessionControllerTest, TestBackwardForwardItems) { 1014 TEST_F(CRWSessionControllerTest, TestBackwardForwardItems) {
915 [session_controller_ 1015 [session_controller_
916 addPendingItem:GURL("http://www.example.com/0") 1016 addPendingItem:GURL("http://www.example.com/0")
917 referrer:MakeReferrer("http://www.example.com/a") 1017 referrer:MakeReferrer("http://www.example.com/a")
918 transition:ui::PAGE_TRANSITION_LINK 1018 transition:ui::PAGE_TRANSITION_LINK
919 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1019 initiationType:web::NavigationInitiationType::USER_INITIATED
1020 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1021 INHERIT];
920 [session_controller_ commitPendingItem]; 1022 [session_controller_ commitPendingItem];
921 [session_controller_ 1023 [session_controller_
922 addPendingItem:GURL("http://www.example.com/1") 1024 addPendingItem:GURL("http://www.example.com/1")
923 referrer:MakeReferrer("http://www.example.com/b") 1025 referrer:MakeReferrer("http://www.example.com/b")
924 transition:ui::PAGE_TRANSITION_LINK 1026 transition:ui::PAGE_TRANSITION_LINK
925 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1027 initiationType:web::NavigationInitiationType::USER_INITIATED
1028 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1029 INHERIT];
926 [session_controller_ commitPendingItem]; 1030 [session_controller_ commitPendingItem];
927 [session_controller_ 1031 [session_controller_
928 addPendingItem:GURL("http://www.example.com/redirect") 1032 addPendingItem:GURL("http://www.example.com/redirect")
929 referrer:MakeReferrer("http://www.example.com/r") 1033 referrer:MakeReferrer("http://www.example.com/r")
930 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1034 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
931 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1035 initiationType:web::NavigationInitiationType::USER_INITIATED
1036 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1037 INHERIT];
932 [session_controller_ commitPendingItem]; 1038 [session_controller_ commitPendingItem];
933 [session_controller_ 1039 [session_controller_
934 addPendingItem:GURL("http://www.example.com/2") 1040 addPendingItem:GURL("http://www.example.com/2")
935 referrer:MakeReferrer("http://www.example.com/c") 1041 referrer:MakeReferrer("http://www.example.com/c")
936 transition:ui::PAGE_TRANSITION_LINK 1042 transition:ui::PAGE_TRANSITION_LINK
937 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1043 initiationType:web::NavigationInitiationType::USER_INITIATED
1044 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1045 INHERIT];
938 [session_controller_ commitPendingItem]; 1046 [session_controller_ commitPendingItem];
939 1047
940 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex); 1048 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex);
941 web::NavigationItemList backItems = [session_controller_ backwardItems]; 1049 web::NavigationItemList backItems = [session_controller_ backwardItems];
942 EXPECT_EQ(2U, backItems.size()); 1050 EXPECT_EQ(2U, backItems.size());
943 EXPECT_TRUE([session_controller_ forwardItems].empty()); 1051 EXPECT_TRUE([session_controller_ forwardItems].empty());
944 EXPECT_EQ("http://www.example.com/redirect", backItems[0]->GetURL().spec()); 1052 EXPECT_EQ("http://www.example.com/redirect", backItems[0]->GetURL().spec());
945 1053
946 [session_controller_ goToItemAtIndex:1]; 1054 [session_controller_ goToItemAtIndex:1];
947 EXPECT_EQ(1U, [session_controller_ backwardItems].size()); 1055 EXPECT_EQ(1U, [session_controller_ backwardItems].size());
948 EXPECT_EQ(1U, [session_controller_ forwardItems].size()); 1056 EXPECT_EQ(1U, [session_controller_ forwardItems].size());
949 1057
950 [session_controller_ goToItemAtIndex:0]; 1058 [session_controller_ goToItemAtIndex:0];
951 web::NavigationItemList forwardItems = [session_controller_ forwardItems]; 1059 web::NavigationItemList forwardItems = [session_controller_ forwardItems];
952 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); 1060 EXPECT_EQ(0U, [session_controller_ backwardItems].size());
953 EXPECT_EQ(2U, forwardItems.size()); 1061 EXPECT_EQ(2U, forwardItems.size());
954 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec()); 1062 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec());
955 } 1063 }
956 1064
957 // Tests going to items with existing and non-existing indices. 1065 // Tests going to items with existing and non-existing indices.
958 TEST_F(CRWSessionControllerTest, GoToItemAtIndex) { 1066 TEST_F(CRWSessionControllerTest, GoToItemAtIndex) {
959 [session_controller_ 1067 [session_controller_
960 addPendingItem:GURL("http://www.example.com/0") 1068 addPendingItem:GURL("http://www.example.com/0")
961 referrer:MakeReferrer("http://www.example.com/a") 1069 referrer:MakeReferrer("http://www.example.com/a")
962 transition:ui::PAGE_TRANSITION_LINK 1070 transition:ui::PAGE_TRANSITION_LINK
963 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1071 initiationType:web::NavigationInitiationType::USER_INITIATED
1072 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1073 INHERIT];
964 [session_controller_ commitPendingItem]; 1074 [session_controller_ commitPendingItem];
965 [session_controller_ 1075 [session_controller_
966 addPendingItem:GURL("http://www.example.com/1") 1076 addPendingItem:GURL("http://www.example.com/1")
967 referrer:MakeReferrer("http://www.example.com/b") 1077 referrer:MakeReferrer("http://www.example.com/b")
968 transition:ui::PAGE_TRANSITION_LINK 1078 transition:ui::PAGE_TRANSITION_LINK
969 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1079 initiationType:web::NavigationInitiationType::USER_INITIATED
1080 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1081 INHERIT];
970 [session_controller_ commitPendingItem]; 1082 [session_controller_ commitPendingItem];
971 [session_controller_ 1083 [session_controller_
972 addPendingItem:GURL("http://www.example.com/redirect") 1084 addPendingItem:GURL("http://www.example.com/redirect")
973 referrer:MakeReferrer("http://www.example.com/r") 1085 referrer:MakeReferrer("http://www.example.com/r")
974 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1086 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
975 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1087 initiationType:web::NavigationInitiationType::USER_INITIATED
1088 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1089 INHERIT];
976 [session_controller_ commitPendingItem]; 1090 [session_controller_ commitPendingItem];
977 [session_controller_ 1091 [session_controller_
978 addPendingItem:GURL("http://www.example.com/2") 1092 addPendingItem:GURL("http://www.example.com/2")
979 referrer:MakeReferrer("http://www.example.com/c") 1093 referrer:MakeReferrer("http://www.example.com/c")
980 transition:ui::PAGE_TRANSITION_LINK 1094 transition:ui::PAGE_TRANSITION_LINK
981 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1095 initiationType:web::NavigationInitiationType::USER_INITIATED
1096 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1097 INHERIT];
982 [session_controller_ commitPendingItem]; 1098 [session_controller_ commitPendingItem];
983 [session_controller_ 1099 [session_controller_
984 addPendingItem:GURL("http://www.example.com/3") 1100 addPendingItem:GURL("http://www.example.com/3")
985 referrer:MakeReferrer("http://www.example.com/d") 1101 referrer:MakeReferrer("http://www.example.com/d")
986 transition:ui::PAGE_TRANSITION_LINK 1102 transition:ui::PAGE_TRANSITION_LINK
987 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1103 initiationType:web::NavigationInitiationType::USER_INITIATED
1104 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1105 INHERIT];
988 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1106 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
989 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex); 1107 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex);
990 EXPECT_EQ(2, session_controller_.get().previousItemIndex); 1108 EXPECT_EQ(2, session_controller_.get().previousItemIndex);
991 EXPECT_TRUE([session_controller_ pendingItem]); 1109 EXPECT_TRUE([session_controller_ pendingItem]);
992 EXPECT_TRUE([session_controller_ transientItem]); 1110 EXPECT_TRUE([session_controller_ transientItem]);
993 1111
994 // Going back should discard transient and pending items. 1112 // Going back should discard transient and pending items.
995 [session_controller_ goToItemAtIndex:1]; 1113 [session_controller_ goToItemAtIndex:1];
996 EXPECT_EQ(1, session_controller_.get().lastCommittedItemIndex); 1114 EXPECT_EQ(1, session_controller_.get().lastCommittedItemIndex);
997 EXPECT_EQ(3, session_controller_.get().previousItemIndex); 1115 EXPECT_EQ(3, session_controller_.get().previousItemIndex);
(...skipping 28 matching lines...) Expand all
1026 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1144 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
1027 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1145 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1028 ASSERT_TRUE(visible_item); 1146 ASSERT_TRUE(visible_item);
1029 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1147 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1030 } 1148 }
1031 1149
1032 // Tests that visible URL is the same as transient URL if there is a committed 1150 // Tests that visible URL is the same as transient URL if there is a committed
1033 // item. 1151 // item.
1034 TEST_F(CRWSessionControllerTest, VisibleItemWithCommittedAndTransientItems) { 1152 TEST_F(CRWSessionControllerTest, VisibleItemWithCommittedAndTransientItems) {
1035 [session_controller_ 1153 [session_controller_
1036 addPendingItem:GURL("http://www.example.com/0") 1154 addPendingItem:GURL("http://www.example.com/0")
1037 referrer:MakeReferrer("http://www.example.com/a") 1155 referrer:MakeReferrer("http://www.example.com/a")
1038 transition:ui::PAGE_TRANSITION_LINK 1156 transition:ui::PAGE_TRANSITION_LINK
1039 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1157 initiationType:web::NavigationInitiationType::USER_INITIATED
1158 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1159 INHERIT];
1040 [session_controller_ commitPendingItem]; 1160 [session_controller_ commitPendingItem];
1041 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1161 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
1042 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1162 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1043 ASSERT_TRUE(visible_item); 1163 ASSERT_TRUE(visible_item);
1044 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1164 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1045 } 1165 }
1046 1166
1047 // Tests that visible URL is the same as pending URL if it was user-initiated. 1167 // Tests that visible URL is the same as pending URL if it was user-initiated.
1048 TEST_F(CRWSessionControllerTest, 1168 TEST_F(CRWSessionControllerTest,
1049 VisibleItemWithSingleUserInitiatedPendingItem) { 1169 VisibleItemWithSingleUserInitiatedPendingItem) {
1050 [session_controller_ 1170 [session_controller_
1051 addPendingItem:GURL("http://www.example.com/0") 1171 addPendingItem:GURL("http://www.example.com/0")
1052 referrer:MakeReferrer("http://www.example.com/a") 1172 referrer:MakeReferrer("http://www.example.com/a")
1053 transition:ui::PAGE_TRANSITION_LINK 1173 transition:ui::PAGE_TRANSITION_LINK
1054 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1174 initiationType:web::NavigationInitiationType::USER_INITIATED
1175 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1176 INHERIT];
1055 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1177 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1056 ASSERT_TRUE(visible_item); 1178 ASSERT_TRUE(visible_item);
1057 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1179 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1058 } 1180 }
1059 1181
1060 // Tests that visible URL is the same as pending URL if it was user-initiated 1182 // Tests that visible URL is the same as pending URL if it was user-initiated
1061 // and there is a committed item. 1183 // and there is a committed item.
1062 TEST_F(CRWSessionControllerTest, 1184 TEST_F(CRWSessionControllerTest,
1063 VisibleItemWithCommittedAndUserInitiatedPendingItem) { 1185 VisibleItemWithCommittedAndUserInitiatedPendingItem) {
1064 [session_controller_ 1186 [session_controller_
1065 addPendingItem:GURL("http://www.example.com") 1187 addPendingItem:GURL("http://www.example.com")
1066 referrer:MakeReferrer("http://www.example.com/a") 1188 referrer:MakeReferrer("http://www.example.com/a")
1067 transition:ui::PAGE_TRANSITION_LINK 1189 transition:ui::PAGE_TRANSITION_LINK
1068 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1190 initiationType:web::NavigationInitiationType::USER_INITIATED
1191 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1192 INHERIT];
1069 [session_controller_ commitPendingItem]; 1193 [session_controller_ commitPendingItem];
1070 [session_controller_ 1194 [session_controller_
1071 addPendingItem:GURL("http://www.example.com/0") 1195 addPendingItem:GURL("http://www.example.com/0")
1072 referrer:MakeReferrer("http://www.example.com/b") 1196 referrer:MakeReferrer("http://www.example.com/b")
1073 transition:ui::PAGE_TRANSITION_LINK 1197 transition:ui::PAGE_TRANSITION_LINK
1074 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1198 initiationType:web::NavigationInitiationType::USER_INITIATED
1199 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1200 INHERIT];
1075 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1201 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1076 ASSERT_TRUE(visible_item); 1202 ASSERT_TRUE(visible_item);
1077 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1203 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1078 } 1204 }
1079 1205
1080 // Tests that visible URL is not the same as pending URL if it was 1206 // Tests that visible URL is not the same as pending URL if it was
1081 // renderer-initiated. 1207 // renderer-initiated.
1082 TEST_F(CRWSessionControllerTest, 1208 TEST_F(CRWSessionControllerTest,
1083 VisibleItemWithSingleRendererInitiatedPendingItem) { 1209 VisibleItemWithSingleRendererInitiatedPendingItem) {
1084 [session_controller_ 1210 [session_controller_
1085 addPendingItem:GURL("http://www.example.com/0") 1211 addPendingItem:GURL("http://www.example.com/0")
1086 referrer:MakeReferrer("http://www.example.com/a") 1212 referrer:MakeReferrer("http://www.example.com/a")
1087 transition:ui::PAGE_TRANSITION_LINK 1213 transition:ui::PAGE_TRANSITION_LINK
1088 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1214 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1215 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1216 INHERIT];
1089 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1217 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1090 ASSERT_FALSE(visible_item); 1218 ASSERT_FALSE(visible_item);
1091 } 1219 }
1092 1220
1093 // Tests that visible URL is not the same as pending URL if it was 1221 // Tests that visible URL is not the same as pending URL if it was
1094 // renderer-initiated and there is a committed item. 1222 // renderer-initiated and there is a committed item.
1095 TEST_F(CRWSessionControllerTest, 1223 TEST_F(CRWSessionControllerTest,
1096 VisibleItemWithCommittedAndRendererInitiatedPendingItem) { 1224 VisibleItemWithCommittedAndRendererInitiatedPendingItem) {
1097 [session_controller_ 1225 [session_controller_
1098 addPendingItem:GURL("http://www.example.com") 1226 addPendingItem:GURL("http://www.example.com")
1099 referrer:MakeReferrer("http://www.example.com/a") 1227 referrer:MakeReferrer("http://www.example.com/a")
1100 transition:ui::PAGE_TRANSITION_LINK 1228 transition:ui::PAGE_TRANSITION_LINK
1101 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1229 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1230 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1231 INHERIT];
1102 [session_controller_ commitPendingItem]; 1232 [session_controller_ commitPendingItem];
1103 [session_controller_ 1233 [session_controller_
1104 addPendingItem:GURL("http://www.example.com/0") 1234 addPendingItem:GURL("http://www.example.com/0")
1105 referrer:MakeReferrer("http://www.example.com/b") 1235 referrer:MakeReferrer("http://www.example.com/b")
1106 transition:ui::PAGE_TRANSITION_LINK 1236 transition:ui::PAGE_TRANSITION_LINK
1107 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1237 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1238 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1239 INHERIT];
1108 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1240 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1109 ASSERT_TRUE(visible_item); 1241 ASSERT_TRUE(visible_item);
1110 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1242 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1111 } 1243 }
1112 1244
1113 // Tests that visible URL is not the same as pending URL created via pending 1245 // Tests that visible URL is not the same as pending URL created via pending
1114 // navigation index. 1246 // navigation index.
1115 TEST_F(CRWSessionControllerTest, VisibleItemWithPendingNavigationIndex) { 1247 TEST_F(CRWSessionControllerTest, VisibleItemWithPendingNavigationIndex) {
1116 [session_controller_ 1248 [session_controller_
1117 addPendingItem:GURL("http://www.example.com") 1249 addPendingItem:GURL("http://www.example.com")
1118 referrer:MakeReferrer("http://www.example.com/a") 1250 referrer:MakeReferrer("http://www.example.com/a")
1119 transition:ui::PAGE_TRANSITION_LINK 1251 transition:ui::PAGE_TRANSITION_LINK
1120 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1252 initiationType:web::NavigationInitiationType::USER_INITIATED
1253 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1254 INHERIT];
1121 [session_controller_ commitPendingItem]; 1255 [session_controller_ commitPendingItem];
1122 [session_controller_ 1256 [session_controller_
1123 addPendingItem:GURL("http://www.example.com/0") 1257 addPendingItem:GURL("http://www.example.com/0")
1124 referrer:MakeReferrer("http://www.example.com/b") 1258 referrer:MakeReferrer("http://www.example.com/b")
1125 transition:ui::PAGE_TRANSITION_LINK 1259 transition:ui::PAGE_TRANSITION_LINK
1126 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1260 initiationType:web::NavigationInitiationType::USER_INITIATED
1261 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1262 INHERIT];
1127 [session_controller_ commitPendingItem]; 1263 [session_controller_ commitPendingItem];
1128 1264
1129 [session_controller_ setPendingItemIndex:0]; 1265 [session_controller_ setPendingItemIndex:0];
1130 1266
1131 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1267 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1132 ASSERT_TRUE(visible_item); 1268 ASSERT_TRUE(visible_item);
1133 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1269 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1134 } 1270 }
1135 1271
1136 // Tests that |-backwardItems| is empty if all preceding items are 1272 // Tests that |-backwardItems| is empty if all preceding items are
1137 // redirects. 1273 // redirects.
1138 TEST_F(CRWSessionControllerTest, BackwardItemsForAllRedirects) { 1274 TEST_F(CRWSessionControllerTest, BackwardItemsForAllRedirects) {
1139 [session_controller_ 1275 [session_controller_
1140 addPendingItem:GURL("http://www.example.com") 1276 addPendingItem:GURL("http://www.example.com")
1141 referrer:MakeReferrer("http://www.example.com/a") 1277 referrer:MakeReferrer("http://www.example.com/a")
1142 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1278 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1143 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1279 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1280 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1281 INHERIT];
1144 [session_controller_ commitPendingItem]; 1282 [session_controller_ commitPendingItem];
1145 [session_controller_ 1283 [session_controller_
1146 addPendingItem:GURL("http://www.example.com/0") 1284 addPendingItem:GURL("http://www.example.com/0")
1147 referrer:MakeReferrer("http://www.example.com/b") 1285 referrer:MakeReferrer("http://www.example.com/b")
1148 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1286 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1149 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1287 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1288 userAgentOverrideOption:web::NavigationManager::UserAgentOverrideOption::
1289 INHERIT];
1150 [session_controller_ commitPendingItem]; 1290 [session_controller_ commitPendingItem];
1151 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); 1291 EXPECT_EQ(0U, [session_controller_ backwardItems].size());
1152 } 1292 }
1153 1293
Eugene But (OOO till 7-30) 2017/04/06 22:53:17 There was a change in session controller logic. Do
liaoyuke 2017/04/07 15:49:08 Yes.
1154 } // anonymous namespace 1294 } // anonymous namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698