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

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

Issue 2698773002: [iOS] Refactoring web CRWSessionController user agent code. (Closed)
Patch Set: Fix unit tests and rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ios/web/navigation/crw_session_controller.mm ('k') | ios/web/navigation/navigation_item_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 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
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #import "base/mac/scoped_nsobject.h" 12 #import "base/mac/scoped_nsobject.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/strings/sys_string_conversions.h" 14 #include "base/strings/sys_string_conversions.h"
15 #import "ios/web/navigation/crw_session_controller+private_constructors.h" 15 #import "ios/web/navigation/crw_session_controller+private_constructors.h"
16 #import "ios/web/navigation/crw_session_entry.h" 16 #import "ios/web/navigation/crw_session_entry.h"
17 #import "ios/web/navigation/navigation_item_impl.h" 17 #import "ios/web/navigation/navigation_item_impl.h"
18 #import "ios/web/navigation/navigation_manager_impl.h"
18 #include "ios/web/public/referrer.h" 19 #include "ios/web/public/referrer.h"
19 #include "ios/web/public/test/fakes/test_browser_state.h" 20 #include "ios/web/public/test/fakes/test_browser_state.h"
20 #include "ios/web/public/test/test_web_thread_bundle.h" 21 #include "ios/web/public/test/test_web_thread_bundle.h"
21 #import "net/base/mac/url_conversions.h" 22 #import "net/base/mac/url_conversions.h"
22 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
23 #import "testing/gtest_mac.h" 24 #import "testing/gtest_mac.h"
24 #include "testing/platform_test.h" 25 #include "testing/platform_test.h"
25 26
26 @interface CRWSessionController (Testing) 27 @interface CRWSessionController (Testing)
27 - (const GURL&)URLForSessionAtIndex:(NSUInteger)index; 28 - (const GURL&)URLForSessionAtIndex:(NSUInteger)index;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 TEST_F(CRWSessionControllerTest, InitWithWindowName) { 67 TEST_F(CRWSessionControllerTest, InitWithWindowName) {
67 EXPECT_NSEQ(@"test window", [session_controller_ windowName]); 68 EXPECT_NSEQ(@"test window", [session_controller_ windowName]);
68 EXPECT_NSEQ(@"opener", [session_controller_ openerId]); 69 EXPECT_NSEQ(@"opener", [session_controller_ openerId]);
69 EXPECT_FALSE([session_controller_ isOpenedByDOM]); 70 EXPECT_FALSE([session_controller_ isOpenedByDOM]);
70 EXPECT_EQ(0U, [[session_controller_ entries] count]); 71 EXPECT_EQ(0U, [[session_controller_ entries] count]);
71 EXPECT_EQ(nil, [session_controller_ currentEntry]); 72 EXPECT_EQ(nil, [session_controller_ currentEntry]);
72 } 73 }
73 74
74 // Tests session controller state after setting a pending index. 75 // Tests session controller state after setting a pending index.
75 TEST_F(CRWSessionControllerTest, SetPendingIndex) { 76 TEST_F(CRWSessionControllerTest, SetPendingIndex) {
76 [session_controller_ addPendingItem:GURL("http://www.example.com") 77 [session_controller_
77 referrer:web::Referrer() 78 addPendingItem:GURL("http://www.example.com")
78 transition:ui::PAGE_TRANSITION_TYPED 79 referrer:web::Referrer()
79 rendererInitiated:NO]; 80 transition:ui::PAGE_TRANSITION_TYPED
81 initiationType:web::NavigationInitiationType::USER_INITIATED];
80 [session_controller_ commitPendingItem]; 82 [session_controller_ commitPendingItem];
81 83
82 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 84 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
83 [session_controller_ setPendingItemIndex:0]; 85 [session_controller_ setPendingItemIndex:0];
84 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 86 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
85 EXPECT_EQ([[session_controller_ entries] lastObject], 87 EXPECT_EQ([[session_controller_ entries] lastObject],
86 [session_controller_ pendingEntry]); 88 [session_controller_ pendingEntry]);
87 } 89 }
88 90
89 TEST_F(CRWSessionControllerTest, addPendingItem) { 91 TEST_F(CRWSessionControllerTest, addPendingItem) {
90 [session_controller_ addPendingItem:GURL("http://www.url.com") 92 [session_controller_
91 referrer:MakeReferrer("http://www.referer.com") 93 addPendingItem:GURL("http://www.url.com")
92 transition:ui::PAGE_TRANSITION_TYPED 94 referrer:MakeReferrer("http://www.referer.com")
93 rendererInitiated:NO]; 95 transition:ui::PAGE_TRANSITION_TYPED
96 initiationType:web::NavigationInitiationType::USER_INITIATED];
94 97
95 EXPECT_EQ(0U, [[session_controller_ entries] count]); 98 EXPECT_EQ(0U, [[session_controller_ entries] count]);
96 EXPECT_EQ( 99 EXPECT_EQ(
97 GURL("http://www.url.com/"), 100 GURL("http://www.url.com/"),
98 [session_controller_ currentURL]); 101 [session_controller_ currentURL]);
99 } 102 }
100 103
101 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedEntries) { 104 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedEntries) {
102 [session_controller_ addPendingItem:GURL("http://www.committed.url.com") 105 [session_controller_
103 referrer:MakeReferrer("http://www.referer.com") 106 addPendingItem:GURL("http://www.committed.url.com")
104 transition:ui::PAGE_TRANSITION_TYPED 107 referrer:MakeReferrer("http://www.referer.com")
105 rendererInitiated:NO]; 108 transition:ui::PAGE_TRANSITION_TYPED
109 initiationType:web::NavigationInitiationType::USER_INITIATED];
106 [session_controller_ commitPendingItem]; 110 [session_controller_ commitPendingItem];
107 111
108 [session_controller_ addPendingItem:GURL("http://www.url.com") 112 [session_controller_
109 referrer:MakeReferrer("http://www.referer.com") 113 addPendingItem:GURL("http://www.url.com")
110 transition:ui::PAGE_TRANSITION_TYPED 114 referrer:MakeReferrer("http://www.referer.com")
111 rendererInitiated:NO]; 115 transition:ui::PAGE_TRANSITION_TYPED
116 initiationType:web::NavigationInitiationType::USER_INITIATED];
112 117
113 EXPECT_EQ(1U, [[session_controller_ entries] count]); 118 EXPECT_EQ(1U, [[session_controller_ entries] count]);
114 EXPECT_EQ( 119 EXPECT_EQ(
115 GURL("http://www.committed.url.com/"), 120 GURL("http://www.committed.url.com/"),
116 [session_controller_ URLForSessionAtIndex:0U]); 121 [session_controller_ URLForSessionAtIndex:0U]);
117 EXPECT_EQ( 122 EXPECT_EQ(
118 GURL("http://www.url.com/"), 123 GURL("http://www.url.com/"),
119 [session_controller_ currentURL]); 124 [session_controller_ currentURL]);
120 } 125 }
121 126
122 // Tests that adding a pending entry resets pending entry index. 127 // Tests that adding a pending entry resets pending entry index.
123 TEST_F(CRWSessionControllerTest, addPendingItemWithExisingPendingEntryIndex) { 128 TEST_F(CRWSessionControllerTest, addPendingItemWithExisingPendingEntryIndex) {
124 [session_controller_ addPendingItem:GURL("http://www.example.com") 129 [session_controller_
125 referrer:web::Referrer() 130 addPendingItem:GURL("http://www.example.com")
126 transition:ui::PAGE_TRANSITION_TYPED 131 referrer:web::Referrer()
127 rendererInitiated:NO]; 132 transition:ui::PAGE_TRANSITION_TYPED
133 initiationType:web::NavigationInitiationType::USER_INITIATED];
128 [session_controller_ commitPendingItem]; 134 [session_controller_ commitPendingItem];
129 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 135 [session_controller_
130 referrer:web::Referrer() 136 addPendingItem:GURL("http://www.example.com/0")
131 transition:ui::PAGE_TRANSITION_TYPED 137 referrer:web::Referrer()
132 rendererInitiated:NO]; 138 transition:ui::PAGE_TRANSITION_TYPED
139 initiationType:web::NavigationInitiationType::USER_INITIATED];
133 [session_controller_ commitPendingItem]; 140 [session_controller_ commitPendingItem];
134 141
135 // Set 0 as pending entry index. 142 // Set 0 as pending entry index.
136 [session_controller_ setPendingItemIndex:0]; 143 [session_controller_ setPendingItemIndex:0];
137 EXPECT_EQ(GURL("http://www.example.com/"), 144 EXPECT_EQ(GURL("http://www.example.com/"),
138 [[session_controller_ pendingEntry] navigationItem]->GetURL()); 145 [[session_controller_ pendingEntry] navigationItem]->GetURL());
139 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 146 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
140 147
141 // Add a pending entry, which should drop pending navigation index. 148 // Add a pending entry, which should drop pending navigation index.
142 [session_controller_ addPendingItem:GURL("http://www.example.com/1") 149 [session_controller_
143 referrer:web::Referrer() 150 addPendingItem:GURL("http://www.example.com/1")
144 transition:ui::PAGE_TRANSITION_TYPED 151 referrer:web::Referrer()
145 rendererInitiated:NO]; 152 transition:ui::PAGE_TRANSITION_TYPED
153 initiationType:web::NavigationInitiationType::USER_INITIATED];
146 EXPECT_EQ(GURL("http://www.example.com/1"), 154 EXPECT_EQ(GURL("http://www.example.com/1"),
147 [[session_controller_ pendingEntry] navigationItem]->GetURL()); 155 [[session_controller_ pendingEntry] navigationItem]->GetURL());
148 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 156 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
149 } 157 }
150 158
151 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) { 159 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) {
152 [session_controller_ addPendingItem:GURL("http://www.url.com")
153 referrer:MakeReferrer("http://www.referer.com")
154 transition:ui::PAGE_TRANSITION_TYPED
155 rendererInitiated:NO];
156 [session_controller_ 160 [session_controller_
157 addPendingItem:GURL("http://www.another.url.com") 161 addPendingItem:GURL("http://www.url.com")
158 referrer:MakeReferrer("http://www.another.referer.com") 162 referrer:MakeReferrer("http://www.referer.com")
159 transition:ui::PAGE_TRANSITION_TYPED 163 transition:ui::PAGE_TRANSITION_TYPED
160 rendererInitiated:NO]; 164 initiationType:web::NavigationInitiationType::USER_INITIATED];
165 [session_controller_
166 addPendingItem:GURL("http://www.another.url.com")
167 referrer:MakeReferrer("http://www.another.referer.com")
168 transition:ui::PAGE_TRANSITION_TYPED
169 initiationType:web::NavigationInitiationType::USER_INITIATED];
161 170
162 EXPECT_EQ(0U, [[session_controller_ entries] count]); 171 EXPECT_EQ(0U, [[session_controller_ entries] count]);
163 EXPECT_EQ( 172 EXPECT_EQ(
164 GURL("http://www.another.url.com/"), 173 GURL("http://www.another.url.com/"),
165 [session_controller_ currentURL]); 174 [session_controller_ currentURL]);
166 } 175 }
167 176
168 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) { 177 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) {
169 [session_controller_ addPendingItem:GURL("http://www.url.com") 178 [session_controller_
170 referrer:MakeReferrer("http://www.referer.com") 179 addPendingItem:GURL("http://www.url.com")
171 transition:ui::PAGE_TRANSITION_TYPED 180 referrer:MakeReferrer("http://www.referer.com")
172 rendererInitiated:NO]; 181 transition:ui::PAGE_TRANSITION_TYPED
182 initiationType:web::NavigationInitiationType::USER_INITIATED];
173 [session_controller_ commitPendingItem]; 183 [session_controller_ commitPendingItem];
174 184
175 EXPECT_EQ(1U, [[session_controller_ entries] count]); 185 EXPECT_EQ(1U, [[session_controller_ entries] count]);
176 EXPECT_EQ( 186 EXPECT_EQ(
177 GURL("http://www.url.com/"), 187 GURL("http://www.url.com/"),
178 [session_controller_ URLForSessionAtIndex:0U]); 188 [session_controller_ URLForSessionAtIndex:0U]);
179 EXPECT_EQ( 189 EXPECT_EQ(
180 [[session_controller_ entries] objectAtIndex:0U], 190 [[session_controller_ entries] objectAtIndex:0U],
181 [session_controller_ currentEntry]); 191 [session_controller_ currentEntry]);
182 } 192 }
183 193
184 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) { 194 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) {
185 [session_controller_ addPendingItem:GURL("http://www.url.com")
186 referrer:MakeReferrer("http://www.referer.com")
187 transition:ui::PAGE_TRANSITION_TYPED
188 rendererInitiated:NO];
189 [session_controller_ 195 [session_controller_
190 addPendingItem:GURL("http://www.another.url.com") 196 addPendingItem:GURL("http://www.url.com")
191 referrer:MakeReferrer("http://www.another.referer.com") 197 referrer:MakeReferrer("http://www.referer.com")
192 transition:ui::PAGE_TRANSITION_TYPED 198 transition:ui::PAGE_TRANSITION_TYPED
193 rendererInitiated:NO]; 199 initiationType:web::NavigationInitiationType::USER_INITIATED];
200 [session_controller_
201 addPendingItem:GURL("http://www.another.url.com")
202 referrer:MakeReferrer("http://www.another.referer.com")
203 transition:ui::PAGE_TRANSITION_TYPED
204 initiationType:web::NavigationInitiationType::USER_INITIATED];
194 [session_controller_ commitPendingItem]; 205 [session_controller_ commitPendingItem];
195 206
196 EXPECT_EQ(1U, [[session_controller_ entries] count]); 207 EXPECT_EQ(1U, [[session_controller_ entries] count]);
197 EXPECT_EQ( 208 EXPECT_EQ(
198 GURL("http://www.another.url.com/"), 209 GURL("http://www.another.url.com/"),
199 [session_controller_ URLForSessionAtIndex:0U]); 210 [session_controller_ URLForSessionAtIndex:0U]);
200 EXPECT_EQ( 211 EXPECT_EQ(
201 [[session_controller_ entries] objectAtIndex:0U], 212 [[session_controller_ entries] objectAtIndex:0U],
202 [session_controller_ currentEntry]); 213 [session_controller_ currentEntry]);
203 } 214 }
204 215
205 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) { 216 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) {
206 [session_controller_ addPendingItem:GURL("http://www.url.com") 217 [session_controller_
207 referrer:MakeReferrer("http://www.referer.com") 218 addPendingItem:GURL("http://www.url.com")
208 transition:ui::PAGE_TRANSITION_TYPED 219 referrer:MakeReferrer("http://www.referer.com")
209 rendererInitiated:NO]; 220 transition:ui::PAGE_TRANSITION_TYPED
221 initiationType:web::NavigationInitiationType::USER_INITIATED];
210 [session_controller_ commitPendingItem]; 222 [session_controller_ commitPendingItem];
211 223
212 [session_controller_ 224 [session_controller_
213 addPendingItem:GURL("http://www.another.url.com") 225 addPendingItem:GURL("http://www.another.url.com")
214 referrer:MakeReferrer("http://www.another.referer.com") 226 referrer:MakeReferrer("http://www.another.referer.com")
215 transition:ui::PAGE_TRANSITION_TYPED 227 transition:ui::PAGE_TRANSITION_TYPED
216 rendererInitiated:NO]; 228 initiationType:web::NavigationInitiationType::USER_INITIATED];
217 [session_controller_ commitPendingItem]; 229 [session_controller_ commitPendingItem];
218 230
219 EXPECT_EQ(2U, [[session_controller_ entries] count]); 231 EXPECT_EQ(2U, [[session_controller_ entries] count]);
220 EXPECT_EQ( 232 EXPECT_EQ(
221 GURL("http://www.url.com/"), 233 GURL("http://www.url.com/"),
222 [session_controller_ URLForSessionAtIndex:0U]); 234 [session_controller_ URLForSessionAtIndex:0U]);
223 EXPECT_EQ( 235 EXPECT_EQ(
224 GURL("http://www.another.url.com/"), 236 GURL("http://www.another.url.com/"),
225 [session_controller_ URLForSessionAtIndex:1U]); 237 [session_controller_ URLForSessionAtIndex:1U]);
226 EXPECT_EQ( 238 EXPECT_EQ(
227 [[session_controller_ entries] objectAtIndex:1U], 239 [[session_controller_ entries] objectAtIndex:1U],
228 [session_controller_ currentEntry]); 240 [session_controller_ currentEntry]);
229 } 241 }
230 242
231 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) { 243 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) {
232 [session_controller_ addPendingItem:GURL("http://www.url.com") 244 [session_controller_
233 referrer:MakeReferrer("http://www.referer.com") 245 addPendingItem:GURL("http://www.url.com")
234 transition:ui::PAGE_TRANSITION_TYPED 246 referrer:MakeReferrer("http://www.referer.com")
235 rendererInitiated:NO]; 247 transition:ui::PAGE_TRANSITION_TYPED
248 initiationType:web::NavigationInitiationType::USER_INITIATED];
236 [session_controller_ discardNonCommittedItems]; 249 [session_controller_ discardNonCommittedItems];
237 250
238 EXPECT_EQ(0U, [[session_controller_ entries] count]); 251 EXPECT_EQ(0U, [[session_controller_ entries] count]);
239 EXPECT_EQ(nil, [session_controller_ currentEntry]); 252 EXPECT_EQ(nil, [session_controller_ currentEntry]);
240 } 253 }
241 254
242 // Tests discarding pending entry added via |setPendingItemIndex:| call. 255 // Tests discarding pending entry added via |setPendingItemIndex:| call.
243 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) { 256 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) {
244 [session_controller_ addPendingItem:GURL("http://www.example.com") 257 [session_controller_
245 referrer:web::Referrer() 258 addPendingItem:GURL("http://www.example.com")
246 transition:ui::PAGE_TRANSITION_TYPED 259 referrer:web::Referrer()
247 rendererInitiated:NO]; 260 transition:ui::PAGE_TRANSITION_TYPED
261 initiationType:web::NavigationInitiationType::USER_INITIATED];
248 [session_controller_ commitPendingItem]; 262 [session_controller_ commitPendingItem];
249 263
250 [session_controller_ setPendingItemIndex:0]; 264 [session_controller_ setPendingItemIndex:0];
251 EXPECT_TRUE([session_controller_ pendingEntry]); 265 EXPECT_TRUE([session_controller_ pendingEntry]);
252 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 266 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
253 267
254 [session_controller_ discardNonCommittedItems]; 268 [session_controller_ discardNonCommittedItems];
255 EXPECT_FALSE([session_controller_ pendingEntry]); 269 EXPECT_FALSE([session_controller_ pendingEntry]);
256 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 270 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
257 } 271 }
258 272
259 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) { 273 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) {
260 [session_controller_ addPendingItem:GURL("http://www.url.com") 274 [session_controller_
261 referrer:MakeReferrer("http://www.referer.com") 275 addPendingItem:GURL("http://www.url.com")
262 transition:ui::PAGE_TRANSITION_TYPED 276 referrer:MakeReferrer("http://www.referer.com")
263 rendererInitiated:NO]; 277 transition:ui::PAGE_TRANSITION_TYPED
278 initiationType:web::NavigationInitiationType::USER_INITIATED];
264 [session_controller_ discardNonCommittedItems]; 279 [session_controller_ discardNonCommittedItems];
265 280
266 [session_controller_ addPendingItem:GURL("http://www.another.url.com") 281 [session_controller_
267 referrer:MakeReferrer("http://www.referer.com") 282 addPendingItem:GURL("http://www.another.url.com")
268 transition:ui::PAGE_TRANSITION_TYPED 283 referrer:MakeReferrer("http://www.referer.com")
269 rendererInitiated:NO]; 284 transition:ui::PAGE_TRANSITION_TYPED
285 initiationType:web::NavigationInitiationType::USER_INITIATED];
270 [session_controller_ commitPendingItem]; 286 [session_controller_ commitPendingItem];
271 287
272 EXPECT_EQ(1U, [[session_controller_ entries] count]); 288 EXPECT_EQ(1U, [[session_controller_ entries] count]);
273 EXPECT_EQ( 289 EXPECT_EQ(
274 GURL("http://www.another.url.com/"), 290 GURL("http://www.another.url.com/"),
275 [session_controller_ URLForSessionAtIndex:0U]); 291 [session_controller_ URLForSessionAtIndex:0U]);
276 EXPECT_EQ( 292 EXPECT_EQ(
277 [[session_controller_ entries] objectAtIndex:0U], 293 [[session_controller_ entries] objectAtIndex:0U],
278 [session_controller_ currentEntry]); 294 [session_controller_ currentEntry]);
279 } 295 }
280 296
281 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) { 297 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) {
282 [session_controller_ addPendingItem:GURL("http://www.url.com") 298 [session_controller_
283 referrer:MakeReferrer("http://www.referer.com") 299 addPendingItem:GURL("http://www.url.com")
284 transition:ui::PAGE_TRANSITION_TYPED 300 referrer:MakeReferrer("http://www.referer.com")
285 rendererInitiated:NO]; 301 transition:ui::PAGE_TRANSITION_TYPED
302 initiationType:web::NavigationInitiationType::USER_INITIATED];
286 [session_controller_ commitPendingItem]; 303 [session_controller_ commitPendingItem];
287 304
288 [session_controller_ addPendingItem:GURL("http://www.another.url.com") 305 [session_controller_
289 referrer:MakeReferrer("http://www.referer.com") 306 addPendingItem:GURL("http://www.another.url.com")
290 transition:ui::PAGE_TRANSITION_TYPED 307 referrer:MakeReferrer("http://www.referer.com")
291 rendererInitiated:NO]; 308 transition:ui::PAGE_TRANSITION_TYPED
309 initiationType:web::NavigationInitiationType::USER_INITIATED];
292 [session_controller_ discardNonCommittedItems]; 310 [session_controller_ discardNonCommittedItems];
293 311
294 EXPECT_EQ(1U, [[session_controller_ entries] count]); 312 EXPECT_EQ(1U, [[session_controller_ entries] count]);
295 EXPECT_EQ( 313 EXPECT_EQ(
296 GURL("http://www.url.com/"), 314 GURL("http://www.url.com/"),
297 [session_controller_ URLForSessionAtIndex:0U]); 315 [session_controller_ URLForSessionAtIndex:0U]);
298 EXPECT_EQ( 316 EXPECT_EQ(
299 [[session_controller_ entries] objectAtIndex:0U], 317 [[session_controller_ entries] objectAtIndex:0U],
300 [session_controller_ currentEntry]); 318 [session_controller_ currentEntry]);
301 } 319 }
302 320
303 TEST_F(CRWSessionControllerTest, 321 TEST_F(CRWSessionControllerTest,
304 commitPendingItemWithoutPendingOrCommittedEntry) { 322 commitPendingItemWithoutPendingOrCommittedEntry) {
305 [session_controller_ commitPendingItem]; 323 [session_controller_ commitPendingItem];
306 324
307 EXPECT_EQ(0U, [[session_controller_ entries] count]); 325 EXPECT_EQ(0U, [[session_controller_ entries] count]);
308 EXPECT_EQ(nil, [session_controller_ currentEntry]); 326 EXPECT_EQ(nil, [session_controller_ currentEntry]);
309 } 327 }
310 328
311 TEST_F(CRWSessionControllerTest, 329 TEST_F(CRWSessionControllerTest,
312 commitPendingItemWithoutPendingEntryWithCommittedEntry) { 330 commitPendingItemWithoutPendingEntryWithCommittedEntry) {
313 // Setup committed entry 331 // Setup committed entry
314 [session_controller_ addPendingItem:GURL("http://www.url.com") 332 [session_controller_
315 referrer:MakeReferrer("http://www.referer.com") 333 addPendingItem:GURL("http://www.url.com")
316 transition:ui::PAGE_TRANSITION_TYPED 334 referrer:MakeReferrer("http://www.referer.com")
317 rendererInitiated:NO]; 335 transition:ui::PAGE_TRANSITION_TYPED
336 initiationType:web::NavigationInitiationType::USER_INITIATED];
318 [session_controller_ commitPendingItem]; 337 [session_controller_ commitPendingItem];
319 338
320 // Commit pending entry when there is no such one 339 // Commit pending entry when there is no such one
321 [session_controller_ commitPendingItem]; 340 [session_controller_ commitPendingItem];
322 341
323 EXPECT_EQ(1U, [[session_controller_ entries] count]); 342 EXPECT_EQ(1U, [[session_controller_ entries] count]);
324 EXPECT_EQ( 343 EXPECT_EQ(
325 [[session_controller_ entries] objectAtIndex:0U], 344 [[session_controller_ entries] objectAtIndex:0U],
326 [session_controller_ currentEntry]); 345 [session_controller_ currentEntry]);
327 } 346 }
328 347
329 // Tests that forward entries are discarded after navigation entry is committed. 348 // Tests that forward entries are discarded after navigation entry is committed.
330 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardEntries) { 349 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardEntries) {
331 // Make 3 entries. 350 // Make 3 entries.
332 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 351 [session_controller_
333 referrer:MakeReferrer("http://www.example.com/a") 352 addPendingItem:GURL("http://www.example.com/0")
334 transition:ui::PAGE_TRANSITION_LINK 353 referrer:MakeReferrer("http://www.example.com/a")
335 rendererInitiated:YES]; 354 transition:ui::PAGE_TRANSITION_LINK
355 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
336 [session_controller_ commitPendingItem]; 356 [session_controller_ commitPendingItem];
337 [session_controller_ addPendingItem:GURL("http://www.example.com/1") 357 [session_controller_
338 referrer:MakeReferrer("http://www.example.com/b") 358 addPendingItem:GURL("http://www.example.com/1")
339 transition:ui::PAGE_TRANSITION_LINK 359 referrer:MakeReferrer("http://www.example.com/b")
340 rendererInitiated:YES]; 360 transition:ui::PAGE_TRANSITION_LINK
361 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
341 [session_controller_ commitPendingItem]; 362 [session_controller_ commitPendingItem];
342 [session_controller_ addPendingItem:GURL("http://www.example.com/2") 363 [session_controller_
343 referrer:MakeReferrer("http://www.example.com/c") 364 addPendingItem:GURL("http://www.example.com/2")
344 transition:ui::PAGE_TRANSITION_LINK 365 referrer:MakeReferrer("http://www.example.com/c")
345 rendererInitiated:YES]; 366 transition:ui::PAGE_TRANSITION_LINK
367 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
346 [session_controller_ commitPendingItem]; 368 [session_controller_ commitPendingItem];
347 369
348 // Go back to the first entry. 370 // Go back to the first entry.
349 [session_controller_ goToItemAtIndex:0]; 371 [session_controller_ goToItemAtIndex:0];
350 372
351 // Create and commit a new pending entry. 373 // Create and commit a new pending entry.
352 [session_controller_ addPendingItem:GURL("http://www.example.com/2") 374 [session_controller_
353 referrer:MakeReferrer("http://www.example.com/c") 375 addPendingItem:GURL("http://www.example.com/2")
354 transition:ui::PAGE_TRANSITION_LINK 376 referrer:MakeReferrer("http://www.example.com/c")
355 rendererInitiated:YES]; 377 transition:ui::PAGE_TRANSITION_LINK
378 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
356 [session_controller_ commitPendingItem]; 379 [session_controller_ commitPendingItem];
357 380
358 // All forward entries should go away. 381 // All forward entries should go away.
359 EXPECT_EQ(2U, [[session_controller_ entries] count]); 382 EXPECT_EQ(2U, [[session_controller_ entries] count]);
360 EXPECT_EQ(0U, [[session_controller_ forwardEntries] count]); 383 EXPECT_EQ(0U, [[session_controller_ forwardEntries] count]);
361 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]); 384 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]);
362 ASSERT_EQ(0, [session_controller_ previousNavigationIndex]); 385 ASSERT_EQ(0, [session_controller_ previousNavigationIndex]);
363 } 386 }
364 387
365 // Tests committing pending entry index from the middle. 388 // Tests committing pending entry index from the middle.
366 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) { 389 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) {
367 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 390 [session_controller_
368 referrer:web::Referrer() 391 addPendingItem:GURL("http://www.example.com/0")
369 transition:ui::PAGE_TRANSITION_TYPED 392 referrer:web::Referrer()
370 rendererInitiated:NO]; 393 transition:ui::PAGE_TRANSITION_TYPED
394 initiationType:web::NavigationInitiationType::USER_INITIATED];
371 [session_controller_ commitPendingItem]; 395 [session_controller_ commitPendingItem];
372 [session_controller_ addPendingItem:GURL("http://www.example.com/1") 396 [session_controller_
373 referrer:web::Referrer() 397 addPendingItem:GURL("http://www.example.com/1")
374 transition:ui::PAGE_TRANSITION_TYPED 398 referrer:web::Referrer()
375 rendererInitiated:NO]; 399 transition:ui::PAGE_TRANSITION_TYPED
400 initiationType:web::NavigationInitiationType::USER_INITIATED];
376 [session_controller_ commitPendingItem]; 401 [session_controller_ commitPendingItem];
377 [session_controller_ addPendingItem:GURL("http://www.example.com/2") 402 [session_controller_
378 referrer:web::Referrer() 403 addPendingItem:GURL("http://www.example.com/2")
379 transition:ui::PAGE_TRANSITION_TYPED 404 referrer:web::Referrer()
380 rendererInitiated:NO]; 405 transition:ui::PAGE_TRANSITION_TYPED
406 initiationType:web::NavigationInitiationType::USER_INITIATED];
381 [session_controller_ commitPendingItem]; 407 [session_controller_ commitPendingItem];
382 ASSERT_EQ(3U, [[session_controller_ entries] count]); 408 ASSERT_EQ(3U, [[session_controller_ entries] count]);
383 409
384 // Go to the middle, and commit first pending entry index. 410 // Go to the middle, and commit first pending entry index.
385 [session_controller_ goToItemAtIndex:1]; 411 [session_controller_ goToItemAtIndex:1];
386 [session_controller_ setPendingItemIndex:0]; 412 [session_controller_ setPendingItemIndex:0];
387 ASSERT_EQ(0, [session_controller_ pendingItemIndex]); 413 ASSERT_EQ(0, [session_controller_ pendingItemIndex]);
388 base::scoped_nsobject<CRWSessionEntry> pendingEntry( 414 base::scoped_nsobject<CRWSessionEntry> pendingEntry(
389 [[session_controller_ pendingEntry] retain]); 415 [[session_controller_ pendingEntry] retain]);
390 ASSERT_TRUE(pendingEntry); 416 ASSERT_TRUE(pendingEntry);
(...skipping 15 matching lines...) Expand all
406 DiscardPendingEntryWithoutPendingOrCommittedEntry) { 432 DiscardPendingEntryWithoutPendingOrCommittedEntry) {
407 [session_controller_ discardNonCommittedItems]; 433 [session_controller_ discardNonCommittedItems];
408 434
409 EXPECT_EQ(0U, [[session_controller_ entries] count]); 435 EXPECT_EQ(0U, [[session_controller_ entries] count]);
410 EXPECT_EQ(nil, [session_controller_ currentEntry]); 436 EXPECT_EQ(nil, [session_controller_ currentEntry]);
411 } 437 }
412 438
413 TEST_F(CRWSessionControllerTest, 439 TEST_F(CRWSessionControllerTest,
414 DiscardPendingEntryWithoutPendingEntryWithCommittedEntry) { 440 DiscardPendingEntryWithoutPendingEntryWithCommittedEntry) {
415 // Setup committed entry 441 // Setup committed entry
416 [session_controller_ addPendingItem:GURL("http://www.url.com") 442 [session_controller_
417 referrer:MakeReferrer("http://www.referer.com") 443 addPendingItem:GURL("http://www.url.com")
418 transition:ui::PAGE_TRANSITION_TYPED 444 referrer:MakeReferrer("http://www.referer.com")
419 rendererInitiated:NO]; 445 transition:ui::PAGE_TRANSITION_TYPED
446 initiationType:web::NavigationInitiationType::USER_INITIATED];
420 [session_controller_ commitPendingItem]; 447 [session_controller_ commitPendingItem];
421 448
422 // Discard noncommitted entries when there is no such one 449 // Discard noncommitted entries when there is no such one
423 [session_controller_ discardNonCommittedItems]; 450 [session_controller_ discardNonCommittedItems];
424 451
425 EXPECT_EQ(1U, [[session_controller_ entries] count]); 452 EXPECT_EQ(1U, [[session_controller_ entries] count]);
426 EXPECT_EQ( 453 EXPECT_EQ(
427 [[session_controller_ entries] objectAtIndex:0U], 454 [[session_controller_ entries] objectAtIndex:0U],
428 [session_controller_ currentEntry]); 455 [session_controller_ currentEntry]);
429 } 456 }
430 457
431 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingEntry) { 458 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingEntry) {
432 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 459 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
433 [session_controller_ commitPendingItem]; 460 [session_controller_ commitPendingItem];
434 461
435 EXPECT_EQ(0U, [[session_controller_ entries] count]); 462 EXPECT_EQ(0U, [[session_controller_ entries] count]);
436 EXPECT_EQ(nil, [session_controller_ currentEntry]); 463 EXPECT_EQ(nil, [session_controller_ currentEntry]);
437 } 464 }
438 465
439 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingEntry) { 466 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingEntry) {
440 [session_controller_ addPendingItem:GURL("http://www.url.com") 467 [session_controller_
441 referrer:MakeReferrer("http://www.referer.com") 468 addPendingItem:GURL("http://www.url.com")
442 transition:ui::PAGE_TRANSITION_TYPED 469 referrer:MakeReferrer("http://www.referer.com")
443 rendererInitiated:NO]; 470 transition:ui::PAGE_TRANSITION_TYPED
471 initiationType:web::NavigationInitiationType::USER_INITIATED];
444 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 472 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
445 473
446 EXPECT_EQ( 474 EXPECT_EQ(
447 GURL("http://www.another.url.com/"), 475 GURL("http://www.another.url.com/"),
448 [session_controller_ currentURL]); 476 [session_controller_ currentURL]);
449 } 477 }
450 478
451 TEST_F(CRWSessionControllerTest, 479 TEST_F(CRWSessionControllerTest,
452 updatePendingItemWithPendingEntryAlreadyCommited) { 480 updatePendingItemWithPendingEntryAlreadyCommited) {
453 [session_controller_ addPendingItem:GURL("http://www.url.com") 481 [session_controller_
454 referrer:MakeReferrer("http://www.referer.com") 482 addPendingItem:GURL("http://www.url.com")
455 transition:ui::PAGE_TRANSITION_TYPED 483 referrer:MakeReferrer("http://www.referer.com")
456 rendererInitiated:NO]; 484 transition:ui::PAGE_TRANSITION_TYPED
485 initiationType:web::NavigationInitiationType::USER_INITIATED];
457 [session_controller_ commitPendingItem]; 486 [session_controller_ commitPendingItem];
458 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 487 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
459 [session_controller_ commitPendingItem]; 488 [session_controller_ commitPendingItem];
460 489
461 EXPECT_EQ(1U, [[session_controller_ entries] count]); 490 EXPECT_EQ(1U, [[session_controller_ entries] count]);
462 EXPECT_EQ( 491 EXPECT_EQ(
463 GURL("http://www.url.com/"), 492 GURL("http://www.url.com/"),
464 [session_controller_ URLForSessionAtIndex:0U]); 493 [session_controller_ URLForSessionAtIndex:0U]);
465 EXPECT_EQ( 494 EXPECT_EQ(
466 [[session_controller_ entries] objectAtIndex:0U], 495 [[session_controller_ entries] objectAtIndex:0U],
467 [session_controller_ currentEntry]); 496 [session_controller_ currentEntry]);
468 } 497 }
469 498
470 // Tests inserting session controller state. 499 // Tests inserting session controller state.
471 TEST_F(CRWSessionControllerTest, InsertState) { 500 TEST_F(CRWSessionControllerTest, InsertState) {
472 // Add 1 committed and 1 pending entry to target controller. 501 // Add 1 committed and 1 pending entry to target controller.
473 [session_controller_ addPendingItem:GURL("http://www.url.com/2") 502 [session_controller_
474 referrer:web::Referrer() 503 addPendingItem:GURL("http://www.url.com/2")
475 transition:ui::PAGE_TRANSITION_TYPED 504 referrer:web::Referrer()
476 rendererInitiated:NO]; 505 transition:ui::PAGE_TRANSITION_TYPED
506 initiationType:web::NavigationInitiationType::USER_INITIATED];
477 [session_controller_ commitPendingItem]; 507 [session_controller_ commitPendingItem];
478 [session_controller_ addPendingItem:GURL("http://www.url.com/3") 508 [session_controller_
479 referrer:web::Referrer() 509 addPendingItem:GURL("http://www.url.com/3")
480 transition:ui::PAGE_TRANSITION_TYPED 510 referrer:web::Referrer()
481 rendererInitiated:NO]; 511 transition:ui::PAGE_TRANSITION_TYPED
512 initiationType:web::NavigationInitiationType::USER_INITIATED];
482 513
483 // Create source session controller with 1 committed entry. 514 // Create source session controller with 1 committed entry.
484 base::scoped_nsobject<CRWSessionController> other_session_controller( 515 base::scoped_nsobject<CRWSessionController> other_session_controller(
485 [[CRWSessionController alloc] initWithWindowName:nil 516 [[CRWSessionController alloc] initWithWindowName:nil
486 openerId:nil 517 openerId:nil
487 openedByDOM:NO 518 openedByDOM:NO
488 openerNavigationIndex:0 519 openerNavigationIndex:0
489 browserState:&browser_state_]); 520 browserState:&browser_state_]);
490 [other_session_controller setWindowName:@"test-window"]; 521 [other_session_controller setWindowName:@"test-window"];
491 [other_session_controller addPendingItem:GURL("http://www.url.com/0") 522 [other_session_controller
492 referrer:web::Referrer() 523 addPendingItem:GURL("http://www.url.com/0")
493 transition:ui::PAGE_TRANSITION_TYPED 524 referrer:web::Referrer()
494 rendererInitiated:NO]; 525 transition:ui::PAGE_TRANSITION_TYPED
526 initiationType:web::NavigationInitiationType::USER_INITIATED];
495 [other_session_controller commitPendingItem]; 527 [other_session_controller commitPendingItem];
496 [other_session_controller addPendingItem:GURL("http://www.url.com/1") 528 [other_session_controller
497 referrer:web::Referrer() 529 addPendingItem:GURL("http://www.url.com/1")
498 transition:ui::PAGE_TRANSITION_TYPED 530 referrer:web::Referrer()
499 rendererInitiated:NO]; 531 transition:ui::PAGE_TRANSITION_TYPED
532 initiationType:web::NavigationInitiationType::USER_INITIATED];
500 533
501 // Insert and verify the state of target session controller. 534 // Insert and verify the state of target session controller.
502 [session_controller_ 535 [session_controller_
503 insertStateFromSessionController:other_session_controller.get()]; 536 insertStateFromSessionController:other_session_controller.get()];
504 537
505 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]); 538 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]);
506 EXPECT_EQ(2U, [[session_controller_ entries] count]); 539 EXPECT_EQ(2U, [[session_controller_ entries] count]);
507 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); 540 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]);
508 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); 541 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]);
509 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 542 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
510 543
511 EXPECT_EQ(GURL("http://www.url.com/0"), 544 EXPECT_EQ(GURL("http://www.url.com/0"),
512 [session_controller_ URLForSessionAtIndex:0]); 545 [session_controller_ URLForSessionAtIndex:0]);
513 EXPECT_EQ(GURL("http://www.url.com/2"), 546 EXPECT_EQ(GURL("http://www.url.com/2"),
514 [session_controller_ URLForSessionAtIndex:1]); 547 [session_controller_ URLForSessionAtIndex:1]);
515 EXPECT_EQ(GURL("http://www.url.com/3"), 548 EXPECT_EQ(GURL("http://www.url.com/3"),
516 [[session_controller_ pendingEntry] navigationItem]->GetURL()); 549 [[session_controller_ pendingEntry] navigationItem]->GetURL());
517 } 550 }
518 551
519 // Tests inserting session controller state from empty session controller. 552 // Tests inserting session controller state from empty session controller.
520 TEST_F(CRWSessionControllerTest, InsertStateFromEmptySessionController) { 553 TEST_F(CRWSessionControllerTest, InsertStateFromEmptySessionController) {
521 // Add 2 committed entries to target controller. 554 // Add 2 committed entries to target controller.
522 [session_controller_ addPendingItem:GURL("http://www.url.com/0") 555 [session_controller_
523 referrer:web::Referrer() 556 addPendingItem:GURL("http://www.url.com/0")
524 transition:ui::PAGE_TRANSITION_TYPED 557 referrer:web::Referrer()
525 rendererInitiated:NO]; 558 transition:ui::PAGE_TRANSITION_TYPED
559 initiationType:web::NavigationInitiationType::USER_INITIATED];
526 [session_controller_ commitPendingItem]; 560 [session_controller_ commitPendingItem];
527 [session_controller_ addPendingItem:GURL("http://www.url.com/1") 561 [session_controller_
528 referrer:web::Referrer() 562 addPendingItem:GURL("http://www.url.com/1")
529 transition:ui::PAGE_TRANSITION_TYPED 563 referrer:web::Referrer()
530 rendererInitiated:NO]; 564 transition:ui::PAGE_TRANSITION_TYPED
565 initiationType:web::NavigationInitiationType::USER_INITIATED];
531 [session_controller_ commitPendingItem]; 566 [session_controller_ commitPendingItem];
532 567
533 // Create empty source session controller. 568 // Create empty source session controller.
534 base::scoped_nsobject<CRWSessionController> other_session_controller( 569 base::scoped_nsobject<CRWSessionController> other_session_controller(
535 [[CRWSessionController alloc] initWithWindowName:nil 570 [[CRWSessionController alloc] initWithWindowName:nil
536 openerId:nil 571 openerId:nil
537 openedByDOM:NO 572 openedByDOM:NO
538 openerNavigationIndex:0 573 openerNavigationIndex:0
539 browserState:&browser_state_]); 574 browserState:&browser_state_]);
540 [other_session_controller setWindowName:@"test-window"]; 575 [other_session_controller setWindowName:@"test-window"];
(...skipping 18 matching lines...) Expand all
559 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) { 594 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) {
560 // Create source session controller with 2 committed entries and one 595 // Create source session controller with 2 committed entries and one
561 // pending entry. 596 // pending entry.
562 base::scoped_nsobject<CRWSessionController> other_session_controller( 597 base::scoped_nsobject<CRWSessionController> other_session_controller(
563 [[CRWSessionController alloc] initWithWindowName:nil 598 [[CRWSessionController alloc] initWithWindowName:nil
564 openerId:nil 599 openerId:nil
565 openedByDOM:NO 600 openedByDOM:NO
566 openerNavigationIndex:0 601 openerNavigationIndex:0
567 browserState:&browser_state_]); 602 browserState:&browser_state_]);
568 [other_session_controller setWindowName:@"test-window"]; 603 [other_session_controller setWindowName:@"test-window"];
569 [other_session_controller addPendingItem:GURL("http://www.url.com/0") 604 [other_session_controller
570 referrer:web::Referrer() 605 addPendingItem:GURL("http://www.url.com/0")
571 transition:ui::PAGE_TRANSITION_TYPED 606 referrer:web::Referrer()
572 rendererInitiated:NO]; 607 transition:ui::PAGE_TRANSITION_TYPED
608 initiationType:web::NavigationInitiationType::USER_INITIATED];
573 [other_session_controller commitPendingItem]; 609 [other_session_controller commitPendingItem];
574 [other_session_controller addPendingItem:GURL("http://www.url.com/1") 610 [other_session_controller
575 referrer:web::Referrer() 611 addPendingItem:GURL("http://www.url.com/1")
576 transition:ui::PAGE_TRANSITION_TYPED 612 referrer:web::Referrer()
577 rendererInitiated:NO]; 613 transition:ui::PAGE_TRANSITION_TYPED
614 initiationType:web::NavigationInitiationType::USER_INITIATED];
578 [other_session_controller commitPendingItem]; 615 [other_session_controller commitPendingItem];
579 [other_session_controller addPendingItem:GURL("http://www.url.com/2") 616 [other_session_controller
580 referrer:web::Referrer() 617 addPendingItem:GURL("http://www.url.com/2")
581 transition:ui::PAGE_TRANSITION_TYPED 618 referrer:web::Referrer()
582 rendererInitiated:NO]; 619 transition:ui::PAGE_TRANSITION_TYPED
620 initiationType:web::NavigationInitiationType::USER_INITIATED];
583 621
584 // Insert and verify the state of target session controller. 622 // Insert and verify the state of target session controller.
585 [session_controller_ 623 [session_controller_
586 insertStateFromSessionController:other_session_controller.get()]; 624 insertStateFromSessionController:other_session_controller.get()];
587 625
588 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]); 626 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]);
589 EXPECT_EQ(2U, [[session_controller_ entries] count]); 627 EXPECT_EQ(2U, [[session_controller_ entries] count]);
590 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); 628 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]);
591 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); 629 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]);
592 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 630 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
593 EXPECT_FALSE([session_controller_ pendingEntry]); 631 EXPECT_FALSE([session_controller_ pendingEntry]);
594 EXPECT_EQ(GURL("http://www.url.com/0"), 632 EXPECT_EQ(GURL("http://www.url.com/0"),
595 [session_controller_ URLForSessionAtIndex:0]); 633 [session_controller_ URLForSessionAtIndex:0]);
596 EXPECT_EQ(GURL("http://www.url.com/1"), 634 EXPECT_EQ(GURL("http://www.url.com/1"),
597 [session_controller_ URLForSessionAtIndex:1]); 635 [session_controller_ URLForSessionAtIndex:1]);
598 } 636 }
599 637
600 // Tests inserting session controller state. Verifies that pending entry index 638 // Tests inserting session controller state. Verifies that pending entry index
601 // remains valid. 639 // remains valid.
602 TEST_F(CRWSessionControllerTest, 640 TEST_F(CRWSessionControllerTest,
603 InsertStateWithPendingEntryIndexInTargetController) { 641 InsertStateWithPendingEntryIndexInTargetController) {
604 // Add 2 committed entries and make the first entry pending. 642 // Add 2 committed entries and make the first entry pending.
605 [session_controller_ addPendingItem:GURL("http://www.url.com/2") 643 [session_controller_
606 referrer:web::Referrer() 644 addPendingItem:GURL("http://www.url.com/2")
607 transition:ui::PAGE_TRANSITION_TYPED 645 referrer:web::Referrer()
608 rendererInitiated:NO]; 646 transition:ui::PAGE_TRANSITION_TYPED
647 initiationType:web::NavigationInitiationType::USER_INITIATED];
609 [session_controller_ commitPendingItem]; 648 [session_controller_ commitPendingItem];
610 [session_controller_ addPendingItem:GURL("http://www.url.com/3") 649 [session_controller_
611 referrer:web::Referrer() 650 addPendingItem:GURL("http://www.url.com/3")
612 transition:ui::PAGE_TRANSITION_TYPED 651 referrer:web::Referrer()
613 rendererInitiated:NO]; 652 transition:ui::PAGE_TRANSITION_TYPED
653 initiationType:web::NavigationInitiationType::USER_INITIATED];
614 [session_controller_ commitPendingItem]; 654 [session_controller_ commitPendingItem];
615 [session_controller_ setPendingItemIndex:0]; 655 [session_controller_ setPendingItemIndex:0];
616 656
617 // Create source session controller with 1 committed entry. 657 // Create source session controller with 1 committed entry.
618 base::scoped_nsobject<CRWSessionController> other_session_controller( 658 base::scoped_nsobject<CRWSessionController> other_session_controller(
619 [[CRWSessionController alloc] initWithWindowName:nil 659 [[CRWSessionController alloc] initWithWindowName:nil
620 openerId:nil 660 openerId:nil
621 openedByDOM:NO 661 openedByDOM:NO
622 openerNavigationIndex:0 662 openerNavigationIndex:0
623 browserState:&browser_state_]); 663 browserState:&browser_state_]);
624 [other_session_controller setWindowName:@"test-window"]; 664 [other_session_controller setWindowName:@"test-window"];
625 [other_session_controller addPendingItem:GURL("http://www.url.com/0") 665 [other_session_controller
626 referrer:web::Referrer() 666 addPendingItem:GURL("http://www.url.com/0")
627 transition:ui::PAGE_TRANSITION_TYPED 667 referrer:web::Referrer()
628 rendererInitiated:NO]; 668 transition:ui::PAGE_TRANSITION_TYPED
669 initiationType:web::NavigationInitiationType::USER_INITIATED];
629 [other_session_controller commitPendingItem]; 670 [other_session_controller commitPendingItem];
630 671
631 // Insert and verify the state of target session controller. 672 // Insert and verify the state of target session controller.
632 [session_controller_ 673 [session_controller_
633 insertStateFromSessionController:other_session_controller.get()]; 674 insertStateFromSessionController:other_session_controller.get()];
634 675
635 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]); 676 EXPECT_NSEQ(@"test-window", [session_controller_ windowName]);
636 EXPECT_EQ(3U, [[session_controller_ entries] count]); 677 EXPECT_EQ(3U, [[session_controller_ entries] count]);
637 EXPECT_EQ(2, [session_controller_ currentNavigationIndex]); 678 EXPECT_EQ(2, [session_controller_ currentNavigationIndex]);
638 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); 679 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 // the entire object is created properly. 745 // the entire object is created properly.
705 CRWSessionEntry* current_entry = controller.get().currentEntry; 746 CRWSessionEntry* current_entry = controller.get().currentEntry;
706 EXPECT_EQ(current_entry.navigationItem->GetURL(), 747 EXPECT_EQ(current_entry.navigationItem->GetURL(),
707 GURL("http://www.yahoo.com")); 748 GURL("http://www.yahoo.com"));
708 EXPECT_EQ([[controller openerId] length], 0UL); 749 EXPECT_EQ([[controller openerId] length], 0UL);
709 } 750 }
710 751
711 // Tests index of previous navigation entry. 752 // Tests index of previous navigation entry.
712 TEST_F(CRWSessionControllerTest, PreviousNavigationEntry) { 753 TEST_F(CRWSessionControllerTest, PreviousNavigationEntry) {
713 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1); 754 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1);
714 [session_controller_ addPendingItem:GURL("http://www.url.com") 755 [session_controller_
715 referrer:MakeReferrer("http://www.referer.com") 756 addPendingItem:GURL("http://www.url.com")
716 transition:ui::PAGE_TRANSITION_TYPED 757 referrer:MakeReferrer("http://www.referer.com")
717 rendererInitiated:NO]; 758 transition:ui::PAGE_TRANSITION_TYPED
759 initiationType:web::NavigationInitiationType::USER_INITIATED];
718 [session_controller_ commitPendingItem]; 760 [session_controller_ commitPendingItem];
719 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1); 761 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1);
720 [session_controller_ addPendingItem:GURL("http://www.url1.com") 762 [session_controller_
721 referrer:MakeReferrer("http://www.referer.com") 763 addPendingItem:GURL("http://www.url1.com")
722 transition:ui::PAGE_TRANSITION_TYPED 764 referrer:MakeReferrer("http://www.referer.com")
723 rendererInitiated:NO]; 765 transition:ui::PAGE_TRANSITION_TYPED
766 initiationType:web::NavigationInitiationType::USER_INITIATED];
724 [session_controller_ commitPendingItem]; 767 [session_controller_ commitPendingItem];
725 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 0); 768 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 0);
726 [session_controller_ addPendingItem:GURL("http://www.url2.com") 769 [session_controller_
727 referrer:MakeReferrer("http://www.referer.com") 770 addPendingItem:GURL("http://www.url2.com")
728 transition:ui::PAGE_TRANSITION_TYPED 771 referrer:MakeReferrer("http://www.referer.com")
729 rendererInitiated:NO]; 772 transition:ui::PAGE_TRANSITION_TYPED
773 initiationType:web::NavigationInitiationType::USER_INITIATED];
730 [session_controller_ commitPendingItem]; 774 [session_controller_ commitPendingItem];
731 775
732 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1); 776 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1);
733 777
734 [session_controller_ goToItemAtIndex:1]; 778 [session_controller_ goToItemAtIndex:1];
735 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 2); 779 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 2);
736 780
737 [session_controller_ goToItemAtIndex:0]; 781 [session_controller_ goToItemAtIndex:0];
738 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1); 782 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1);
739 783
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 replacedItem = replacedEntry.navigationItemImpl; 921 replacedItem = replacedEntry.navigationItemImpl;
878 EXPECT_EQ(expectedCount, controller.get().entries.count); 922 EXPECT_EQ(expectedCount, controller.get().entries.count);
879 EXPECT_EQ(replacePageGurl2, replacedEntry.navigationItem->GetURL()); 923 EXPECT_EQ(replacePageGurl2, replacedEntry.navigationItem->GetURL());
880 EXPECT_FALSE(replacedItem->IsCreatedFromPushState()); 924 EXPECT_FALSE(replacedItem->IsCreatedFromPushState());
881 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject()); 925 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject());
882 EXPECT_EQ(GURL("http://www.starturl.com/"), 926 EXPECT_EQ(GURL("http://www.starturl.com/"),
883 replacedEntry.navigationItem->GetReferrer().url); 927 replacedEntry.navigationItem->GetReferrer().url);
884 } 928 }
885 929
886 TEST_F(CRWSessionControllerTest, TestBackwardForwardEntries) { 930 TEST_F(CRWSessionControllerTest, TestBackwardForwardEntries) {
887 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 931 [session_controller_
888 referrer:MakeReferrer("http://www.example.com/a") 932 addPendingItem:GURL("http://www.example.com/0")
889 transition:ui::PAGE_TRANSITION_LINK 933 referrer:MakeReferrer("http://www.example.com/a")
890 rendererInitiated:NO]; 934 transition:ui::PAGE_TRANSITION_LINK
935 initiationType:web::NavigationInitiationType::USER_INITIATED];
891 [session_controller_ commitPendingItem]; 936 [session_controller_ commitPendingItem];
892 [session_controller_ addPendingItem:GURL("http://www.example.com/1") 937 [session_controller_
893 referrer:MakeReferrer("http://www.example.com/b") 938 addPendingItem:GURL("http://www.example.com/1")
894 transition:ui::PAGE_TRANSITION_LINK 939 referrer:MakeReferrer("http://www.example.com/b")
895 rendererInitiated:NO]; 940 transition:ui::PAGE_TRANSITION_LINK
941 initiationType:web::NavigationInitiationType::USER_INITIATED];
896 [session_controller_ commitPendingItem]; 942 [session_controller_ commitPendingItem];
897 [session_controller_ addPendingItem:GURL("http://www.example.com/redirect") 943 [session_controller_
898 referrer:MakeReferrer("http://www.example.com/r") 944 addPendingItem:GURL("http://www.example.com/redirect")
899 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK 945 referrer:MakeReferrer("http://www.example.com/r")
900 rendererInitiated:NO]; 946 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK
947 initiationType:web::NavigationInitiationType::USER_INITIATED];
901 [session_controller_ commitPendingItem]; 948 [session_controller_ commitPendingItem];
902 [session_controller_ addPendingItem:GURL("http://www.example.com/2") 949 [session_controller_
903 referrer:MakeReferrer("http://www.example.com/c") 950 addPendingItem:GURL("http://www.example.com/2")
904 transition:ui::PAGE_TRANSITION_LINK 951 referrer:MakeReferrer("http://www.example.com/c")
905 rendererInitiated:NO]; 952 transition:ui::PAGE_TRANSITION_LINK
953 initiationType:web::NavigationInitiationType::USER_INITIATED];
906 [session_controller_ commitPendingItem]; 954 [session_controller_ commitPendingItem];
907 955
908 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex); 956 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex);
909 NSArray* backEntries = [session_controller_ backwardEntries]; 957 NSArray* backEntries = [session_controller_ backwardEntries];
910 EXPECT_EQ(2U, [backEntries count]); 958 EXPECT_EQ(2U, [backEntries count]);
911 EXPECT_EQ(0U, [[session_controller_ forwardEntries] count]); 959 EXPECT_EQ(0U, [[session_controller_ forwardEntries] count]);
912 EXPECT_EQ("http://www.example.com/redirect", 960 EXPECT_EQ("http://www.example.com/redirect",
913 [[backEntries objectAtIndex:0] navigationItem]->GetURL().spec()); 961 [[backEntries objectAtIndex:0] navigationItem]->GetURL().spec());
914 962
915 [session_controller_ goToItemAtIndex:1]; 963 [session_controller_ goToItemAtIndex:1];
916 EXPECT_EQ(1U, [[session_controller_ backwardEntries] count]); 964 EXPECT_EQ(1U, [[session_controller_ backwardEntries] count]);
917 EXPECT_EQ(1U, [[session_controller_ forwardEntries] count]); 965 EXPECT_EQ(1U, [[session_controller_ forwardEntries] count]);
918 966
919 [session_controller_ goToItemAtIndex:0]; 967 [session_controller_ goToItemAtIndex:0];
920 NSArray* forwardEntries = [session_controller_ forwardEntries]; 968 NSArray* forwardEntries = [session_controller_ forwardEntries];
921 EXPECT_EQ(0U, [[session_controller_ backwardEntries] count]); 969 EXPECT_EQ(0U, [[session_controller_ backwardEntries] count]);
922 EXPECT_EQ(2U, [forwardEntries count]); 970 EXPECT_EQ(2U, [forwardEntries count]);
923 EXPECT_EQ("http://www.example.com/2", 971 EXPECT_EQ("http://www.example.com/2",
924 [[forwardEntries objectAtIndex:1] navigationItem]->GetURL().spec()); 972 [[forwardEntries objectAtIndex:1] navigationItem]->GetURL().spec());
925 } 973 }
926 974
927 // Tests going to entries with existing and non-existing indices. 975 // Tests going to entries with existing and non-existing indices.
928 TEST_F(CRWSessionControllerTest, GoToEntryAtIndex) { 976 TEST_F(CRWSessionControllerTest, GoToEntryAtIndex) {
929 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 977 [session_controller_
930 referrer:MakeReferrer("http://www.example.com/a") 978 addPendingItem:GURL("http://www.example.com/0")
931 transition:ui::PAGE_TRANSITION_LINK 979 referrer:MakeReferrer("http://www.example.com/a")
932 rendererInitiated:NO]; 980 transition:ui::PAGE_TRANSITION_LINK
981 initiationType:web::NavigationInitiationType::USER_INITIATED];
933 [session_controller_ commitPendingItem]; 982 [session_controller_ commitPendingItem];
934 [session_controller_ addPendingItem:GURL("http://www.example.com/1") 983 [session_controller_
935 referrer:MakeReferrer("http://www.example.com/b") 984 addPendingItem:GURL("http://www.example.com/1")
936 transition:ui::PAGE_TRANSITION_LINK 985 referrer:MakeReferrer("http://www.example.com/b")
937 rendererInitiated:NO]; 986 transition:ui::PAGE_TRANSITION_LINK
987 initiationType:web::NavigationInitiationType::USER_INITIATED];
938 [session_controller_ commitPendingItem]; 988 [session_controller_ commitPendingItem];
939 [session_controller_ addPendingItem:GURL("http://www.example.com/redirect") 989 [session_controller_
940 referrer:MakeReferrer("http://www.example.com/r") 990 addPendingItem:GURL("http://www.example.com/redirect")
941 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK 991 referrer:MakeReferrer("http://www.example.com/r")
942 rendererInitiated:NO]; 992 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK
993 initiationType:web::NavigationInitiationType::USER_INITIATED];
943 [session_controller_ commitPendingItem]; 994 [session_controller_ commitPendingItem];
944 [session_controller_ addPendingItem:GURL("http://www.example.com/2") 995 [session_controller_
945 referrer:MakeReferrer("http://www.example.com/c") 996 addPendingItem:GURL("http://www.example.com/2")
946 transition:ui::PAGE_TRANSITION_LINK 997 referrer:MakeReferrer("http://www.example.com/c")
947 rendererInitiated:NO]; 998 transition:ui::PAGE_TRANSITION_LINK
999 initiationType:web::NavigationInitiationType::USER_INITIATED];
948 [session_controller_ commitPendingItem]; 1000 [session_controller_ commitPendingItem];
949 [session_controller_ addPendingItem:GURL("http://www.example.com/3") 1001 [session_controller_
950 referrer:MakeReferrer("http://www.example.com/d") 1002 addPendingItem:GURL("http://www.example.com/3")
951 transition:ui::PAGE_TRANSITION_LINK 1003 referrer:MakeReferrer("http://www.example.com/d")
952 rendererInitiated:NO]; 1004 transition:ui::PAGE_TRANSITION_LINK
1005 initiationType:web::NavigationInitiationType::USER_INITIATED];
953 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1006 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
954 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex); 1007 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex);
955 EXPECT_EQ(2, session_controller_.get().previousNavigationIndex); 1008 EXPECT_EQ(2, session_controller_.get().previousNavigationIndex);
956 EXPECT_TRUE(session_controller_.get().pendingEntry); 1009 EXPECT_TRUE(session_controller_.get().pendingEntry);
957 EXPECT_TRUE(session_controller_.get().transientEntry); 1010 EXPECT_TRUE(session_controller_.get().transientEntry);
958 1011
959 // Going back should discard transient and pending entries. 1012 // Going back should discard transient and pending entries.
960 [session_controller_ goToItemAtIndex:1]; 1013 [session_controller_ goToItemAtIndex:1];
961 EXPECT_EQ(1, session_controller_.get().currentNavigationIndex); 1014 EXPECT_EQ(1, session_controller_.get().currentNavigationIndex);
962 EXPECT_EQ(3, session_controller_.get().previousNavigationIndex); 1015 EXPECT_EQ(3, session_controller_.get().previousNavigationIndex);
(...skipping 28 matching lines...) Expand all
991 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1044 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
992 web::NavigationItem* visible_item = 1045 web::NavigationItem* visible_item =
993 [[session_controller_ visibleEntry] navigationItem]; 1046 [[session_controller_ visibleEntry] navigationItem];
994 ASSERT_TRUE(visible_item); 1047 ASSERT_TRUE(visible_item);
995 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1048 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
996 } 1049 }
997 1050
998 // Tests that visible URL is the same as transient URL if there is a committed 1051 // Tests that visible URL is the same as transient URL if there is a committed
999 // entry. 1052 // entry.
1000 TEST_F(CRWSessionControllerTest, VisibleEntryWithCommittedAndTransientEntries) { 1053 TEST_F(CRWSessionControllerTest, VisibleEntryWithCommittedAndTransientEntries) {
1001 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 1054 [session_controller_
1002 referrer:MakeReferrer("http://www.example.com/a") 1055 addPendingItem:GURL("http://www.example.com/0")
1003 transition:ui::PAGE_TRANSITION_LINK 1056 referrer:MakeReferrer("http://www.example.com/a")
1004 rendererInitiated:NO]; 1057 transition:ui::PAGE_TRANSITION_LINK
1058 initiationType:web::NavigationInitiationType::USER_INITIATED];
1005 [session_controller_ commitPendingItem]; 1059 [session_controller_ commitPendingItem];
1006 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1060 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
1007 web::NavigationItem* visible_item = 1061 web::NavigationItem* visible_item =
1008 [[session_controller_ visibleEntry] navigationItem]; 1062 [[session_controller_ visibleEntry] navigationItem];
1009 ASSERT_TRUE(visible_item); 1063 ASSERT_TRUE(visible_item);
1010 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1064 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1011 } 1065 }
1012 1066
1013 // Tests that visible URL is the same as pending URL if it was user-initiated. 1067 // Tests that visible URL is the same as pending URL if it was user-initiated.
1014 TEST_F(CRWSessionControllerTest, 1068 TEST_F(CRWSessionControllerTest,
1015 VisibleEntryWithSingleUserInitiatedPendingEntry) { 1069 VisibleEntryWithSingleUserInitiatedPendingEntry) {
1016 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 1070 [session_controller_
1017 referrer:MakeReferrer("http://www.example.com/a") 1071 addPendingItem:GURL("http://www.example.com/0")
1018 transition:ui::PAGE_TRANSITION_LINK 1072 referrer:MakeReferrer("http://www.example.com/a")
1019 rendererInitiated:NO]; 1073 transition:ui::PAGE_TRANSITION_LINK
1074 initiationType:web::NavigationInitiationType::USER_INITIATED];
1020 web::NavigationItem* visible_item = 1075 web::NavigationItem* visible_item =
1021 [[session_controller_ visibleEntry] navigationItem]; 1076 [[session_controller_ visibleEntry] navigationItem];
1022 ASSERT_TRUE(visible_item); 1077 ASSERT_TRUE(visible_item);
1023 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1078 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1024 } 1079 }
1025 1080
1026 // Tests that visible URL is the same as pending URL if it was user-initiated 1081 // Tests that visible URL is the same as pending URL if it was user-initiated
1027 // and there is a committed entry. 1082 // and there is a committed entry.
1028 TEST_F(CRWSessionControllerTest, 1083 TEST_F(CRWSessionControllerTest,
1029 VisibleEntryWithCommittedAndUserInitiatedPendingEntry) { 1084 VisibleEntryWithCommittedAndUserInitiatedPendingEntry) {
1030 [session_controller_ addPendingItem:GURL("http://www.example.com") 1085 [session_controller_
1031 referrer:MakeReferrer("http://www.example.com/a") 1086 addPendingItem:GURL("http://www.example.com")
1032 transition:ui::PAGE_TRANSITION_LINK 1087 referrer:MakeReferrer("http://www.example.com/a")
1033 rendererInitiated:NO]; 1088 transition:ui::PAGE_TRANSITION_LINK
1089 initiationType:web::NavigationInitiationType::USER_INITIATED];
1034 [session_controller_ commitPendingItem]; 1090 [session_controller_ commitPendingItem];
1035 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 1091 [session_controller_
1036 referrer:MakeReferrer("http://www.example.com/b") 1092 addPendingItem:GURL("http://www.example.com/0")
1037 transition:ui::PAGE_TRANSITION_LINK 1093 referrer:MakeReferrer("http://www.example.com/b")
1038 rendererInitiated:NO]; 1094 transition:ui::PAGE_TRANSITION_LINK
1095 initiationType:web::NavigationInitiationType::USER_INITIATED];
1039 web::NavigationItem* visible_item = 1096 web::NavigationItem* visible_item =
1040 [[session_controller_ visibleEntry] navigationItem]; 1097 [[session_controller_ visibleEntry] navigationItem];
1041 ASSERT_TRUE(visible_item); 1098 ASSERT_TRUE(visible_item);
1042 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1099 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1043 } 1100 }
1044 1101
1045 // Tests that visible URL is not the same as pending URL if it was 1102 // Tests that visible URL is not the same as pending URL if it was
1046 // renderer-initiated. 1103 // renderer-initiated.
1047 TEST_F(CRWSessionControllerTest, 1104 TEST_F(CRWSessionControllerTest,
1048 VisibleEntryWithSingleRendererInitiatedPendingEntry) { 1105 VisibleEntryWithSingleRendererInitiatedPendingEntry) {
1049 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 1106 [session_controller_
1050 referrer:MakeReferrer("http://www.example.com/a") 1107 addPendingItem:GURL("http://www.example.com/0")
1051 transition:ui::PAGE_TRANSITION_LINK 1108 referrer:MakeReferrer("http://www.example.com/a")
1052 rendererInitiated:YES]; 1109 transition:ui::PAGE_TRANSITION_LINK
1110 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1053 web::NavigationItem* visible_item = 1111 web::NavigationItem* visible_item =
1054 [[session_controller_ visibleEntry] navigationItem]; 1112 [[session_controller_ visibleEntry] navigationItem];
1055 ASSERT_FALSE(visible_item); 1113 ASSERT_FALSE(visible_item);
1056 } 1114 }
1057 1115
1058 // Tests that visible URL is not the same as pending URL if it was 1116 // Tests that visible URL is not the same as pending URL if it was
1059 // renderer-initiated and there is a committed entry. 1117 // renderer-initiated and there is a committed entry.
1060 TEST_F(CRWSessionControllerTest, 1118 TEST_F(CRWSessionControllerTest,
1061 VisibleEntryWithCommittedAndRendererInitiatedPendingEntry) { 1119 VisibleEntryWithCommittedAndRendererInitiatedPendingEntry) {
1062 [session_controller_ addPendingItem:GURL("http://www.example.com") 1120 [session_controller_
1063 referrer:MakeReferrer("http://www.example.com/a") 1121 addPendingItem:GURL("http://www.example.com")
1064 transition:ui::PAGE_TRANSITION_LINK 1122 referrer:MakeReferrer("http://www.example.com/a")
1065 rendererInitiated:YES]; 1123 transition:ui::PAGE_TRANSITION_LINK
1124 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1066 [session_controller_ commitPendingItem]; 1125 [session_controller_ commitPendingItem];
1067 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 1126 [session_controller_
1068 referrer:MakeReferrer("http://www.example.com/b") 1127 addPendingItem:GURL("http://www.example.com/0")
1069 transition:ui::PAGE_TRANSITION_LINK 1128 referrer:MakeReferrer("http://www.example.com/b")
1070 rendererInitiated:YES]; 1129 transition:ui::PAGE_TRANSITION_LINK
1130 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1071 web::NavigationItem* visible_item = 1131 web::NavigationItem* visible_item =
1072 [[session_controller_ visibleEntry] navigationItem]; 1132 [[session_controller_ visibleEntry] navigationItem];
1073 ASSERT_TRUE(visible_item); 1133 ASSERT_TRUE(visible_item);
1074 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1134 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1075 } 1135 }
1076 1136
1077 // Tests that visible URL is not the same as pending URL created via pending 1137 // Tests that visible URL is not the same as pending URL created via pending
1078 // navigation index. 1138 // navigation index.
1079 TEST_F(CRWSessionControllerTest, VisibleEntryWithPendingNavigationIndex) { 1139 TEST_F(CRWSessionControllerTest, VisibleEntryWithPendingNavigationIndex) {
1080 [session_controller_ addPendingItem:GURL("http://www.example.com") 1140 [session_controller_
1081 referrer:MakeReferrer("http://www.example.com/a") 1141 addPendingItem:GURL("http://www.example.com")
1082 transition:ui::PAGE_TRANSITION_LINK 1142 referrer:MakeReferrer("http://www.example.com/a")
1083 rendererInitiated:NO]; 1143 transition:ui::PAGE_TRANSITION_LINK
1144 initiationType:web::NavigationInitiationType::USER_INITIATED];
1084 [session_controller_ commitPendingItem]; 1145 [session_controller_ commitPendingItem];
1085 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 1146 [session_controller_
1086 referrer:MakeReferrer("http://www.example.com/b") 1147 addPendingItem:GURL("http://www.example.com/0")
1087 transition:ui::PAGE_TRANSITION_LINK 1148 referrer:MakeReferrer("http://www.example.com/b")
1088 rendererInitiated:NO]; 1149 transition:ui::PAGE_TRANSITION_LINK
1150 initiationType:web::NavigationInitiationType::USER_INITIATED];
1089 [session_controller_ commitPendingItem]; 1151 [session_controller_ commitPendingItem];
1090 1152
1091 [session_controller_ setPendingItemIndex:0]; 1153 [session_controller_ setPendingItemIndex:0];
1092 1154
1093 web::NavigationItem* visible_item = 1155 web::NavigationItem* visible_item =
1094 [[session_controller_ visibleEntry] navigationItem]; 1156 [[session_controller_ visibleEntry] navigationItem];
1095 ASSERT_TRUE(visible_item); 1157 ASSERT_TRUE(visible_item);
1096 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1158 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1097 } 1159 }
1098 1160
1099 // Tests that |-backwardEntries| is empty if all preceding entries are 1161 // Tests that |-backwardEntries| is empty if all preceding entries are
1100 // redirects. 1162 // redirects.
1101 TEST_F(CRWSessionControllerTest, BackwardEntriesForAllRedirects) { 1163 TEST_F(CRWSessionControllerTest, BackwardEntriesForAllRedirects) {
1102 [session_controller_ addPendingItem:GURL("http://www.example.com") 1164 [session_controller_
1103 referrer:MakeReferrer("http://www.example.com/a") 1165 addPendingItem:GURL("http://www.example.com")
1104 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1166 referrer:MakeReferrer("http://www.example.com/a")
1105 rendererInitiated:YES]; 1167 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1168 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1106 [session_controller_ commitPendingItem]; 1169 [session_controller_ commitPendingItem];
1107 [session_controller_ addPendingItem:GURL("http://www.example.com/0") 1170 [session_controller_
1108 referrer:MakeReferrer("http://www.example.com/b") 1171 addPendingItem:GURL("http://www.example.com/0")
1109 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1172 referrer:MakeReferrer("http://www.example.com/b")
1110 rendererInitiated:YES]; 1173 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1174 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1111 [session_controller_ commitPendingItem]; 1175 [session_controller_ commitPendingItem];
1112 EXPECT_EQ(0U, [session_controller_ backwardEntries].count); 1176 EXPECT_EQ(0U, [session_controller_ backwardEntries].count);
1113 } 1177 }
1114 1178
1115 } // anonymous namespace 1179 } // anonymous namespace
OLDNEW
« no previous file with comments | « ios/web/navigation/crw_session_controller.mm ('k') | ios/web/navigation/navigation_item_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698