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

Side by Side Diff: content/browser/tab_contents/navigation_controller_unittest.cc

Issue 8785004: Change NavigationController::LoadURL to take a Referrer class instead of a GURL as referrer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 9 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "base/file_util.h" 5 #include "base/file_util.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } 85 }
86 86
87 TEST_F(NavigationControllerTest, LoadURL) { 87 TEST_F(NavigationControllerTest, LoadURL) {
88 TestNotificationTracker notifications; 88 TestNotificationTracker notifications;
89 RegisterForAllNavNotifications(&notifications, &controller()); 89 RegisterForAllNavNotifications(&notifications, &controller());
90 90
91 const GURL url1("http://foo1"); 91 const GURL url1("http://foo1");
92 const GURL url2("http://foo2"); 92 const GURL url2("http://foo2");
93 93
94 controller().LoadURL( 94 controller().LoadURL(
95 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 95 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
96 // Creating a pending notification should not have issued any of the 96 // Creating a pending notification should not have issued any of the
97 // notifications we're listening for. 97 // notifications we're listening for.
98 EXPECT_EQ(0U, notifications.size()); 98 EXPECT_EQ(0U, notifications.size());
99 99
100 // The load should now be pending. 100 // The load should now be pending.
101 EXPECT_EQ(controller().entry_count(), 0); 101 EXPECT_EQ(controller().entry_count(), 0);
102 EXPECT_EQ(controller().last_committed_entry_index(), -1); 102 EXPECT_EQ(controller().last_committed_entry_index(), -1);
103 EXPECT_EQ(controller().pending_entry_index(), -1); 103 EXPECT_EQ(controller().pending_entry_index(), -1);
104 EXPECT_FALSE(controller().GetLastCommittedEntry()); 104 EXPECT_FALSE(controller().GetLastCommittedEntry());
105 EXPECT_TRUE(controller().pending_entry()); 105 EXPECT_TRUE(controller().pending_entry());
(...skipping 13 matching lines...) Expand all
119 EXPECT_EQ(controller().last_committed_entry_index(), 0); 119 EXPECT_EQ(controller().last_committed_entry_index(), 0);
120 EXPECT_EQ(controller().pending_entry_index(), -1); 120 EXPECT_EQ(controller().pending_entry_index(), -1);
121 EXPECT_TRUE(controller().GetLastCommittedEntry()); 121 EXPECT_TRUE(controller().GetLastCommittedEntry());
122 EXPECT_FALSE(controller().pending_entry()); 122 EXPECT_FALSE(controller().pending_entry());
123 EXPECT_FALSE(controller().CanGoBack()); 123 EXPECT_FALSE(controller().CanGoBack());
124 EXPECT_FALSE(controller().CanGoForward()); 124 EXPECT_FALSE(controller().CanGoForward());
125 EXPECT_EQ(contents()->GetMaxPageID(), 0); 125 EXPECT_EQ(contents()->GetMaxPageID(), 0);
126 126
127 // Load another... 127 // Load another...
128 controller().LoadURL( 128 controller().LoadURL(
129 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 129 url2, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
130 130
131 // The load should now be pending. 131 // The load should now be pending.
132 EXPECT_EQ(controller().entry_count(), 1); 132 EXPECT_EQ(controller().entry_count(), 1);
133 EXPECT_EQ(controller().last_committed_entry_index(), 0); 133 EXPECT_EQ(controller().last_committed_entry_index(), 0);
134 EXPECT_EQ(controller().pending_entry_index(), -1); 134 EXPECT_EQ(controller().pending_entry_index(), -1);
135 EXPECT_TRUE(controller().GetLastCommittedEntry()); 135 EXPECT_TRUE(controller().GetLastCommittedEntry());
136 EXPECT_TRUE(controller().pending_entry()); 136 EXPECT_TRUE(controller().pending_entry());
137 // TODO(darin): maybe this should really be true? 137 // TODO(darin): maybe this should really be true?
138 EXPECT_FALSE(controller().CanGoBack()); 138 EXPECT_FALSE(controller().CanGoBack());
139 EXPECT_FALSE(controller().CanGoForward()); 139 EXPECT_FALSE(controller().CanGoForward());
(...skipping 21 matching lines...) Expand all
161 // new session history entry. This is what happens when you press enter in the 161 // new session history entry. This is what happens when you press enter in the
162 // URL bar to reload: a pending entry is created and then it is discarded when 162 // URL bar to reload: a pending entry is created and then it is discarded when
163 // the load commits (because WebCore didn't actually make a new entry). 163 // the load commits (because WebCore didn't actually make a new entry).
164 TEST_F(NavigationControllerTest, LoadURL_SamePage) { 164 TEST_F(NavigationControllerTest, LoadURL_SamePage) {
165 TestNotificationTracker notifications; 165 TestNotificationTracker notifications;
166 RegisterForAllNavNotifications(&notifications, &controller()); 166 RegisterForAllNavNotifications(&notifications, &controller());
167 167
168 const GURL url1("http://foo1"); 168 const GURL url1("http://foo1");
169 169
170 controller().LoadURL( 170 controller().LoadURL(
171 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 171 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
172 EXPECT_EQ(0U, notifications.size()); 172 EXPECT_EQ(0U, notifications.size());
173 rvh()->SendNavigate(0, url1); 173 rvh()->SendNavigate(0, url1);
174 EXPECT_TRUE(notifications.Check1AndReset( 174 EXPECT_TRUE(notifications.Check1AndReset(
175 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 175 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
176 176
177 controller().LoadURL( 177 controller().LoadURL(
178 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 178 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
179 EXPECT_EQ(0U, notifications.size()); 179 EXPECT_EQ(0U, notifications.size());
180 rvh()->SendNavigate(0, url1); 180 rvh()->SendNavigate(0, url1);
181 EXPECT_TRUE(notifications.Check1AndReset( 181 EXPECT_TRUE(notifications.Check1AndReset(
182 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 182 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
183 183
184 // We should not have produced a new session history entry. 184 // We should not have produced a new session history entry.
185 EXPECT_EQ(controller().entry_count(), 1); 185 EXPECT_EQ(controller().entry_count(), 1);
186 EXPECT_EQ(controller().last_committed_entry_index(), 0); 186 EXPECT_EQ(controller().last_committed_entry_index(), 0);
187 EXPECT_EQ(controller().pending_entry_index(), -1); 187 EXPECT_EQ(controller().pending_entry_index(), -1);
188 EXPECT_TRUE(controller().GetLastCommittedEntry()); 188 EXPECT_TRUE(controller().GetLastCommittedEntry());
189 EXPECT_FALSE(controller().pending_entry()); 189 EXPECT_FALSE(controller().pending_entry());
190 EXPECT_FALSE(controller().CanGoBack()); 190 EXPECT_FALSE(controller().CanGoBack());
191 EXPECT_FALSE(controller().CanGoForward()); 191 EXPECT_FALSE(controller().CanGoForward());
192 } 192 }
193 193
194 // Tests loading a URL but discarding it before the load commits. 194 // Tests loading a URL but discarding it before the load commits.
195 TEST_F(NavigationControllerTest, LoadURL_Discarded) { 195 TEST_F(NavigationControllerTest, LoadURL_Discarded) {
196 TestNotificationTracker notifications; 196 TestNotificationTracker notifications;
197 RegisterForAllNavNotifications(&notifications, &controller()); 197 RegisterForAllNavNotifications(&notifications, &controller());
198 198
199 const GURL url1("http://foo1"); 199 const GURL url1("http://foo1");
200 const GURL url2("http://foo2"); 200 const GURL url2("http://foo2");
201 201
202 controller().LoadURL( 202 controller().LoadURL(
203 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 203 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
204 EXPECT_EQ(0U, notifications.size()); 204 EXPECT_EQ(0U, notifications.size());
205 rvh()->SendNavigate(0, url1); 205 rvh()->SendNavigate(0, url1);
206 EXPECT_TRUE(notifications.Check1AndReset( 206 EXPECT_TRUE(notifications.Check1AndReset(
207 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 207 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
208 208
209 controller().LoadURL( 209 controller().LoadURL(
210 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 210 url2, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
211 controller().DiscardNonCommittedEntries(); 211 controller().DiscardNonCommittedEntries();
212 EXPECT_EQ(0U, notifications.size()); 212 EXPECT_EQ(0U, notifications.size());
213 213
214 // Should not have produced a new session history entry. 214 // Should not have produced a new session history entry.
215 EXPECT_EQ(controller().entry_count(), 1); 215 EXPECT_EQ(controller().entry_count(), 1);
216 EXPECT_EQ(controller().last_committed_entry_index(), 0); 216 EXPECT_EQ(controller().last_committed_entry_index(), 0);
217 EXPECT_EQ(controller().pending_entry_index(), -1); 217 EXPECT_EQ(controller().pending_entry_index(), -1);
218 EXPECT_TRUE(controller().GetLastCommittedEntry()); 218 EXPECT_TRUE(controller().GetLastCommittedEntry());
219 EXPECT_FALSE(controller().pending_entry()); 219 EXPECT_FALSE(controller().pending_entry());
220 EXPECT_FALSE(controller().CanGoBack()); 220 EXPECT_FALSE(controller().CanGoBack());
221 EXPECT_FALSE(controller().CanGoForward()); 221 EXPECT_FALSE(controller().CanGoForward());
222 } 222 }
223 223
224 // Tests navigations that come in unrequested. This happens when the user 224 // Tests navigations that come in unrequested. This happens when the user
225 // navigates from the web page, and here we test that there is no pending entry. 225 // navigates from the web page, and here we test that there is no pending entry.
226 TEST_F(NavigationControllerTest, LoadURL_NoPending) { 226 TEST_F(NavigationControllerTest, LoadURL_NoPending) {
227 TestNotificationTracker notifications; 227 TestNotificationTracker notifications;
228 RegisterForAllNavNotifications(&notifications, &controller()); 228 RegisterForAllNavNotifications(&notifications, &controller());
229 229
230 // First make an existing committed entry. 230 // First make an existing committed entry.
231 const GURL kExistingURL1("http://eh"); 231 const GURL kExistingURL1("http://eh");
232 controller().LoadURL(kExistingURL1, GURL(), 232 controller().LoadURL(kExistingURL1, content::Referrer(),
233 content::PAGE_TRANSITION_TYPED, std::string()); 233 content::PAGE_TRANSITION_TYPED, std::string());
234 rvh()->SendNavigate(0, kExistingURL1); 234 rvh()->SendNavigate(0, kExistingURL1);
235 EXPECT_TRUE(notifications.Check1AndReset( 235 EXPECT_TRUE(notifications.Check1AndReset(
236 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 236 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
237 237
238 // Do a new navigation without making a pending one. 238 // Do a new navigation without making a pending one.
239 const GURL kNewURL("http://see"); 239 const GURL kNewURL("http://see");
240 rvh()->SendNavigate(99, kNewURL); 240 rvh()->SendNavigate(99, kNewURL);
241 241
242 // There should no longer be any pending entry, and the third navigation we 242 // There should no longer be any pending entry, and the third navigation we
243 // just made should be committed. 243 // just made should be committed.
244 EXPECT_TRUE(notifications.Check1AndReset( 244 EXPECT_TRUE(notifications.Check1AndReset(
245 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 245 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
246 EXPECT_EQ(-1, controller().pending_entry_index()); 246 EXPECT_EQ(-1, controller().pending_entry_index());
247 EXPECT_EQ(1, controller().last_committed_entry_index()); 247 EXPECT_EQ(1, controller().last_committed_entry_index());
248 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url()); 248 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url());
249 } 249 }
250 250
251 // Tests navigating to a new URL when there is a new pending navigation that is 251 // Tests navigating to a new URL when there is a new pending navigation that is
252 // not the one that just loaded. This will happen if the user types in a URL to 252 // not the one that just loaded. This will happen if the user types in a URL to
253 // somewhere slow, and then navigates the current page before the typed URL 253 // somewhere slow, and then navigates the current page before the typed URL
254 // commits. 254 // commits.
255 TEST_F(NavigationControllerTest, LoadURL_NewPending) { 255 TEST_F(NavigationControllerTest, LoadURL_NewPending) {
256 TestNotificationTracker notifications; 256 TestNotificationTracker notifications;
257 RegisterForAllNavNotifications(&notifications, &controller()); 257 RegisterForAllNavNotifications(&notifications, &controller());
258 258
259 // First make an existing committed entry. 259 // First make an existing committed entry.
260 const GURL kExistingURL1("http://eh"); 260 const GURL kExistingURL1("http://eh");
261 controller().LoadURL(kExistingURL1, GURL(), 261 controller().LoadURL(kExistingURL1, content::Referrer(),
262 content::PAGE_TRANSITION_TYPED, std::string()); 262 content::PAGE_TRANSITION_TYPED, std::string());
263 rvh()->SendNavigate(0, kExistingURL1); 263 rvh()->SendNavigate(0, kExistingURL1);
264 EXPECT_TRUE(notifications.Check1AndReset( 264 EXPECT_TRUE(notifications.Check1AndReset(
265 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 265 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
266 266
267 // Make a pending entry to somewhere new. 267 // Make a pending entry to somewhere new.
268 const GURL kExistingURL2("http://bee"); 268 const GURL kExistingURL2("http://bee");
269 controller().LoadURL(kExistingURL2, GURL(), 269 controller().LoadURL(kExistingURL2, content::Referrer(),
270 content::PAGE_TRANSITION_TYPED, std::string()); 270 content::PAGE_TRANSITION_TYPED, std::string());
271 EXPECT_EQ(0U, notifications.size()); 271 EXPECT_EQ(0U, notifications.size());
272 272
273 // After the beforeunload but before it commits, do a new navigation. 273 // After the beforeunload but before it commits, do a new navigation.
274 rvh()->SendShouldCloseACK(true); 274 rvh()->SendShouldCloseACK(true);
275 const GURL kNewURL("http://see"); 275 const GURL kNewURL("http://see");
276 contents()->pending_rvh()->SendNavigate(3, kNewURL); 276 contents()->pending_rvh()->SendNavigate(3, kNewURL);
277 277
278 // There should no longer be any pending entry, and the third navigation we 278 // There should no longer be any pending entry, and the third navigation we
279 // just made should be committed. 279 // just made should be committed.
280 EXPECT_TRUE(notifications.Check1AndReset( 280 EXPECT_TRUE(notifications.Check1AndReset(
281 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 281 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
282 EXPECT_EQ(-1, controller().pending_entry_index()); 282 EXPECT_EQ(-1, controller().pending_entry_index());
283 EXPECT_EQ(1, controller().last_committed_entry_index()); 283 EXPECT_EQ(1, controller().last_committed_entry_index());
284 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url()); 284 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url());
285 } 285 }
286 286
287 // Tests navigating to a new URL when there is a pending back/forward 287 // Tests navigating to a new URL when there is a pending back/forward
288 // navigation. This will happen if the user hits back, but before that commits, 288 // navigation. This will happen if the user hits back, but before that commits,
289 // they navigate somewhere new. 289 // they navigate somewhere new.
290 TEST_F(NavigationControllerTest, LoadURL_ExistingPending) { 290 TEST_F(NavigationControllerTest, LoadURL_ExistingPending) {
291 TestNotificationTracker notifications; 291 TestNotificationTracker notifications;
292 RegisterForAllNavNotifications(&notifications, &controller()); 292 RegisterForAllNavNotifications(&notifications, &controller());
293 293
294 // First make some history. 294 // First make some history.
295 const GURL kExistingURL1("http://foo/eh"); 295 const GURL kExistingURL1("http://foo/eh");
296 controller().LoadURL(kExistingURL1, GURL(), 296 controller().LoadURL(kExistingURL1, content::Referrer(),
297 content::PAGE_TRANSITION_TYPED, std::string()); 297 content::PAGE_TRANSITION_TYPED, std::string());
298 rvh()->SendNavigate(0, kExistingURL1); 298 rvh()->SendNavigate(0, kExistingURL1);
299 EXPECT_TRUE(notifications.Check1AndReset( 299 EXPECT_TRUE(notifications.Check1AndReset(
300 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 300 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
301 301
302 const GURL kExistingURL2("http://foo/bee"); 302 const GURL kExistingURL2("http://foo/bee");
303 controller().LoadURL(kExistingURL2, GURL(), 303 controller().LoadURL(kExistingURL2, content::Referrer(),
304 content::PAGE_TRANSITION_TYPED, std::string()); 304 content::PAGE_TRANSITION_TYPED, std::string());
305 rvh()->SendNavigate(1, kExistingURL2); 305 rvh()->SendNavigate(1, kExistingURL2);
306 EXPECT_TRUE(notifications.Check1AndReset( 306 EXPECT_TRUE(notifications.Check1AndReset(
307 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 307 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
308 308
309 // Now make a pending back/forward navigation. The zeroth entry should be 309 // Now make a pending back/forward navigation. The zeroth entry should be
310 // pending. 310 // pending.
311 controller().GoBack(); 311 controller().GoBack();
312 EXPECT_EQ(0U, notifications.size()); 312 EXPECT_EQ(0U, notifications.size());
313 EXPECT_EQ(0, controller().pending_entry_index()); 313 EXPECT_EQ(0, controller().pending_entry_index());
(...skipping 15 matching lines...) Expand all
329 329
330 // Tests navigating to an existing URL when there is a pending new navigation. 330 // Tests navigating to an existing URL when there is a pending new navigation.
331 // This will happen if the user enters a URL, but before that commits, the 331 // This will happen if the user enters a URL, but before that commits, the
332 // current page fires history.back(). 332 // current page fires history.back().
333 TEST_F(NavigationControllerTest, LoadURL_BackPreemptsPending) { 333 TEST_F(NavigationControllerTest, LoadURL_BackPreemptsPending) {
334 TestNotificationTracker notifications; 334 TestNotificationTracker notifications;
335 RegisterForAllNavNotifications(&notifications, &controller()); 335 RegisterForAllNavNotifications(&notifications, &controller());
336 336
337 // First make some history. 337 // First make some history.
338 const GURL kExistingURL1("http://foo/eh"); 338 const GURL kExistingURL1("http://foo/eh");
339 controller().LoadURL(kExistingURL1, GURL(), content::PAGE_TRANSITION_TYPED, 339 controller().LoadURL(kExistingURL1, content::Referrer(),
340 std::string()); 340 content::PAGE_TRANSITION_TYPED, std::string());
341 rvh()->SendNavigate(0, kExistingURL1); 341 rvh()->SendNavigate(0, kExistingURL1);
342 EXPECT_TRUE(notifications.Check1AndReset( 342 EXPECT_TRUE(notifications.Check1AndReset(
343 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 343 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
344 344
345 const GURL kExistingURL2("http://foo/bee"); 345 const GURL kExistingURL2("http://foo/bee");
346 controller().LoadURL(kExistingURL2, GURL(), content::PAGE_TRANSITION_TYPED, 346 controller().LoadURL(kExistingURL2, content::Referrer(),
347 std::string()); 347 content::PAGE_TRANSITION_TYPED, std::string());
348 rvh()->SendNavigate(1, kExistingURL2); 348 rvh()->SendNavigate(1, kExistingURL2);
349 EXPECT_TRUE(notifications.Check1AndReset( 349 EXPECT_TRUE(notifications.Check1AndReset(
350 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 350 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
351 351
352 // Now make a pending new navigation. 352 // Now make a pending new navigation.
353 const GURL kNewURL("http://foo/see"); 353 const GURL kNewURL("http://foo/see");
354 controller().LoadURL( 354 controller().LoadURL(
355 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 355 kNewURL, content::Referrer(), content::PAGE_TRANSITION_TYPED,
356 std::string());
356 EXPECT_EQ(0U, notifications.size()); 357 EXPECT_EQ(0U, notifications.size());
357 EXPECT_EQ(-1, controller().pending_entry_index()); 358 EXPECT_EQ(-1, controller().pending_entry_index());
358 EXPECT_EQ(1, controller().last_committed_entry_index()); 359 EXPECT_EQ(1, controller().last_committed_entry_index());
359 360
360 // Before that commits, a back navigation from the renderer commits. 361 // Before that commits, a back navigation from the renderer commits.
361 rvh()->SendNavigate(0, kExistingURL1); 362 rvh()->SendNavigate(0, kExistingURL1);
362 363
363 // There should no longer be any pending entry, and the back navigation we 364 // There should no longer be any pending entry, and the back navigation we
364 // just made should be committed. 365 // just made should be committed.
365 EXPECT_TRUE(notifications.Check1AndReset( 366 EXPECT_TRUE(notifications.Check1AndReset(
(...skipping 14 matching lines...) Expand all
380 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate()); 381 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate());
381 EXPECT_FALSE(contents()->delegate()); 382 EXPECT_FALSE(contents()->delegate());
382 contents()->set_delegate(delegate.get()); 383 contents()->set_delegate(delegate.get());
383 384
384 // Without any navigations, the renderer starts at about:blank. 385 // Without any navigations, the renderer starts at about:blank.
385 const GURL kExistingURL("about:blank"); 386 const GURL kExistingURL("about:blank");
386 387
387 // Now make a pending new navigation. 388 // Now make a pending new navigation.
388 const GURL kNewURL("http://eh"); 389 const GURL kNewURL("http://eh");
389 controller().LoadURL( 390 controller().LoadURL(
390 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 391 kNewURL, content::Referrer(), content::PAGE_TRANSITION_TYPED,
392 std::string());
391 EXPECT_EQ(0U, notifications.size()); 393 EXPECT_EQ(0U, notifications.size());
392 EXPECT_EQ(-1, controller().pending_entry_index()); 394 EXPECT_EQ(-1, controller().pending_entry_index());
393 EXPECT_TRUE(controller().pending_entry()); 395 EXPECT_TRUE(controller().pending_entry());
394 EXPECT_EQ(-1, controller().last_committed_entry_index()); 396 EXPECT_EQ(-1, controller().last_committed_entry_index());
395 EXPECT_EQ(1, delegate->navigation_state_change_count()); 397 EXPECT_EQ(1, delegate->navigation_state_change_count());
396 398
397 // Before that commits, a document.write and location.reload can cause the 399 // Before that commits, a document.write and location.reload can cause the
398 // renderer to send a FrameNavigate with page_id -1. 400 // renderer to send a FrameNavigate with page_id -1.
399 rvh()->SendNavigate(-1, kExistingURL); 401 rvh()->SendNavigate(-1, kExistingURL);
400 402
(...skipping 16 matching lines...) Expand all
417 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate()); 419 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate());
418 EXPECT_FALSE(contents()->delegate()); 420 EXPECT_FALSE(contents()->delegate());
419 contents()->set_delegate(delegate.get()); 421 contents()->set_delegate(delegate.get());
420 422
421 // Without any navigations, the renderer starts at about:blank. 423 // Without any navigations, the renderer starts at about:blank.
422 const GURL kExistingURL("about:blank"); 424 const GURL kExistingURL("about:blank");
423 425
424 // Now make a pending new navigation. 426 // Now make a pending new navigation.
425 const GURL kNewURL("http://eh"); 427 const GURL kNewURL("http://eh");
426 controller().LoadURL( 428 controller().LoadURL(
427 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 429 kNewURL, content::Referrer(), content::PAGE_TRANSITION_TYPED,
430 std::string());
428 EXPECT_EQ(0U, notifications.size()); 431 EXPECT_EQ(0U, notifications.size());
429 EXPECT_EQ(-1, controller().pending_entry_index()); 432 EXPECT_EQ(-1, controller().pending_entry_index());
430 EXPECT_TRUE(controller().pending_entry()); 433 EXPECT_TRUE(controller().pending_entry());
431 EXPECT_EQ(-1, controller().last_committed_entry_index()); 434 EXPECT_EQ(-1, controller().last_committed_entry_index());
432 EXPECT_EQ(1, delegate->navigation_state_change_count()); 435 EXPECT_EQ(1, delegate->navigation_state_change_count());
433 436
434 // It may abort before committing, if it's a download or due to a stop or 437 // It may abort before committing, if it's a download or due to a stop or
435 // a new navigation from the user. 438 // a new navigation from the user.
436 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; 439 ViewHostMsg_DidFailProvisionalLoadWithError_Params params;
437 params.frame_id = 1; 440 params.frame_id = 1;
(...skipping 26 matching lines...) Expand all
464 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate()); 467 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate());
465 EXPECT_FALSE(contents()->delegate()); 468 EXPECT_FALSE(contents()->delegate());
466 contents()->set_delegate(delegate.get()); 469 contents()->set_delegate(delegate.get());
467 470
468 // Without any navigations, the renderer starts at about:blank. 471 // Without any navigations, the renderer starts at about:blank.
469 const GURL kExistingURL("about:blank"); 472 const GURL kExistingURL("about:blank");
470 473
471 // Now make a pending new navigation. 474 // Now make a pending new navigation.
472 const GURL kNewURL("http://eh"); 475 const GURL kNewURL("http://eh");
473 controller().LoadURL( 476 controller().LoadURL(
474 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 477 kNewURL, content::Referrer(), content::PAGE_TRANSITION_TYPED,
478 std::string());
475 EXPECT_EQ(0U, notifications.size()); 479 EXPECT_EQ(0U, notifications.size());
476 EXPECT_EQ(-1, controller().pending_entry_index()); 480 EXPECT_EQ(-1, controller().pending_entry_index());
477 EXPECT_TRUE(controller().pending_entry()); 481 EXPECT_TRUE(controller().pending_entry());
478 EXPECT_EQ(-1, controller().last_committed_entry_index()); 482 EXPECT_EQ(-1, controller().last_committed_entry_index());
479 EXPECT_EQ(1, delegate->navigation_state_change_count()); 483 EXPECT_EQ(1, delegate->navigation_state_change_count());
480 484
481 // Now the navigation redirects. 485 // Now the navigation redirects.
482 const GURL kRedirectURL("http://bee"); 486 const GURL kRedirectURL("http://bee");
483 rvh()->TestOnMessageReceived( 487 rvh()->TestOnMessageReceived(
484 ViewHostMsg_DidRedirectProvisionalLoad(0, // routing_id 488 ViewHostMsg_DidRedirectProvisionalLoad(0, // routing_id
(...skipping 29 matching lines...) Expand all
514 contents()->set_delegate(NULL); 518 contents()->set_delegate(NULL);
515 } 519 }
516 520
517 TEST_F(NavigationControllerTest, Reload) { 521 TEST_F(NavigationControllerTest, Reload) {
518 TestNotificationTracker notifications; 522 TestNotificationTracker notifications;
519 RegisterForAllNavNotifications(&notifications, &controller()); 523 RegisterForAllNavNotifications(&notifications, &controller());
520 524
521 const GURL url1("http://foo1"); 525 const GURL url1("http://foo1");
522 526
523 controller().LoadURL( 527 controller().LoadURL(
524 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 528 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
525 EXPECT_EQ(0U, notifications.size()); 529 EXPECT_EQ(0U, notifications.size());
526 rvh()->SendNavigate(0, url1); 530 rvh()->SendNavigate(0, url1);
527 EXPECT_TRUE(notifications.Check1AndReset( 531 EXPECT_TRUE(notifications.Check1AndReset(
528 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 532 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
529 533
530 controller().Reload(true); 534 controller().Reload(true);
531 EXPECT_EQ(0U, notifications.size()); 535 EXPECT_EQ(0U, notifications.size());
532 536
533 // The reload is pending. 537 // The reload is pending.
534 EXPECT_EQ(controller().entry_count(), 1); 538 EXPECT_EQ(controller().entry_count(), 1);
(...skipping 20 matching lines...) Expand all
555 559
556 // Tests what happens when a reload navigation produces a new page. 560 // Tests what happens when a reload navigation produces a new page.
557 TEST_F(NavigationControllerTest, Reload_GeneratesNewPage) { 561 TEST_F(NavigationControllerTest, Reload_GeneratesNewPage) {
558 TestNotificationTracker notifications; 562 TestNotificationTracker notifications;
559 RegisterForAllNavNotifications(&notifications, &controller()); 563 RegisterForAllNavNotifications(&notifications, &controller());
560 564
561 const GURL url1("http://foo1"); 565 const GURL url1("http://foo1");
562 const GURL url2("http://foo2"); 566 const GURL url2("http://foo2");
563 567
564 controller().LoadURL( 568 controller().LoadURL(
565 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 569 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
566 rvh()->SendNavigate(0, url1); 570 rvh()->SendNavigate(0, url1);
567 EXPECT_TRUE(notifications.Check1AndReset( 571 EXPECT_TRUE(notifications.Check1AndReset(
568 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 572 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
569 573
570 controller().Reload(true); 574 controller().Reload(true);
571 EXPECT_EQ(0U, notifications.size()); 575 EXPECT_EQ(0U, notifications.size());
572 576
573 rvh()->SendNavigate(1, url2); 577 rvh()->SendNavigate(1, url2);
574 EXPECT_TRUE(notifications.Check1AndReset( 578 EXPECT_TRUE(notifications.Check1AndReset(
575 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 579 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 // Tests what happens when a back navigation produces a new page. 632 // Tests what happens when a back navigation produces a new page.
629 TEST_F(NavigationControllerTest, Back_GeneratesNewPage) { 633 TEST_F(NavigationControllerTest, Back_GeneratesNewPage) {
630 TestNotificationTracker notifications; 634 TestNotificationTracker notifications;
631 RegisterForAllNavNotifications(&notifications, &controller()); 635 RegisterForAllNavNotifications(&notifications, &controller());
632 636
633 const GURL url1("http://foo/1"); 637 const GURL url1("http://foo/1");
634 const GURL url2("http://foo/2"); 638 const GURL url2("http://foo/2");
635 const GURL url3("http://foo/3"); 639 const GURL url3("http://foo/3");
636 640
637 controller().LoadURL( 641 controller().LoadURL(
638 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 642 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
639 rvh()->SendNavigate(0, url1); 643 rvh()->SendNavigate(0, url1);
640 EXPECT_TRUE(notifications.Check1AndReset( 644 EXPECT_TRUE(notifications.Check1AndReset(
641 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 645 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
642 646
643 controller().LoadURL( 647 controller().LoadURL(
644 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 648 url2, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
645 rvh()->SendNavigate(1, url2); 649 rvh()->SendNavigate(1, url2);
646 EXPECT_TRUE(notifications.Check1AndReset( 650 EXPECT_TRUE(notifications.Check1AndReset(
647 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 651 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
648 652
649 controller().GoBack(); 653 controller().GoBack();
650 EXPECT_EQ(0U, notifications.size()); 654 EXPECT_EQ(0U, notifications.size());
651 655
652 // We should now have a pending navigation to go back. 656 // We should now have a pending navigation to go back.
653 EXPECT_EQ(controller().entry_count(), 2); 657 EXPECT_EQ(controller().entry_count(), 2);
654 EXPECT_EQ(controller().last_committed_entry_index(), 1); 658 EXPECT_EQ(controller().last_committed_entry_index(), 1);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 EXPECT_TRUE(notifications.Check1AndReset( 691 EXPECT_TRUE(notifications.Check1AndReset(
688 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 692 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
689 693
690 // controller().LoadURL(kUrl2, content::PAGE_TRANSITION_TYPED); 694 // controller().LoadURL(kUrl2, content::PAGE_TRANSITION_TYPED);
691 rvh()->SendNavigate(1, kUrl2); 695 rvh()->SendNavigate(1, kUrl2);
692 EXPECT_TRUE(notifications.Check1AndReset( 696 EXPECT_TRUE(notifications.Check1AndReset(
693 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 697 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
694 698
695 // Now start a new pending navigation and go back before it commits. 699 // Now start a new pending navigation and go back before it commits.
696 controller().LoadURL( 700 controller().LoadURL(
697 kUrl3, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 701 kUrl3, content::Referrer(), content::PAGE_TRANSITION_TYPED,
702 std::string());
698 EXPECT_EQ(-1, controller().pending_entry_index()); 703 EXPECT_EQ(-1, controller().pending_entry_index());
699 EXPECT_EQ(kUrl3, controller().pending_entry()->url()); 704 EXPECT_EQ(kUrl3, controller().pending_entry()->url());
700 controller().GoBack(); 705 controller().GoBack();
701 706
702 // The pending navigation should now be the "back" item and the new one 707 // The pending navigation should now be the "back" item and the new one
703 // should be gone. 708 // should be gone.
704 EXPECT_EQ(0, controller().pending_entry_index()); 709 EXPECT_EQ(0, controller().pending_entry_index());
705 EXPECT_EQ(kUrl1, controller().pending_entry()->url()); 710 EXPECT_EQ(kUrl1, controller().pending_entry()->url());
706 } 711 }
707 712
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 // as SAME_PAGE navigation even when we are redirected to some other page. 854 // as SAME_PAGE navigation even when we are redirected to some other page.
850 TEST_F(NavigationControllerTest, Redirect) { 855 TEST_F(NavigationControllerTest, Redirect) {
851 TestNotificationTracker notifications; 856 TestNotificationTracker notifications;
852 RegisterForAllNavNotifications(&notifications, &controller()); 857 RegisterForAllNavNotifications(&notifications, &controller());
853 858
854 const GURL url1("http://foo1"); 859 const GURL url1("http://foo1");
855 const GURL url2("http://foo2"); // Redirection target 860 const GURL url2("http://foo2"); // Redirection target
856 861
857 // First request 862 // First request
858 controller().LoadURL( 863 controller().LoadURL(
859 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 864 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
860 865
861 EXPECT_EQ(0U, notifications.size()); 866 EXPECT_EQ(0U, notifications.size());
862 rvh()->SendNavigate(0, url2); 867 rvh()->SendNavigate(0, url2);
863 EXPECT_TRUE(notifications.Check1AndReset( 868 EXPECT_TRUE(notifications.Check1AndReset(
864 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 869 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
865 870
866 // Second request 871 // Second request
867 controller().LoadURL( 872 controller().LoadURL(
868 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 873 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
869 874
870 EXPECT_TRUE(controller().pending_entry()); 875 EXPECT_TRUE(controller().pending_entry());
871 EXPECT_EQ(controller().pending_entry_index(), -1); 876 EXPECT_EQ(controller().pending_entry_index(), -1);
872 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 877 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
873 878
874 ViewHostMsg_FrameNavigate_Params params; 879 ViewHostMsg_FrameNavigate_Params params;
875 params.page_id = 0; 880 params.page_id = 0;
876 params.url = url2; 881 params.url = url2;
877 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT; 882 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT;
878 params.redirects.push_back(GURL("http://foo1")); 883 params.redirects.push_back(GURL("http://foo1"));
(...skipping 27 matching lines...) Expand all
906 // must be cleared. http://crbug.com/21245 911 // must be cleared. http://crbug.com/21245
907 TEST_F(NavigationControllerTest, PostThenRedirect) { 912 TEST_F(NavigationControllerTest, PostThenRedirect) {
908 TestNotificationTracker notifications; 913 TestNotificationTracker notifications;
909 RegisterForAllNavNotifications(&notifications, &controller()); 914 RegisterForAllNavNotifications(&notifications, &controller());
910 915
911 const GURL url1("http://foo1"); 916 const GURL url1("http://foo1");
912 const GURL url2("http://foo2"); // Redirection target 917 const GURL url2("http://foo2"); // Redirection target
913 918
914 // First request as POST 919 // First request as POST
915 controller().LoadURL( 920 controller().LoadURL(
916 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 921 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
917 controller().GetActiveEntry()->set_has_post_data(true); 922 controller().GetActiveEntry()->set_has_post_data(true);
918 923
919 EXPECT_EQ(0U, notifications.size()); 924 EXPECT_EQ(0U, notifications.size());
920 rvh()->SendNavigate(0, url2); 925 rvh()->SendNavigate(0, url2);
921 EXPECT_TRUE(notifications.Check1AndReset( 926 EXPECT_TRUE(notifications.Check1AndReset(
922 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 927 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
923 928
924 // Second request 929 // Second request
925 controller().LoadURL( 930 controller().LoadURL(
926 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 931 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
927 932
928 EXPECT_TRUE(controller().pending_entry()); 933 EXPECT_TRUE(controller().pending_entry());
929 EXPECT_EQ(controller().pending_entry_index(), -1); 934 EXPECT_EQ(controller().pending_entry_index(), -1);
930 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 935 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
931 936
932 ViewHostMsg_FrameNavigate_Params params; 937 ViewHostMsg_FrameNavigate_Params params;
933 params.page_id = 0; 938 params.page_id = 0;
934 params.url = url2; 939 params.url = url2;
935 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT; 940 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT;
936 params.redirects.push_back(GURL("http://foo1")); 941 params.redirects.push_back(GURL("http://foo1"));
(...skipping 26 matching lines...) Expand all
963 // A redirect right off the bat should be a NEW_PAGE. 968 // A redirect right off the bat should be a NEW_PAGE.
964 TEST_F(NavigationControllerTest, ImmediateRedirect) { 969 TEST_F(NavigationControllerTest, ImmediateRedirect) {
965 TestNotificationTracker notifications; 970 TestNotificationTracker notifications;
966 RegisterForAllNavNotifications(&notifications, &controller()); 971 RegisterForAllNavNotifications(&notifications, &controller());
967 972
968 const GURL url1("http://foo1"); 973 const GURL url1("http://foo1");
969 const GURL url2("http://foo2"); // Redirection target 974 const GURL url2("http://foo2"); // Redirection target
970 975
971 // First request 976 // First request
972 controller().LoadURL( 977 controller().LoadURL(
973 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 978 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
974 979
975 EXPECT_TRUE(controller().pending_entry()); 980 EXPECT_TRUE(controller().pending_entry());
976 EXPECT_EQ(controller().pending_entry_index(), -1); 981 EXPECT_EQ(controller().pending_entry_index(), -1);
977 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 982 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
978 983
979 ViewHostMsg_FrameNavigate_Params params; 984 ViewHostMsg_FrameNavigate_Params params;
980 params.page_id = 0; 985 params.page_id = 0;
981 params.url = url2; 986 params.url = url2;
982 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT; 987 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT;
983 params.redirects.push_back(GURL("http://foo1")); 988 params.redirects.push_back(GURL("http://foo1"));
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
1414 size_t original_count = NavigationController::max_entry_count(); 1419 size_t original_count = NavigationController::max_entry_count();
1415 const int kMaxEntryCount = 5; 1420 const int kMaxEntryCount = 5;
1416 1421
1417 NavigationController::set_max_entry_count_for_testing(kMaxEntryCount); 1422 NavigationController::set_max_entry_count_for_testing(kMaxEntryCount);
1418 1423
1419 int url_index; 1424 int url_index;
1420 // Load up to the max count, all entries should be there. 1425 // Load up to the max count, all entries should be there.
1421 for (url_index = 0; url_index < kMaxEntryCount; url_index++) { 1426 for (url_index = 0; url_index < kMaxEntryCount; url_index++) {
1422 GURL url(StringPrintf("http://www.a.com/%d", url_index)); 1427 GURL url(StringPrintf("http://www.a.com/%d", url_index));
1423 controller().LoadURL( 1428 controller().LoadURL(
1424 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1429 url, content::Referrer(), content::PAGE_TRANSITION_TYPED,
1430 std::string());
1425 rvh()->SendNavigate(url_index, url); 1431 rvh()->SendNavigate(url_index, url);
1426 } 1432 }
1427 1433
1428 EXPECT_EQ(controller().entry_count(), kMaxEntryCount); 1434 EXPECT_EQ(controller().entry_count(), kMaxEntryCount);
1429 1435
1430 // Created a PrunedListener to observe prune notifications. 1436 // Created a PrunedListener to observe prune notifications.
1431 PrunedListener listener(&controller()); 1437 PrunedListener listener(&controller());
1432 1438
1433 // Navigate some more. 1439 // Navigate some more.
1434 GURL url(StringPrintf("http://www.a.com/%d", url_index)); 1440 GURL url(StringPrintf("http://www.a.com/%d", url_index));
1435 controller().LoadURL( 1441 controller().LoadURL(
1436 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1442 url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1437 rvh()->SendNavigate(url_index, url); 1443 rvh()->SendNavigate(url_index, url);
1438 url_index++; 1444 url_index++;
1439 1445
1440 // We should have got a pruned navigation. 1446 // We should have got a pruned navigation.
1441 EXPECT_EQ(1, listener.notification_count_); 1447 EXPECT_EQ(1, listener.notification_count_);
1442 EXPECT_TRUE(listener.details_.from_front); 1448 EXPECT_TRUE(listener.details_.from_front);
1443 EXPECT_EQ(1, listener.details_.count); 1449 EXPECT_EQ(1, listener.details_.count);
1444 1450
1445 // We expect http://www.a.com/0 to be gone. 1451 // We expect http://www.a.com/0 to be gone.
1446 EXPECT_EQ(controller().entry_count(), kMaxEntryCount); 1452 EXPECT_EQ(controller().entry_count(), kMaxEntryCount);
1447 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(), 1453 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(),
1448 GURL("http:////www.a.com/1")); 1454 GURL("http:////www.a.com/1"));
1449 1455
1450 // More navigations. 1456 // More navigations.
1451 for (int i = 0; i < 3; i++) { 1457 for (int i = 0; i < 3; i++) {
1452 url = GURL(StringPrintf("http:////www.a.com/%d", url_index)); 1458 url = GURL(StringPrintf("http:////www.a.com/%d", url_index));
1453 controller().LoadURL( 1459 controller().LoadURL(
1454 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1460 url, content::Referrer(), content::PAGE_TRANSITION_TYPED,
1461 std::string());
1455 rvh()->SendNavigate(url_index, url); 1462 rvh()->SendNavigate(url_index, url);
1456 url_index++; 1463 url_index++;
1457 } 1464 }
1458 EXPECT_EQ(controller().entry_count(), kMaxEntryCount); 1465 EXPECT_EQ(controller().entry_count(), kMaxEntryCount);
1459 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(), 1466 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(),
1460 GURL("http:////www.a.com/4")); 1467 GURL("http:////www.a.com/4"));
1461 1468
1462 NavigationController::set_max_entry_count_for_testing(original_count); 1469 NavigationController::set_max_entry_count_for_testing(original_count);
1463 } 1470 }
1464 1471
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1594 our_controller.GetLastCommittedEntry()->site_instance()->site()); 1601 our_controller.GetLastCommittedEntry()->site_instance()->site());
1595 EXPECT_EQ(NavigationEntry::RESTORE_NONE, 1602 EXPECT_EQ(NavigationEntry::RESTORE_NONE,
1596 our_controller.GetEntryAtIndex(0)->restore_type()); 1603 our_controller.GetEntryAtIndex(0)->restore_type());
1597 } 1604 }
1598 1605
1599 // Make sure that the page type and stuff is correct after an interstitial. 1606 // Make sure that the page type and stuff is correct after an interstitial.
1600 TEST_F(NavigationControllerTest, Interstitial) { 1607 TEST_F(NavigationControllerTest, Interstitial) {
1601 // First navigate somewhere normal. 1608 // First navigate somewhere normal.
1602 const GURL url1("http://foo"); 1609 const GURL url1("http://foo");
1603 controller().LoadURL( 1610 controller().LoadURL(
1604 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1611 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1605 rvh()->SendNavigate(0, url1); 1612 rvh()->SendNavigate(0, url1);
1606 1613
1607 // Now navigate somewhere with an interstitial. 1614 // Now navigate somewhere with an interstitial.
1608 const GURL url2("http://bar"); 1615 const GURL url2("http://bar");
1609 controller().LoadURL( 1616 controller().LoadURL(
1610 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1617 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1611 controller().pending_entry()->set_page_type(content::PAGE_TYPE_INTERSTITIAL); 1618 controller().pending_entry()->set_page_type(content::PAGE_TYPE_INTERSTITIAL);
1612 1619
1613 // At this point the interstitial will be displayed and the load will still 1620 // At this point the interstitial will be displayed and the load will still
1614 // be pending. If the user continues, the load will commit. 1621 // be pending. If the user continues, the load will commit.
1615 rvh()->SendNavigate(1, url2); 1622 rvh()->SendNavigate(1, url2);
1616 1623
1617 // The page should be a normal page again. 1624 // The page should be a normal page again.
1618 EXPECT_EQ(url2, controller().GetLastCommittedEntry()->url()); 1625 EXPECT_EQ(url2, controller().GetLastCommittedEntry()->url());
1619 EXPECT_EQ(content::PAGE_TYPE_NORMAL, 1626 EXPECT_EQ(content::PAGE_TYPE_NORMAL,
1620 controller().GetLastCommittedEntry()->page_type()); 1627 controller().GetLastCommittedEntry()->page_type());
1621 } 1628 }
1622 1629
1623 TEST_F(NavigationControllerTest, RemoveEntry) { 1630 TEST_F(NavigationControllerTest, RemoveEntry) {
1624 const GURL url1("http://foo/1"); 1631 const GURL url1("http://foo/1");
1625 const GURL url2("http://foo/2"); 1632 const GURL url2("http://foo/2");
1626 const GURL url3("http://foo/3"); 1633 const GURL url3("http://foo/3");
1627 const GURL url4("http://foo/4"); 1634 const GURL url4("http://foo/4");
1628 const GURL url5("http://foo/5"); 1635 const GURL url5("http://foo/5");
1629 const GURL pending_url("http://foo/pending"); 1636 const GURL pending_url("http://foo/pending");
1630 const GURL default_url("http://foo/default"); 1637 const GURL default_url("http://foo/default");
1631 1638
1632 controller().LoadURL( 1639 controller().LoadURL(
1633 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1640 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1634 rvh()->SendNavigate(0, url1); 1641 rvh()->SendNavigate(0, url1);
1635 controller().LoadURL( 1642 controller().LoadURL(
1636 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1643 url2, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1637 rvh()->SendNavigate(1, url2); 1644 rvh()->SendNavigate(1, url2);
1638 controller().LoadURL( 1645 controller().LoadURL(
1639 url3, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1646 url3, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1640 rvh()->SendNavigate(2, url3); 1647 rvh()->SendNavigate(2, url3);
1641 controller().LoadURL( 1648 controller().LoadURL(
1642 url4, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1649 url4, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1643 rvh()->SendNavigate(3, url4); 1650 rvh()->SendNavigate(3, url4);
1644 controller().LoadURL( 1651 controller().LoadURL(
1645 url5, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1652 url5, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1646 rvh()->SendNavigate(4, url5); 1653 rvh()->SendNavigate(4, url5);
1647 1654
1648 // Remove the last entry. 1655 // Remove the last entry.
1649 controller().RemoveEntryAtIndex( 1656 controller().RemoveEntryAtIndex(
1650 controller().entry_count() - 1, default_url); 1657 controller().entry_count() - 1, default_url);
1651 EXPECT_EQ(4, controller().entry_count()); 1658 EXPECT_EQ(4, controller().entry_count());
1652 EXPECT_EQ(3, controller().last_committed_entry_index()); 1659 EXPECT_EQ(3, controller().last_committed_entry_index());
1653 NavigationEntry* pending_entry = controller().pending_entry(); 1660 NavigationEntry* pending_entry = controller().pending_entry();
1654 EXPECT_TRUE(pending_entry && pending_entry->url() == url4); 1661 EXPECT_TRUE(pending_entry && pending_entry->url() == url4);
1655 1662
1656 // Add a pending entry. 1663 // Add a pending entry.
1657 controller().LoadURL(pending_url, GURL(), content::PAGE_TRANSITION_TYPED, 1664 controller().LoadURL(pending_url, content::Referrer(),
1658 std::string()); 1665 content::PAGE_TRANSITION_TYPED, std::string());
1659 // Now remove the last entry. 1666 // Now remove the last entry.
1660 controller().RemoveEntryAtIndex( 1667 controller().RemoveEntryAtIndex(
1661 controller().entry_count() - 1, default_url); 1668 controller().entry_count() - 1, default_url);
1662 // The pending entry should have been discarded and the last committed entry 1669 // The pending entry should have been discarded and the last committed entry
1663 // removed. 1670 // removed.
1664 EXPECT_EQ(3, controller().entry_count()); 1671 EXPECT_EQ(3, controller().entry_count());
1665 EXPECT_EQ(2, controller().last_committed_entry_index()); 1672 EXPECT_EQ(2, controller().last_committed_entry_index());
1666 pending_entry = controller().pending_entry(); 1673 pending_entry = controller().pending_entry();
1667 EXPECT_TRUE(pending_entry && pending_entry->url() == url3); 1674 EXPECT_TRUE(pending_entry && pending_entry->url() == url3);
1668 1675
(...skipping 22 matching lines...) Expand all
1691 RegisterForAllNavNotifications(&notifications, &controller()); 1698 RegisterForAllNavNotifications(&notifications, &controller());
1692 1699
1693 const GURL url0("http://foo/0"); 1700 const GURL url0("http://foo/0");
1694 const GURL url1("http://foo/1"); 1701 const GURL url1("http://foo/1");
1695 const GURL url2("http://foo/2"); 1702 const GURL url2("http://foo/2");
1696 const GURL url3("http://foo/3"); 1703 const GURL url3("http://foo/3");
1697 const GURL url4("http://foo/4"); 1704 const GURL url4("http://foo/4");
1698 const GURL transient_url("http://foo/transient"); 1705 const GURL transient_url("http://foo/transient");
1699 1706
1700 controller().LoadURL( 1707 controller().LoadURL(
1701 url0, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1708 url0, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1702 rvh()->SendNavigate(0, url0); 1709 rvh()->SendNavigate(0, url0);
1703 controller().LoadURL( 1710 controller().LoadURL(
1704 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1711 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1705 rvh()->SendNavigate(1, url1); 1712 rvh()->SendNavigate(1, url1);
1706 1713
1707 notifications.Reset(); 1714 notifications.Reset();
1708 1715
1709 // Adding a transient with no pending entry. 1716 // Adding a transient with no pending entry.
1710 NavigationEntry* transient_entry = new NavigationEntry; 1717 NavigationEntry* transient_entry = new NavigationEntry;
1711 transient_entry->set_url(transient_url); 1718 transient_entry->set_url(transient_url);
1712 controller().AddTransientEntry(transient_entry); 1719 controller().AddTransientEntry(transient_entry);
1713 1720
1714 // We should not have received any notifications. 1721 // We should not have received any notifications.
1715 EXPECT_EQ(0U, notifications.size()); 1722 EXPECT_EQ(0U, notifications.size());
1716 1723
1717 // Check our state. 1724 // Check our state.
1718 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url()); 1725 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url());
1719 EXPECT_EQ(controller().entry_count(), 3); 1726 EXPECT_EQ(controller().entry_count(), 3);
1720 EXPECT_EQ(controller().last_committed_entry_index(), 1); 1727 EXPECT_EQ(controller().last_committed_entry_index(), 1);
1721 EXPECT_EQ(controller().pending_entry_index(), -1); 1728 EXPECT_EQ(controller().pending_entry_index(), -1);
1722 EXPECT_TRUE(controller().GetLastCommittedEntry()); 1729 EXPECT_TRUE(controller().GetLastCommittedEntry());
1723 EXPECT_FALSE(controller().pending_entry()); 1730 EXPECT_FALSE(controller().pending_entry());
1724 EXPECT_TRUE(controller().CanGoBack()); 1731 EXPECT_TRUE(controller().CanGoBack());
1725 EXPECT_FALSE(controller().CanGoForward()); 1732 EXPECT_FALSE(controller().CanGoForward());
1726 EXPECT_EQ(contents()->GetMaxPageID(), 1); 1733 EXPECT_EQ(contents()->GetMaxPageID(), 1);
1727 1734
1728 // Navigate. 1735 // Navigate.
1729 controller().LoadURL( 1736 controller().LoadURL(
1730 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1737 url2, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1731 rvh()->SendNavigate(2, url2); 1738 rvh()->SendNavigate(2, url2);
1732 1739
1733 // We should have navigated, transient entry should be gone. 1740 // We should have navigated, transient entry should be gone.
1734 EXPECT_EQ(url2, controller().GetActiveEntry()->url()); 1741 EXPECT_EQ(url2, controller().GetActiveEntry()->url());
1735 EXPECT_EQ(controller().entry_count(), 3); 1742 EXPECT_EQ(controller().entry_count(), 3);
1736 1743
1737 // Add a transient again, then navigate with no pending entry this time. 1744 // Add a transient again, then navigate with no pending entry this time.
1738 transient_entry = new NavigationEntry; 1745 transient_entry = new NavigationEntry;
1739 transient_entry->set_url(transient_url); 1746 transient_entry->set_url(transient_url);
1740 controller().AddTransientEntry(transient_entry); 1747 controller().AddTransientEntry(transient_entry);
1741 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url()); 1748 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url());
1742 rvh()->SendNavigate(3, url3); 1749 rvh()->SendNavigate(3, url3);
1743 // Transient entry should be gone. 1750 // Transient entry should be gone.
1744 EXPECT_EQ(url3, controller().GetActiveEntry()->url()); 1751 EXPECT_EQ(url3, controller().GetActiveEntry()->url());
1745 EXPECT_EQ(controller().entry_count(), 4); 1752 EXPECT_EQ(controller().entry_count(), 4);
1746 1753
1747 // Initiate a navigation, add a transient then commit navigation. 1754 // Initiate a navigation, add a transient then commit navigation.
1748 controller().LoadURL( 1755 controller().LoadURL(
1749 url4, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1756 url4, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1750 transient_entry = new NavigationEntry; 1757 transient_entry = new NavigationEntry;
1751 transient_entry->set_url(transient_url); 1758 transient_entry->set_url(transient_url);
1752 controller().AddTransientEntry(transient_entry); 1759 controller().AddTransientEntry(transient_entry);
1753 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url()); 1760 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url());
1754 rvh()->SendNavigate(4, url4); 1761 rvh()->SendNavigate(4, url4);
1755 EXPECT_EQ(url4, controller().GetActiveEntry()->url()); 1762 EXPECT_EQ(url4, controller().GetActiveEntry()->url());
1756 EXPECT_EQ(controller().entry_count(), 5); 1763 EXPECT_EQ(controller().entry_count(), 5);
1757 1764
1758 // Add a transient and go back. This should simply remove the transient. 1765 // Add a transient and go back. This should simply remove the transient.
1759 transient_entry = new NavigationEntry; 1766 transient_entry = new NavigationEntry;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1822 // See http://crbug.com/99016. 1829 // See http://crbug.com/99016.
1823 TEST_F(NavigationControllerTest, DontShowRendererURLUntilCommit) { 1830 TEST_F(NavigationControllerTest, DontShowRendererURLUntilCommit) {
1824 TestNotificationTracker notifications; 1831 TestNotificationTracker notifications;
1825 RegisterForAllNavNotifications(&notifications, &controller()); 1832 RegisterForAllNavNotifications(&notifications, &controller());
1826 1833
1827 const GURL url0("http://foo/0"); 1834 const GURL url0("http://foo/0");
1828 const GURL url1("http://foo/1"); 1835 const GURL url1("http://foo/1");
1829 1836
1830 // For typed navigations (browser-initiated), both active and visible entries 1837 // For typed navigations (browser-initiated), both active and visible entries
1831 // should update before commit. 1838 // should update before commit.
1832 controller().LoadURL(url0, GURL(), content::PAGE_TRANSITION_TYPED, 1839 controller().LoadURL(url0, content::Referrer(),
1833 std::string()); 1840 content::PAGE_TRANSITION_TYPED, std::string());
1834 EXPECT_EQ(url0, controller().GetActiveEntry()->url()); 1841 EXPECT_EQ(url0, controller().GetActiveEntry()->url());
1835 EXPECT_EQ(url0, controller().GetVisibleEntry()->url()); 1842 EXPECT_EQ(url0, controller().GetVisibleEntry()->url());
1836 rvh()->SendNavigate(0, url0); 1843 rvh()->SendNavigate(0, url0);
1837 1844
1838 // For link clicks (renderer-initiated navigations), the active entry should 1845 // For link clicks (renderer-initiated navigations), the active entry should
1839 // update before commit but the visible should not. 1846 // update before commit but the visible should not.
1840 controller().LoadURLFromRenderer(url1, GURL(), content::PAGE_TRANSITION_LINK, 1847 controller().LoadURLFromRenderer(url1, content::Referrer(),
1848 content::PAGE_TRANSITION_LINK,
1841 std::string()); 1849 std::string());
1842 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 1850 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
1843 EXPECT_EQ(url0, controller().GetVisibleEntry()->url()); 1851 EXPECT_EQ(url0, controller().GetVisibleEntry()->url());
1844 EXPECT_TRUE(controller().pending_entry()->is_renderer_initiated()); 1852 EXPECT_TRUE(controller().pending_entry()->is_renderer_initiated());
1845 1853
1846 // After commit, both should be updated, and we should no longer treat the 1854 // After commit, both should be updated, and we should no longer treat the
1847 // entry as renderer-initiated. 1855 // entry as renderer-initiated.
1848 rvh()->SendNavigate(1, url1); 1856 rvh()->SendNavigate(1, url1);
1849 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 1857 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
1850 EXPECT_EQ(url1, controller().GetVisibleEntry()->url()); 1858 EXPECT_EQ(url1, controller().GetVisibleEntry()->url());
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 // Tests a subframe navigation while a toplevel navigation is pending. 1956 // Tests a subframe navigation while a toplevel navigation is pending.
1949 // http://crbug.com/43967 1957 // http://crbug.com/43967
1950 TEST_F(NavigationControllerTest, SubframeWhilePending) { 1958 TEST_F(NavigationControllerTest, SubframeWhilePending) {
1951 // Load the first page. 1959 // Load the first page.
1952 const GURL url1("http://foo/"); 1960 const GURL url1("http://foo/");
1953 NavigateAndCommit(url1); 1961 NavigateAndCommit(url1);
1954 1962
1955 // Now start a pending load to a totally different page, but don't commit it. 1963 // Now start a pending load to a totally different page, but don't commit it.
1956 const GURL url2("http://bar/"); 1964 const GURL url2("http://bar/");
1957 controller().LoadURL( 1965 controller().LoadURL(
1958 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 1966 url2, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
1959 1967
1960 // Send a subframe update from the first page, as if one had just 1968 // Send a subframe update from the first page, as if one had just
1961 // automatically loaded. Auto subframes don't increment the page ID. 1969 // automatically loaded. Auto subframes don't increment the page ID.
1962 const GURL url1_sub("http://foo/subframe"); 1970 const GURL url1_sub("http://foo/subframe");
1963 ViewHostMsg_FrameNavigate_Params params; 1971 ViewHostMsg_FrameNavigate_Params params;
1964 params.page_id = controller().GetLastCommittedEntry()->page_id(); 1972 params.page_id = controller().GetLastCommittedEntry()->page_id();
1965 params.url = url1_sub; 1973 params.url = url1_sub;
1966 params.transition = content::PAGE_TRANSITION_AUTO_SUBFRAME; 1974 params.transition = content::PAGE_TRANSITION_AUTO_SUBFRAME;
1967 params.should_update_history = false; 1975 params.should_update_history = false;
1968 params.gesture = NavigationGestureAuto; 1976 params.gesture = NavigationGestureAuto;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
2041 const GURL url2("http://foo2"); 2049 const GURL url2("http://foo2");
2042 const GURL url3("http://foo3"); 2050 const GURL url3("http://foo3");
2043 2051
2044 NavigateAndCommit(url1); 2052 NavigateAndCommit(url1);
2045 NavigateAndCommit(url2); 2053 NavigateAndCommit(url2);
2046 controller().GoBack(); 2054 controller().GoBack();
2047 2055
2048 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); 2056 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents());
2049 NavigationController& other_controller = other_contents->controller(); 2057 NavigationController& other_controller = other_contents->controller();
2050 other_controller.LoadURL( 2058 other_controller.LoadURL(
2051 url3, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 2059 url3, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
2052 other_contents->ExpectSetHistoryLengthAndPrune(NULL, 1, -1); 2060 other_contents->ExpectSetHistoryLengthAndPrune(NULL, 1, -1);
2053 other_controller.CopyStateFromAndPrune(&controller()); 2061 other_controller.CopyStateFromAndPrune(&controller());
2054 2062
2055 // other_controller should now contain 1 entry for url1, and a pending entry 2063 // other_controller should now contain 1 entry for url1, and a pending entry
2056 // for url3. 2064 // for url3.
2057 2065
2058 ASSERT_EQ(1, other_controller.entry_count()); 2066 ASSERT_EQ(1, other_controller.entry_count());
2059 2067
2060 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); 2068 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex());
2061 2069
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
2178 EXPECT_EQ(0, controller().pending_entry_index()); 2186 EXPECT_EQ(0, controller().pending_entry_index());
2179 } 2187 }
2180 2188
2181 // Test call to PruneAllButActive for transient entry. 2189 // Test call to PruneAllButActive for transient entry.
2182 TEST_F(NavigationControllerTest, PruneAllButActiveForTransient) { 2190 TEST_F(NavigationControllerTest, PruneAllButActiveForTransient) {
2183 const GURL url0("http://foo/0"); 2191 const GURL url0("http://foo/0");
2184 const GURL url1("http://foo/1"); 2192 const GURL url1("http://foo/1");
2185 const GURL transient_url("http://foo/transient"); 2193 const GURL transient_url("http://foo/transient");
2186 2194
2187 controller().LoadURL( 2195 controller().LoadURL(
2188 url0, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 2196 url0, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
2189 rvh()->SendNavigate(0, url0); 2197 rvh()->SendNavigate(0, url0);
2190 controller().LoadURL( 2198 controller().LoadURL(
2191 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 2199 url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string());
2192 rvh()->SendNavigate(1, url1); 2200 rvh()->SendNavigate(1, url1);
2193 2201
2194 // Adding a transient with no pending entry. 2202 // Adding a transient with no pending entry.
2195 NavigationEntry* transient_entry = new NavigationEntry; 2203 NavigationEntry* transient_entry = new NavigationEntry;
2196 transient_entry->set_url(transient_url); 2204 transient_entry->set_url(transient_url);
2197 controller().AddTransientEntry(transient_entry); 2205 controller().AddTransientEntry(transient_entry);
2198 2206
2199 controller().PruneAllButActive(); 2207 controller().PruneAllButActive();
2200 2208
2201 EXPECT_EQ(-1, controller().pending_entry_index()); 2209 EXPECT_EQ(-1, controller().pending_entry_index());
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
2394 TabNavigation nav(0, url0, GURL(), string16(), 2402 TabNavigation nav(0, url0, GURL(), string16(),
2395 webkit_glue::CreateHistoryStateForURL(url0), 2403 webkit_glue::CreateHistoryStateForURL(url0),
2396 content::PAGE_TRANSITION_LINK); 2404 content::PAGE_TRANSITION_LINK);
2397 session_helper_.AssertNavigationEquals(nav, 2405 session_helper_.AssertNavigationEquals(nav,
2398 windows_[0]->tabs[0]->navigations[0]); 2406 windows_[0]->tabs[0]->navigations[0]);
2399 nav.set_url(url2); 2407 nav.set_url(url2);
2400 session_helper_.AssertNavigationEquals(nav, 2408 session_helper_.AssertNavigationEquals(nav,
2401 windows_[0]->tabs[0]->navigations[1]); 2409 windows_[0]->tabs[0]->navigations[1]);
2402 } 2410 }
2403 */ 2411 */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698