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

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

Issue 8253002: Move PageTransition into content namespace. While I'm touching all these files, I've also updated... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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 | 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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 EXPECT_FALSE(controller().CanGoForward()); 83 EXPECT_FALSE(controller().CanGoForward());
84 } 84 }
85 85
86 TEST_F(NavigationControllerTest, LoadURL) { 86 TEST_F(NavigationControllerTest, LoadURL) {
87 TestNotificationTracker notifications; 87 TestNotificationTracker notifications;
88 RegisterForAllNavNotifications(&notifications, &controller()); 88 RegisterForAllNavNotifications(&notifications, &controller());
89 89
90 const GURL url1("http://foo1"); 90 const GURL url1("http://foo1");
91 const GURL url2("http://foo2"); 91 const GURL url2("http://foo2");
92 92
93 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 93 controller().LoadURL(
94 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
94 // Creating a pending notification should not have issued any of the 95 // Creating a pending notification should not have issued any of the
95 // notifications we're listening for. 96 // notifications we're listening for.
96 EXPECT_EQ(0U, notifications.size()); 97 EXPECT_EQ(0U, notifications.size());
97 98
98 // The load should now be pending. 99 // The load should now be pending.
99 EXPECT_EQ(controller().entry_count(), 0); 100 EXPECT_EQ(controller().entry_count(), 0);
100 EXPECT_EQ(controller().last_committed_entry_index(), -1); 101 EXPECT_EQ(controller().last_committed_entry_index(), -1);
101 EXPECT_EQ(controller().pending_entry_index(), -1); 102 EXPECT_EQ(controller().pending_entry_index(), -1);
102 EXPECT_FALSE(controller().GetLastCommittedEntry()); 103 EXPECT_FALSE(controller().GetLastCommittedEntry());
103 EXPECT_TRUE(controller().pending_entry()); 104 EXPECT_TRUE(controller().pending_entry());
(...skipping 12 matching lines...) Expand all
116 EXPECT_EQ(controller().entry_count(), 1); 117 EXPECT_EQ(controller().entry_count(), 1);
117 EXPECT_EQ(controller().last_committed_entry_index(), 0); 118 EXPECT_EQ(controller().last_committed_entry_index(), 0);
118 EXPECT_EQ(controller().pending_entry_index(), -1); 119 EXPECT_EQ(controller().pending_entry_index(), -1);
119 EXPECT_TRUE(controller().GetLastCommittedEntry()); 120 EXPECT_TRUE(controller().GetLastCommittedEntry());
120 EXPECT_FALSE(controller().pending_entry()); 121 EXPECT_FALSE(controller().pending_entry());
121 EXPECT_FALSE(controller().CanGoBack()); 122 EXPECT_FALSE(controller().CanGoBack());
122 EXPECT_FALSE(controller().CanGoForward()); 123 EXPECT_FALSE(controller().CanGoForward());
123 EXPECT_EQ(contents()->GetMaxPageID(), 0); 124 EXPECT_EQ(contents()->GetMaxPageID(), 0);
124 125
125 // Load another... 126 // Load another...
126 controller().LoadURL(url2, GURL(), PageTransition::TYPED, std::string()); 127 controller().LoadURL(
128 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
127 129
128 // The load should now be pending. 130 // The load should now be pending.
129 EXPECT_EQ(controller().entry_count(), 1); 131 EXPECT_EQ(controller().entry_count(), 1);
130 EXPECT_EQ(controller().last_committed_entry_index(), 0); 132 EXPECT_EQ(controller().last_committed_entry_index(), 0);
131 EXPECT_EQ(controller().pending_entry_index(), -1); 133 EXPECT_EQ(controller().pending_entry_index(), -1);
132 EXPECT_TRUE(controller().GetLastCommittedEntry()); 134 EXPECT_TRUE(controller().GetLastCommittedEntry());
133 EXPECT_TRUE(controller().pending_entry()); 135 EXPECT_TRUE(controller().pending_entry());
134 // TODO(darin): maybe this should really be true? 136 // TODO(darin): maybe this should really be true?
135 EXPECT_FALSE(controller().CanGoBack()); 137 EXPECT_FALSE(controller().CanGoBack());
136 EXPECT_FALSE(controller().CanGoForward()); 138 EXPECT_FALSE(controller().CanGoForward());
(...skipping 20 matching lines...) Expand all
157 // Tests what happens when the same page is loaded again. Should not create a 159 // Tests what happens when the same page is loaded again. Should not create a
158 // new session history entry. This is what happens when you press enter in the 160 // new session history entry. This is what happens when you press enter in the
159 // URL bar to reload: a pending entry is created and then it is discarded when 161 // URL bar to reload: a pending entry is created and then it is discarded when
160 // the load commits (because WebCore didn't actually make a new entry). 162 // the load commits (because WebCore didn't actually make a new entry).
161 TEST_F(NavigationControllerTest, LoadURL_SamePage) { 163 TEST_F(NavigationControllerTest, LoadURL_SamePage) {
162 TestNotificationTracker notifications; 164 TestNotificationTracker notifications;
163 RegisterForAllNavNotifications(&notifications, &controller()); 165 RegisterForAllNavNotifications(&notifications, &controller());
164 166
165 const GURL url1("http://foo1"); 167 const GURL url1("http://foo1");
166 168
167 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 169 controller().LoadURL(
170 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
168 EXPECT_EQ(0U, notifications.size()); 171 EXPECT_EQ(0U, notifications.size());
169 rvh()->SendNavigate(0, url1); 172 rvh()->SendNavigate(0, url1);
170 EXPECT_TRUE(notifications.Check1AndReset( 173 EXPECT_TRUE(notifications.Check1AndReset(
171 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 174 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
172 175
173 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 176 controller().LoadURL(
177 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
174 EXPECT_EQ(0U, notifications.size()); 178 EXPECT_EQ(0U, notifications.size());
175 rvh()->SendNavigate(0, url1); 179 rvh()->SendNavigate(0, url1);
176 EXPECT_TRUE(notifications.Check1AndReset( 180 EXPECT_TRUE(notifications.Check1AndReset(
177 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 181 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
178 182
179 // We should not have produced a new session history entry. 183 // We should not have produced a new session history entry.
180 EXPECT_EQ(controller().entry_count(), 1); 184 EXPECT_EQ(controller().entry_count(), 1);
181 EXPECT_EQ(controller().last_committed_entry_index(), 0); 185 EXPECT_EQ(controller().last_committed_entry_index(), 0);
182 EXPECT_EQ(controller().pending_entry_index(), -1); 186 EXPECT_EQ(controller().pending_entry_index(), -1);
183 EXPECT_TRUE(controller().GetLastCommittedEntry()); 187 EXPECT_TRUE(controller().GetLastCommittedEntry());
184 EXPECT_FALSE(controller().pending_entry()); 188 EXPECT_FALSE(controller().pending_entry());
185 EXPECT_FALSE(controller().CanGoBack()); 189 EXPECT_FALSE(controller().CanGoBack());
186 EXPECT_FALSE(controller().CanGoForward()); 190 EXPECT_FALSE(controller().CanGoForward());
187 } 191 }
188 192
189 // Tests loading a URL but discarding it before the load commits. 193 // Tests loading a URL but discarding it before the load commits.
190 TEST_F(NavigationControllerTest, LoadURL_Discarded) { 194 TEST_F(NavigationControllerTest, LoadURL_Discarded) {
191 TestNotificationTracker notifications; 195 TestNotificationTracker notifications;
192 RegisterForAllNavNotifications(&notifications, &controller()); 196 RegisterForAllNavNotifications(&notifications, &controller());
193 197
194 const GURL url1("http://foo1"); 198 const GURL url1("http://foo1");
195 const GURL url2("http://foo2"); 199 const GURL url2("http://foo2");
196 200
197 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 201 controller().LoadURL(
202 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
198 EXPECT_EQ(0U, notifications.size()); 203 EXPECT_EQ(0U, notifications.size());
199 rvh()->SendNavigate(0, url1); 204 rvh()->SendNavigate(0, url1);
200 EXPECT_TRUE(notifications.Check1AndReset( 205 EXPECT_TRUE(notifications.Check1AndReset(
201 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 206 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
202 207
203 controller().LoadURL(url2, GURL(), PageTransition::TYPED, std::string()); 208 controller().LoadURL(
209 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
204 controller().DiscardNonCommittedEntries(); 210 controller().DiscardNonCommittedEntries();
205 EXPECT_EQ(0U, notifications.size()); 211 EXPECT_EQ(0U, notifications.size());
206 212
207 // Should not have produced a new session history entry. 213 // Should not have produced a new session history entry.
208 EXPECT_EQ(controller().entry_count(), 1); 214 EXPECT_EQ(controller().entry_count(), 1);
209 EXPECT_EQ(controller().last_committed_entry_index(), 0); 215 EXPECT_EQ(controller().last_committed_entry_index(), 0);
210 EXPECT_EQ(controller().pending_entry_index(), -1); 216 EXPECT_EQ(controller().pending_entry_index(), -1);
211 EXPECT_TRUE(controller().GetLastCommittedEntry()); 217 EXPECT_TRUE(controller().GetLastCommittedEntry());
212 EXPECT_FALSE(controller().pending_entry()); 218 EXPECT_FALSE(controller().pending_entry());
213 EXPECT_FALSE(controller().CanGoBack()); 219 EXPECT_FALSE(controller().CanGoBack());
214 EXPECT_FALSE(controller().CanGoForward()); 220 EXPECT_FALSE(controller().CanGoForward());
215 } 221 }
216 222
217 // Tests navigations that come in unrequested. This happens when the user 223 // Tests navigations that come in unrequested. This happens when the user
218 // navigates from the web page, and here we test that there is no pending entry. 224 // navigates from the web page, and here we test that there is no pending entry.
219 TEST_F(NavigationControllerTest, LoadURL_NoPending) { 225 TEST_F(NavigationControllerTest, LoadURL_NoPending) {
220 TestNotificationTracker notifications; 226 TestNotificationTracker notifications;
221 RegisterForAllNavNotifications(&notifications, &controller()); 227 RegisterForAllNavNotifications(&notifications, &controller());
222 228
223 // First make an existing committed entry. 229 // First make an existing committed entry.
224 const GURL kExistingURL1("http://eh"); 230 const GURL kExistingURL1("http://eh");
225 controller().LoadURL(kExistingURL1, GURL(), 231 controller().LoadURL(kExistingURL1, GURL(),
226 PageTransition::TYPED, std::string()); 232 content::PAGE_TRANSITION_TYPED, std::string());
227 rvh()->SendNavigate(0, kExistingURL1); 233 rvh()->SendNavigate(0, kExistingURL1);
228 EXPECT_TRUE(notifications.Check1AndReset( 234 EXPECT_TRUE(notifications.Check1AndReset(
229 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 235 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
230 236
231 // Do a new navigation without making a pending one. 237 // Do a new navigation without making a pending one.
232 const GURL kNewURL("http://see"); 238 const GURL kNewURL("http://see");
233 rvh()->SendNavigate(99, kNewURL); 239 rvh()->SendNavigate(99, kNewURL);
234 240
235 // There should no longer be any pending entry, and the third navigation we 241 // There should no longer be any pending entry, and the third navigation we
236 // just made should be committed. 242 // just made should be committed.
237 EXPECT_TRUE(notifications.Check1AndReset( 243 EXPECT_TRUE(notifications.Check1AndReset(
238 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 244 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
239 EXPECT_EQ(-1, controller().pending_entry_index()); 245 EXPECT_EQ(-1, controller().pending_entry_index());
240 EXPECT_EQ(1, controller().last_committed_entry_index()); 246 EXPECT_EQ(1, controller().last_committed_entry_index());
241 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url()); 247 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url());
242 } 248 }
243 249
244 // Tests navigating to a new URL when there is a new pending navigation that is 250 // Tests navigating to a new URL when there is a new pending navigation that is
245 // not the one that just loaded. This will happen if the user types in a URL to 251 // not the one that just loaded. This will happen if the user types in a URL to
246 // somewhere slow, and then navigates the current page before the typed URL 252 // somewhere slow, and then navigates the current page before the typed URL
247 // commits. 253 // commits.
248 TEST_F(NavigationControllerTest, LoadURL_NewPending) { 254 TEST_F(NavigationControllerTest, LoadURL_NewPending) {
249 TestNotificationTracker notifications; 255 TestNotificationTracker notifications;
250 RegisterForAllNavNotifications(&notifications, &controller()); 256 RegisterForAllNavNotifications(&notifications, &controller());
251 257
252 // First make an existing committed entry. 258 // First make an existing committed entry.
253 const GURL kExistingURL1("http://eh"); 259 const GURL kExistingURL1("http://eh");
254 controller().LoadURL(kExistingURL1, GURL(), 260 controller().LoadURL(kExistingURL1, GURL(),
255 PageTransition::TYPED, std::string()); 261 content::PAGE_TRANSITION_TYPED, std::string());
256 rvh()->SendNavigate(0, kExistingURL1); 262 rvh()->SendNavigate(0, kExistingURL1);
257 EXPECT_TRUE(notifications.Check1AndReset( 263 EXPECT_TRUE(notifications.Check1AndReset(
258 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 264 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
259 265
260 // Make a pending entry to somewhere new. 266 // Make a pending entry to somewhere new.
261 const GURL kExistingURL2("http://bee"); 267 const GURL kExistingURL2("http://bee");
262 controller().LoadURL(kExistingURL2, GURL(), 268 controller().LoadURL(kExistingURL2, GURL(),
263 PageTransition::TYPED, std::string()); 269 content::PAGE_TRANSITION_TYPED, std::string());
264 EXPECT_EQ(0U, notifications.size()); 270 EXPECT_EQ(0U, notifications.size());
265 271
266 // After the beforeunload but before it commits, do a new navigation. 272 // After the beforeunload but before it commits, do a new navigation.
267 rvh()->SendShouldCloseACK(true); 273 rvh()->SendShouldCloseACK(true);
268 const GURL kNewURL("http://see"); 274 const GURL kNewURL("http://see");
269 contents()->pending_rvh()->SendNavigate(3, kNewURL); 275 contents()->pending_rvh()->SendNavigate(3, kNewURL);
270 276
271 // There should no longer be any pending entry, and the third navigation we 277 // There should no longer be any pending entry, and the third navigation we
272 // just made should be committed. 278 // just made should be committed.
273 EXPECT_TRUE(notifications.Check1AndReset( 279 EXPECT_TRUE(notifications.Check1AndReset(
274 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 280 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
275 EXPECT_EQ(-1, controller().pending_entry_index()); 281 EXPECT_EQ(-1, controller().pending_entry_index());
276 EXPECT_EQ(1, controller().last_committed_entry_index()); 282 EXPECT_EQ(1, controller().last_committed_entry_index());
277 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url()); 283 EXPECT_EQ(kNewURL, controller().GetActiveEntry()->url());
278 } 284 }
279 285
280 // Tests navigating to a new URL when there is a pending back/forward 286 // Tests navigating to a new URL when there is a pending back/forward
281 // navigation. This will happen if the user hits back, but before that commits, 287 // navigation. This will happen if the user hits back, but before that commits,
282 // they navigate somewhere new. 288 // they navigate somewhere new.
283 TEST_F(NavigationControllerTest, LoadURL_ExistingPending) { 289 TEST_F(NavigationControllerTest, LoadURL_ExistingPending) {
284 TestNotificationTracker notifications; 290 TestNotificationTracker notifications;
285 RegisterForAllNavNotifications(&notifications, &controller()); 291 RegisterForAllNavNotifications(&notifications, &controller());
286 292
287 // First make some history. 293 // First make some history.
288 const GURL kExistingURL1("http://foo/eh"); 294 const GURL kExistingURL1("http://foo/eh");
289 controller().LoadURL(kExistingURL1, GURL(), 295 controller().LoadURL(kExistingURL1, GURL(),
290 PageTransition::TYPED, std::string()); 296 content::PAGE_TRANSITION_TYPED, std::string());
291 rvh()->SendNavigate(0, kExistingURL1); 297 rvh()->SendNavigate(0, kExistingURL1);
292 EXPECT_TRUE(notifications.Check1AndReset( 298 EXPECT_TRUE(notifications.Check1AndReset(
293 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 299 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
294 300
295 const GURL kExistingURL2("http://foo/bee"); 301 const GURL kExistingURL2("http://foo/bee");
296 controller().LoadURL(kExistingURL2, GURL(), 302 controller().LoadURL(kExistingURL2, GURL(),
297 PageTransition::TYPED, std::string()); 303 content::PAGE_TRANSITION_TYPED, std::string());
298 rvh()->SendNavigate(1, kExistingURL2); 304 rvh()->SendNavigate(1, kExistingURL2);
299 EXPECT_TRUE(notifications.Check1AndReset( 305 EXPECT_TRUE(notifications.Check1AndReset(
300 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 306 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
301 307
302 // Now make a pending back/forward navigation. The zeroth entry should be 308 // Now make a pending back/forward navigation. The zeroth entry should be
303 // pending. 309 // pending.
304 controller().GoBack(); 310 controller().GoBack();
305 EXPECT_EQ(0U, notifications.size()); 311 EXPECT_EQ(0U, notifications.size());
306 EXPECT_EQ(0, controller().pending_entry_index()); 312 EXPECT_EQ(0, controller().pending_entry_index());
307 EXPECT_EQ(1, controller().last_committed_entry_index()); 313 EXPECT_EQ(1, controller().last_committed_entry_index());
(...skipping 14 matching lines...) Expand all
322 328
323 // Tests navigating to an existing URL when there is a pending new navigation. 329 // Tests navigating to an existing URL when there is a pending new navigation.
324 // This will happen if the user enters a URL, but before that commits, the 330 // This will happen if the user enters a URL, but before that commits, the
325 // current page fires history.back(). 331 // current page fires history.back().
326 TEST_F(NavigationControllerTest, LoadURL_BackPreemptsPending) { 332 TEST_F(NavigationControllerTest, LoadURL_BackPreemptsPending) {
327 TestNotificationTracker notifications; 333 TestNotificationTracker notifications;
328 RegisterForAllNavNotifications(&notifications, &controller()); 334 RegisterForAllNavNotifications(&notifications, &controller());
329 335
330 // First make some history. 336 // First make some history.
331 const GURL kExistingURL1("http://foo/eh"); 337 const GURL kExistingURL1("http://foo/eh");
332 controller().LoadURL(kExistingURL1, GURL(), PageTransition::TYPED, 338 controller().LoadURL(kExistingURL1, GURL(), content::PAGE_TRANSITION_TYPED,
333 std::string()); 339 std::string());
334 rvh()->SendNavigate(0, kExistingURL1); 340 rvh()->SendNavigate(0, kExistingURL1);
335 EXPECT_TRUE(notifications.Check1AndReset( 341 EXPECT_TRUE(notifications.Check1AndReset(
336 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 342 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
337 343
338 const GURL kExistingURL2("http://foo/bee"); 344 const GURL kExistingURL2("http://foo/bee");
339 controller().LoadURL(kExistingURL2, GURL(), PageTransition::TYPED, 345 controller().LoadURL(kExistingURL2, GURL(), content::PAGE_TRANSITION_TYPED,
340 std::string()); 346 std::string());
341 rvh()->SendNavigate(1, kExistingURL2); 347 rvh()->SendNavigate(1, kExistingURL2);
342 EXPECT_TRUE(notifications.Check1AndReset( 348 EXPECT_TRUE(notifications.Check1AndReset(
343 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 349 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
344 350
345 // Now make a pending new navigation. 351 // Now make a pending new navigation.
346 const GURL kNewURL("http://foo/see"); 352 const GURL kNewURL("http://foo/see");
347 controller().LoadURL(kNewURL, GURL(), PageTransition::TYPED, std::string()); 353 controller().LoadURL(
354 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
348 EXPECT_EQ(0U, notifications.size()); 355 EXPECT_EQ(0U, notifications.size());
349 EXPECT_EQ(-1, controller().pending_entry_index()); 356 EXPECT_EQ(-1, controller().pending_entry_index());
350 EXPECT_EQ(1, controller().last_committed_entry_index()); 357 EXPECT_EQ(1, controller().last_committed_entry_index());
351 358
352 // Before that commits, a back navigation from the renderer commits. 359 // Before that commits, a back navigation from the renderer commits.
353 rvh()->SendNavigate(0, kExistingURL1); 360 rvh()->SendNavigate(0, kExistingURL1);
354 361
355 // There should no longer be any pending entry, and the back navigation we 362 // There should no longer be any pending entry, and the back navigation we
356 // just made should be committed. 363 // just made should be committed.
357 EXPECT_TRUE(notifications.Check1AndReset( 364 EXPECT_TRUE(notifications.Check1AndReset(
(...skipping 13 matching lines...) Expand all
371 // Set a TabContentsDelegate to listen for state changes. 378 // Set a TabContentsDelegate to listen for state changes.
372 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate()); 379 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate());
373 EXPECT_FALSE(contents()->delegate()); 380 EXPECT_FALSE(contents()->delegate());
374 contents()->set_delegate(delegate.get()); 381 contents()->set_delegate(delegate.get());
375 382
376 // Without any navigations, the renderer starts at about:blank. 383 // Without any navigations, the renderer starts at about:blank.
377 const GURL kExistingURL("about:blank"); 384 const GURL kExistingURL("about:blank");
378 385
379 // Now make a pending new navigation. 386 // Now make a pending new navigation.
380 const GURL kNewURL("http://eh"); 387 const GURL kNewURL("http://eh");
381 controller().LoadURL(kNewURL, GURL(), PageTransition::TYPED, std::string()); 388 controller().LoadURL(
389 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
382 EXPECT_EQ(0U, notifications.size()); 390 EXPECT_EQ(0U, notifications.size());
383 EXPECT_EQ(-1, controller().pending_entry_index()); 391 EXPECT_EQ(-1, controller().pending_entry_index());
384 EXPECT_TRUE(controller().pending_entry()); 392 EXPECT_TRUE(controller().pending_entry());
385 EXPECT_EQ(-1, controller().last_committed_entry_index()); 393 EXPECT_EQ(-1, controller().last_committed_entry_index());
386 EXPECT_EQ(1, delegate->navigation_state_change_count()); 394 EXPECT_EQ(1, delegate->navigation_state_change_count());
387 395
388 // Before that commits, a document.write and location.reload can cause the 396 // Before that commits, a document.write and location.reload can cause the
389 // renderer to send a FrameNavigate with page_id -1. 397 // renderer to send a FrameNavigate with page_id -1.
390 rvh()->SendNavigate(-1, kExistingURL); 398 rvh()->SendNavigate(-1, kExistingURL);
391 399
(...skipping 15 matching lines...) Expand all
407 // Set a TabContentsDelegate to listen for state changes. 415 // Set a TabContentsDelegate to listen for state changes.
408 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate()); 416 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate());
409 EXPECT_FALSE(contents()->delegate()); 417 EXPECT_FALSE(contents()->delegate());
410 contents()->set_delegate(delegate.get()); 418 contents()->set_delegate(delegate.get());
411 419
412 // Without any navigations, the renderer starts at about:blank. 420 // Without any navigations, the renderer starts at about:blank.
413 const GURL kExistingURL("about:blank"); 421 const GURL kExistingURL("about:blank");
414 422
415 // Now make a pending new navigation. 423 // Now make a pending new navigation.
416 const GURL kNewURL("http://eh"); 424 const GURL kNewURL("http://eh");
417 controller().LoadURL(kNewURL, GURL(), PageTransition::TYPED, std::string()); 425 controller().LoadURL(
426 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
418 EXPECT_EQ(0U, notifications.size()); 427 EXPECT_EQ(0U, notifications.size());
419 EXPECT_EQ(-1, controller().pending_entry_index()); 428 EXPECT_EQ(-1, controller().pending_entry_index());
420 EXPECT_TRUE(controller().pending_entry()); 429 EXPECT_TRUE(controller().pending_entry());
421 EXPECT_EQ(-1, controller().last_committed_entry_index()); 430 EXPECT_EQ(-1, controller().last_committed_entry_index());
422 EXPECT_EQ(1, delegate->navigation_state_change_count()); 431 EXPECT_EQ(1, delegate->navigation_state_change_count());
423 432
424 // It may abort before committing, if it's a download or due to a stop or 433 // It may abort before committing, if it's a download or due to a stop or
425 // a new navigation from the user. 434 // a new navigation from the user.
426 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; 435 ViewHostMsg_DidFailProvisionalLoadWithError_Params params;
427 params.frame_id = 1; 436 params.frame_id = 1;
(...skipping 25 matching lines...) Expand all
453 // Set a TabContentsDelegate to listen for state changes. 462 // Set a TabContentsDelegate to listen for state changes.
454 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate()); 463 scoped_ptr<TestTabContentsDelegate> delegate(new TestTabContentsDelegate());
455 EXPECT_FALSE(contents()->delegate()); 464 EXPECT_FALSE(contents()->delegate());
456 contents()->set_delegate(delegate.get()); 465 contents()->set_delegate(delegate.get());
457 466
458 // Without any navigations, the renderer starts at about:blank. 467 // Without any navigations, the renderer starts at about:blank.
459 const GURL kExistingURL("about:blank"); 468 const GURL kExistingURL("about:blank");
460 469
461 // Now make a pending new navigation. 470 // Now make a pending new navigation.
462 const GURL kNewURL("http://eh"); 471 const GURL kNewURL("http://eh");
463 controller().LoadURL(kNewURL, GURL(), PageTransition::TYPED, std::string()); 472 controller().LoadURL(
473 kNewURL, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
464 EXPECT_EQ(0U, notifications.size()); 474 EXPECT_EQ(0U, notifications.size());
465 EXPECT_EQ(-1, controller().pending_entry_index()); 475 EXPECT_EQ(-1, controller().pending_entry_index());
466 EXPECT_TRUE(controller().pending_entry()); 476 EXPECT_TRUE(controller().pending_entry());
467 EXPECT_EQ(-1, controller().last_committed_entry_index()); 477 EXPECT_EQ(-1, controller().last_committed_entry_index());
468 EXPECT_EQ(1, delegate->navigation_state_change_count()); 478 EXPECT_EQ(1, delegate->navigation_state_change_count());
469 479
470 // Now the navigation redirects. 480 // Now the navigation redirects.
471 const GURL kRedirectURL("http://bee"); 481 const GURL kRedirectURL("http://bee");
472 rvh()->TestOnMessageReceived( 482 rvh()->TestOnMessageReceived(
473 ViewHostMsg_DidRedirectProvisionalLoad(0, // routing_id 483 ViewHostMsg_DidRedirectProvisionalLoad(0, // routing_id
(...skipping 28 matching lines...) Expand all
502 512
503 contents()->set_delegate(NULL); 513 contents()->set_delegate(NULL);
504 } 514 }
505 515
506 TEST_F(NavigationControllerTest, Reload) { 516 TEST_F(NavigationControllerTest, Reload) {
507 TestNotificationTracker notifications; 517 TestNotificationTracker notifications;
508 RegisterForAllNavNotifications(&notifications, &controller()); 518 RegisterForAllNavNotifications(&notifications, &controller());
509 519
510 const GURL url1("http://foo1"); 520 const GURL url1("http://foo1");
511 521
512 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 522 controller().LoadURL(
523 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
513 EXPECT_EQ(0U, notifications.size()); 524 EXPECT_EQ(0U, notifications.size());
514 rvh()->SendNavigate(0, url1); 525 rvh()->SendNavigate(0, url1);
515 EXPECT_TRUE(notifications.Check1AndReset( 526 EXPECT_TRUE(notifications.Check1AndReset(
516 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 527 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
517 528
518 controller().Reload(true); 529 controller().Reload(true);
519 EXPECT_EQ(0U, notifications.size()); 530 EXPECT_EQ(0U, notifications.size());
520 531
521 // The reload is pending. 532 // The reload is pending.
522 EXPECT_EQ(controller().entry_count(), 1); 533 EXPECT_EQ(controller().entry_count(), 1);
(...skipping 19 matching lines...) Expand all
542 } 553 }
543 554
544 // Tests what happens when a reload navigation produces a new page. 555 // Tests what happens when a reload navigation produces a new page.
545 TEST_F(NavigationControllerTest, Reload_GeneratesNewPage) { 556 TEST_F(NavigationControllerTest, Reload_GeneratesNewPage) {
546 TestNotificationTracker notifications; 557 TestNotificationTracker notifications;
547 RegisterForAllNavNotifications(&notifications, &controller()); 558 RegisterForAllNavNotifications(&notifications, &controller());
548 559
549 const GURL url1("http://foo1"); 560 const GURL url1("http://foo1");
550 const GURL url2("http://foo2"); 561 const GURL url2("http://foo2");
551 562
552 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 563 controller().LoadURL(
564 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
553 rvh()->SendNavigate(0, url1); 565 rvh()->SendNavigate(0, url1);
554 EXPECT_TRUE(notifications.Check1AndReset( 566 EXPECT_TRUE(notifications.Check1AndReset(
555 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 567 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
556 568
557 controller().Reload(true); 569 controller().Reload(true);
558 EXPECT_EQ(0U, notifications.size()); 570 EXPECT_EQ(0U, notifications.size());
559 571
560 rvh()->SendNavigate(1, url2); 572 rvh()->SendNavigate(1, url2);
561 EXPECT_TRUE(notifications.Check1AndReset( 573 EXPECT_TRUE(notifications.Check1AndReset(
562 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 574 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 626
615 // Tests what happens when a back navigation produces a new page. 627 // Tests what happens when a back navigation produces a new page.
616 TEST_F(NavigationControllerTest, Back_GeneratesNewPage) { 628 TEST_F(NavigationControllerTest, Back_GeneratesNewPage) {
617 TestNotificationTracker notifications; 629 TestNotificationTracker notifications;
618 RegisterForAllNavNotifications(&notifications, &controller()); 630 RegisterForAllNavNotifications(&notifications, &controller());
619 631
620 const GURL url1("http://foo/1"); 632 const GURL url1("http://foo/1");
621 const GURL url2("http://foo/2"); 633 const GURL url2("http://foo/2");
622 const GURL url3("http://foo/3"); 634 const GURL url3("http://foo/3");
623 635
624 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 636 controller().LoadURL(
637 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
625 rvh()->SendNavigate(0, url1); 638 rvh()->SendNavigate(0, url1);
626 EXPECT_TRUE(notifications.Check1AndReset( 639 EXPECT_TRUE(notifications.Check1AndReset(
627 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 640 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
628 641
629 controller().LoadURL(url2, GURL(), PageTransition::TYPED, std::string()); 642 controller().LoadURL(
643 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
630 rvh()->SendNavigate(1, url2); 644 rvh()->SendNavigate(1, url2);
631 EXPECT_TRUE(notifications.Check1AndReset( 645 EXPECT_TRUE(notifications.Check1AndReset(
632 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 646 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
633 647
634 controller().GoBack(); 648 controller().GoBack();
635 EXPECT_EQ(0U, notifications.size()); 649 EXPECT_EQ(0U, notifications.size());
636 650
637 // We should now have a pending navigation to go back. 651 // We should now have a pending navigation to go back.
638 EXPECT_EQ(controller().entry_count(), 2); 652 EXPECT_EQ(controller().entry_count(), 2);
639 EXPECT_EQ(controller().last_committed_entry_index(), 1); 653 EXPECT_EQ(controller().last_committed_entry_index(), 1);
(...skipping 25 matching lines...) Expand all
665 679
666 const GURL kUrl1("http://foo1"); 680 const GURL kUrl1("http://foo1");
667 const GURL kUrl2("http://foo2"); 681 const GURL kUrl2("http://foo2");
668 const GURL kUrl3("http://foo3"); 682 const GURL kUrl3("http://foo3");
669 683
670 // First navigate two places so we have some back history. 684 // First navigate two places so we have some back history.
671 rvh()->SendNavigate(0, kUrl1); 685 rvh()->SendNavigate(0, kUrl1);
672 EXPECT_TRUE(notifications.Check1AndReset( 686 EXPECT_TRUE(notifications.Check1AndReset(
673 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 687 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
674 688
675 // controller().LoadURL(kUrl2, PageTransition::TYPED); 689 // controller().LoadURL(kUrl2, content::PAGE_TRANSITION_TYPED);
676 rvh()->SendNavigate(1, kUrl2); 690 rvh()->SendNavigate(1, kUrl2);
677 EXPECT_TRUE(notifications.Check1AndReset( 691 EXPECT_TRUE(notifications.Check1AndReset(
678 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 692 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
679 693
680 // Now start a new pending navigation and go back before it commits. 694 // Now start a new pending navigation and go back before it commits.
681 controller().LoadURL(kUrl3, GURL(), PageTransition::TYPED, std::string()); 695 controller().LoadURL(
696 kUrl3, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
682 EXPECT_EQ(-1, controller().pending_entry_index()); 697 EXPECT_EQ(-1, controller().pending_entry_index());
683 EXPECT_EQ(kUrl3, controller().pending_entry()->url()); 698 EXPECT_EQ(kUrl3, controller().pending_entry()->url());
684 controller().GoBack(); 699 controller().GoBack();
685 700
686 // The pending navigation should now be the "back" item and the new one 701 // The pending navigation should now be the "back" item and the new one
687 // should be gone. 702 // should be gone.
688 EXPECT_EQ(0, controller().pending_entry_index()); 703 EXPECT_EQ(0, controller().pending_entry_index());
689 EXPECT_EQ(kUrl1, controller().pending_entry()->url()); 704 EXPECT_EQ(kUrl1, controller().pending_entry()->url());
690 } 705 }
691 706
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 // Two consequent navigation for the same URL entered in should be considered 847 // Two consequent navigation for the same URL entered in should be considered
833 // as SAME_PAGE navigation even when we are redirected to some other page. 848 // as SAME_PAGE navigation even when we are redirected to some other page.
834 TEST_F(NavigationControllerTest, Redirect) { 849 TEST_F(NavigationControllerTest, Redirect) {
835 TestNotificationTracker notifications; 850 TestNotificationTracker notifications;
836 RegisterForAllNavNotifications(&notifications, &controller()); 851 RegisterForAllNavNotifications(&notifications, &controller());
837 852
838 const GURL url1("http://foo1"); 853 const GURL url1("http://foo1");
839 const GURL url2("http://foo2"); // Redirection target 854 const GURL url2("http://foo2"); // Redirection target
840 855
841 // First request 856 // First request
842 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 857 controller().LoadURL(
858 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
843 859
844 EXPECT_EQ(0U, notifications.size()); 860 EXPECT_EQ(0U, notifications.size());
845 rvh()->SendNavigate(0, url2); 861 rvh()->SendNavigate(0, url2);
846 EXPECT_TRUE(notifications.Check1AndReset( 862 EXPECT_TRUE(notifications.Check1AndReset(
847 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 863 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
848 864
849 // Second request 865 // Second request
850 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 866 controller().LoadURL(
867 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
851 868
852 EXPECT_TRUE(controller().pending_entry()); 869 EXPECT_TRUE(controller().pending_entry());
853 EXPECT_EQ(controller().pending_entry_index(), -1); 870 EXPECT_EQ(controller().pending_entry_index(), -1);
854 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 871 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
855 872
856 ViewHostMsg_FrameNavigate_Params params; 873 ViewHostMsg_FrameNavigate_Params params;
857 params.page_id = 0; 874 params.page_id = 0;
858 params.url = url2; 875 params.url = url2;
859 params.transition = PageTransition::SERVER_REDIRECT; 876 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT;
860 params.redirects.push_back(GURL("http://foo1")); 877 params.redirects.push_back(GURL("http://foo1"));
861 params.redirects.push_back(GURL("http://foo2")); 878 params.redirects.push_back(GURL("http://foo2"));
862 params.should_update_history = false; 879 params.should_update_history = false;
863 params.gesture = NavigationGestureAuto; 880 params.gesture = NavigationGestureAuto;
864 params.is_post = false; 881 params.is_post = false;
865 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 882 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
866 883
867 content::LoadCommittedDetails details; 884 content::LoadCommittedDetails details;
868 885
869 EXPECT_EQ(0U, notifications.size()); 886 EXPECT_EQ(0U, notifications.size());
(...skipping 17 matching lines...) Expand all
887 // the second URL is requested by GET. NavigationEntry::has_post_data_ 904 // the second URL is requested by GET. NavigationEntry::has_post_data_
888 // must be cleared. http://crbug.com/21245 905 // must be cleared. http://crbug.com/21245
889 TEST_F(NavigationControllerTest, PostThenRedirect) { 906 TEST_F(NavigationControllerTest, PostThenRedirect) {
890 TestNotificationTracker notifications; 907 TestNotificationTracker notifications;
891 RegisterForAllNavNotifications(&notifications, &controller()); 908 RegisterForAllNavNotifications(&notifications, &controller());
892 909
893 const GURL url1("http://foo1"); 910 const GURL url1("http://foo1");
894 const GURL url2("http://foo2"); // Redirection target 911 const GURL url2("http://foo2"); // Redirection target
895 912
896 // First request as POST 913 // First request as POST
897 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 914 controller().LoadURL(
915 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
898 controller().GetActiveEntry()->set_has_post_data(true); 916 controller().GetActiveEntry()->set_has_post_data(true);
899 917
900 EXPECT_EQ(0U, notifications.size()); 918 EXPECT_EQ(0U, notifications.size());
901 rvh()->SendNavigate(0, url2); 919 rvh()->SendNavigate(0, url2);
902 EXPECT_TRUE(notifications.Check1AndReset( 920 EXPECT_TRUE(notifications.Check1AndReset(
903 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 921 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
904 922
905 // Second request 923 // Second request
906 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 924 controller().LoadURL(
925 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
907 926
908 EXPECT_TRUE(controller().pending_entry()); 927 EXPECT_TRUE(controller().pending_entry());
909 EXPECT_EQ(controller().pending_entry_index(), -1); 928 EXPECT_EQ(controller().pending_entry_index(), -1);
910 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 929 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
911 930
912 ViewHostMsg_FrameNavigate_Params params; 931 ViewHostMsg_FrameNavigate_Params params;
913 params.page_id = 0; 932 params.page_id = 0;
914 params.url = url2; 933 params.url = url2;
915 params.transition = PageTransition::SERVER_REDIRECT; 934 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT;
916 params.redirects.push_back(GURL("http://foo1")); 935 params.redirects.push_back(GURL("http://foo1"));
917 params.redirects.push_back(GURL("http://foo2")); 936 params.redirects.push_back(GURL("http://foo2"));
918 params.should_update_history = false; 937 params.should_update_history = false;
919 params.gesture = NavigationGestureAuto; 938 params.gesture = NavigationGestureAuto;
920 params.is_post = false; 939 params.is_post = false;
921 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 940 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
922 941
923 content::LoadCommittedDetails details; 942 content::LoadCommittedDetails details;
924 943
925 EXPECT_EQ(0U, notifications.size()); 944 EXPECT_EQ(0U, notifications.size());
(...skipping 16 matching lines...) Expand all
942 961
943 // A redirect right off the bat should be a NEW_PAGE. 962 // A redirect right off the bat should be a NEW_PAGE.
944 TEST_F(NavigationControllerTest, ImmediateRedirect) { 963 TEST_F(NavigationControllerTest, ImmediateRedirect) {
945 TestNotificationTracker notifications; 964 TestNotificationTracker notifications;
946 RegisterForAllNavNotifications(&notifications, &controller()); 965 RegisterForAllNavNotifications(&notifications, &controller());
947 966
948 const GURL url1("http://foo1"); 967 const GURL url1("http://foo1");
949 const GURL url2("http://foo2"); // Redirection target 968 const GURL url2("http://foo2"); // Redirection target
950 969
951 // First request 970 // First request
952 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 971 controller().LoadURL(
972 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
953 973
954 EXPECT_TRUE(controller().pending_entry()); 974 EXPECT_TRUE(controller().pending_entry());
955 EXPECT_EQ(controller().pending_entry_index(), -1); 975 EXPECT_EQ(controller().pending_entry_index(), -1);
956 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 976 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
957 977
958 ViewHostMsg_FrameNavigate_Params params; 978 ViewHostMsg_FrameNavigate_Params params;
959 params.page_id = 0; 979 params.page_id = 0;
960 params.url = url2; 980 params.url = url2;
961 params.transition = PageTransition::SERVER_REDIRECT; 981 params.transition = content::PAGE_TRANSITION_SERVER_REDIRECT;
962 params.redirects.push_back(GURL("http://foo1")); 982 params.redirects.push_back(GURL("http://foo1"));
963 params.redirects.push_back(GURL("http://foo2")); 983 params.redirects.push_back(GURL("http://foo2"));
964 params.should_update_history = false; 984 params.should_update_history = false;
965 params.gesture = NavigationGestureAuto; 985 params.gesture = NavigationGestureAuto;
966 params.is_post = false; 986 params.is_post = false;
967 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 987 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
968 988
969 content::LoadCommittedDetails details; 989 content::LoadCommittedDetails details;
970 990
971 EXPECT_EQ(0U, notifications.size()); 991 EXPECT_EQ(0U, notifications.size());
(...skipping 21 matching lines...) Expand all
993 1013
994 const GURL url1("http://foo1"); 1014 const GURL url1("http://foo1");
995 rvh()->SendNavigate(0, url1); 1015 rvh()->SendNavigate(0, url1);
996 EXPECT_TRUE(notifications.Check1AndReset( 1016 EXPECT_TRUE(notifications.Check1AndReset(
997 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1017 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
998 1018
999 const GURL url2("http://foo2"); 1019 const GURL url2("http://foo2");
1000 ViewHostMsg_FrameNavigate_Params params; 1020 ViewHostMsg_FrameNavigate_Params params;
1001 params.page_id = 1; 1021 params.page_id = 1;
1002 params.url = url2; 1022 params.url = url2;
1003 params.transition = PageTransition::MANUAL_SUBFRAME; 1023 params.transition = content::PAGE_TRANSITION_MANUAL_SUBFRAME;
1004 params.should_update_history = false; 1024 params.should_update_history = false;
1005 params.gesture = NavigationGestureUser; 1025 params.gesture = NavigationGestureUser;
1006 params.is_post = false; 1026 params.is_post = false;
1007 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 1027 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
1008 1028
1009 content::LoadCommittedDetails details; 1029 content::LoadCommittedDetails details;
1010 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 1030 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
1011 EXPECT_TRUE(notifications.Check1AndReset( 1031 EXPECT_TRUE(notifications.Check1AndReset(
1012 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1032 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
1013 EXPECT_EQ(url1, details.previous_url); 1033 EXPECT_EQ(url1, details.previous_url);
(...skipping 14 matching lines...) Expand all
1028 // just get thrown on the ground, but we shouldn't crash. 1048 // just get thrown on the ground, but we shouldn't crash.
1029 TEST_F(NavigationControllerTest, SubframeOnEmptyPage) { 1049 TEST_F(NavigationControllerTest, SubframeOnEmptyPage) {
1030 TestNotificationTracker notifications; 1050 TestNotificationTracker notifications;
1031 RegisterForAllNavNotifications(&notifications, &controller()); 1051 RegisterForAllNavNotifications(&notifications, &controller());
1032 1052
1033 // Navigation controller currently has no entries. 1053 // Navigation controller currently has no entries.
1034 const GURL url("http://foo2"); 1054 const GURL url("http://foo2");
1035 ViewHostMsg_FrameNavigate_Params params; 1055 ViewHostMsg_FrameNavigate_Params params;
1036 params.page_id = 1; 1056 params.page_id = 1;
1037 params.url = url; 1057 params.url = url;
1038 params.transition = PageTransition::AUTO_SUBFRAME; 1058 params.transition = content::PAGE_TRANSITION_AUTO_SUBFRAME;
1039 params.should_update_history = false; 1059 params.should_update_history = false;
1040 params.gesture = NavigationGestureAuto; 1060 params.gesture = NavigationGestureAuto;
1041 params.is_post = false; 1061 params.is_post = false;
1042 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url)); 1062 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url));
1043 1063
1044 content::LoadCommittedDetails details; 1064 content::LoadCommittedDetails details;
1045 EXPECT_FALSE(controller().RendererDidNavigate(params, &details)); 1065 EXPECT_FALSE(controller().RendererDidNavigate(params, &details));
1046 EXPECT_EQ(0U, notifications.size()); 1066 EXPECT_EQ(0U, notifications.size());
1047 } 1067 }
1048 1068
1049 // Auto subframes are ones the page loads automatically like ads. They should 1069 // Auto subframes are ones the page loads automatically like ads. They should
1050 // not create new navigation entries. 1070 // not create new navigation entries.
1051 TEST_F(NavigationControllerTest, AutoSubframe) { 1071 TEST_F(NavigationControllerTest, AutoSubframe) {
1052 TestNotificationTracker notifications; 1072 TestNotificationTracker notifications;
1053 RegisterForAllNavNotifications(&notifications, &controller()); 1073 RegisterForAllNavNotifications(&notifications, &controller());
1054 1074
1055 const GURL url1("http://foo1"); 1075 const GURL url1("http://foo1");
1056 rvh()->SendNavigate(0, url1); 1076 rvh()->SendNavigate(0, url1);
1057 EXPECT_TRUE(notifications.Check1AndReset( 1077 EXPECT_TRUE(notifications.Check1AndReset(
1058 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1078 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
1059 1079
1060 const GURL url2("http://foo2"); 1080 const GURL url2("http://foo2");
1061 ViewHostMsg_FrameNavigate_Params params; 1081 ViewHostMsg_FrameNavigate_Params params;
1062 params.page_id = 0; 1082 params.page_id = 0;
1063 params.url = url2; 1083 params.url = url2;
1064 params.transition = PageTransition::AUTO_SUBFRAME; 1084 params.transition = content::PAGE_TRANSITION_AUTO_SUBFRAME;
1065 params.should_update_history = false; 1085 params.should_update_history = false;
1066 params.gesture = NavigationGestureUser; 1086 params.gesture = NavigationGestureUser;
1067 params.is_post = false; 1087 params.is_post = false;
1068 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 1088 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
1069 1089
1070 // Navigating should do nothing. 1090 // Navigating should do nothing.
1071 content::LoadCommittedDetails details; 1091 content::LoadCommittedDetails details;
1072 EXPECT_FALSE(controller().RendererDidNavigate(params, &details)); 1092 EXPECT_FALSE(controller().RendererDidNavigate(params, &details));
1073 EXPECT_EQ(0U, notifications.size()); 1093 EXPECT_EQ(0U, notifications.size());
1074 1094
(...skipping 10 matching lines...) Expand all
1085 const GURL url1("http://foo1"); 1105 const GURL url1("http://foo1");
1086 rvh()->SendNavigate(0, url1); 1106 rvh()->SendNavigate(0, url1);
1087 EXPECT_TRUE(notifications.Check1AndReset( 1107 EXPECT_TRUE(notifications.Check1AndReset(
1088 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1108 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
1089 1109
1090 // First manual subframe navigation. 1110 // First manual subframe navigation.
1091 const GURL url2("http://foo2"); 1111 const GURL url2("http://foo2");
1092 ViewHostMsg_FrameNavigate_Params params; 1112 ViewHostMsg_FrameNavigate_Params params;
1093 params.page_id = 1; 1113 params.page_id = 1;
1094 params.url = url2; 1114 params.url = url2;
1095 params.transition = PageTransition::MANUAL_SUBFRAME; 1115 params.transition = content::PAGE_TRANSITION_MANUAL_SUBFRAME;
1096 params.should_update_history = false; 1116 params.should_update_history = false;
1097 params.gesture = NavigationGestureUser; 1117 params.gesture = NavigationGestureUser;
1098 params.is_post = false; 1118 params.is_post = false;
1099 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 1119 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
1100 1120
1101 // This should generate a new entry. 1121 // This should generate a new entry.
1102 content::LoadCommittedDetails details; 1122 content::LoadCommittedDetails details;
1103 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 1123 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
1104 EXPECT_TRUE(notifications.Check1AndReset( 1124 EXPECT_TRUE(notifications.Check1AndReset(
1105 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1125 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 const GURL url1("http://foo"); 1189 const GURL url1("http://foo");
1170 rvh()->SendNavigate(0, url1); 1190 rvh()->SendNavigate(0, url1);
1171 EXPECT_TRUE(notifications.Check1AndReset( 1191 EXPECT_TRUE(notifications.Check1AndReset(
1172 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1192 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
1173 1193
1174 // First navigation. 1194 // First navigation.
1175 const GURL url2("http://foo#a"); 1195 const GURL url2("http://foo#a");
1176 ViewHostMsg_FrameNavigate_Params params; 1196 ViewHostMsg_FrameNavigate_Params params;
1177 params.page_id = 1; 1197 params.page_id = 1;
1178 params.url = url2; 1198 params.url = url2;
1179 params.transition = PageTransition::LINK; 1199 params.transition = content::PAGE_TRANSITION_LINK;
1180 params.should_update_history = false; 1200 params.should_update_history = false;
1181 params.gesture = NavigationGestureUser; 1201 params.gesture = NavigationGestureUser;
1182 params.is_post = false; 1202 params.is_post = false;
1183 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 1203 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
1184 1204
1185 // This should generate a new entry. 1205 // This should generate a new entry.
1186 content::LoadCommittedDetails details; 1206 content::LoadCommittedDetails details;
1187 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 1207 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
1188 EXPECT_TRUE(notifications.Check1AndReset( 1208 EXPECT_TRUE(notifications.Check1AndReset(
1189 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1209 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1250 const GURL url1("http://foo"); 1270 const GURL url1("http://foo");
1251 rvh()->SendNavigate(0, url1); 1271 rvh()->SendNavigate(0, url1);
1252 EXPECT_TRUE(notifications.Check1AndReset( 1272 EXPECT_TRUE(notifications.Check1AndReset(
1253 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1273 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
1254 1274
1255 // First navigation. 1275 // First navigation.
1256 const GURL url2("http://foo#a"); 1276 const GURL url2("http://foo#a");
1257 ViewHostMsg_FrameNavigate_Params params; 1277 ViewHostMsg_FrameNavigate_Params params;
1258 params.page_id = 0; // Same page_id 1278 params.page_id = 0; // Same page_id
1259 params.url = url2; 1279 params.url = url2;
1260 params.transition = PageTransition::LINK; 1280 params.transition = content::PAGE_TRANSITION_LINK;
1261 params.should_update_history = false; 1281 params.should_update_history = false;
1262 params.gesture = NavigationGestureUser; 1282 params.gesture = NavigationGestureUser;
1263 params.is_post = false; 1283 params.is_post = false;
1264 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2)); 1284 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url2));
1265 1285
1266 // This should NOT generate a new entry, nor prune the list. 1286 // This should NOT generate a new entry, nor prune the list.
1267 content::LoadCommittedDetails details; 1287 content::LoadCommittedDetails details;
1268 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 1288 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
1269 EXPECT_TRUE(notifications.Check1AndReset( 1289 EXPECT_TRUE(notifications.Check1AndReset(
1270 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1290 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
(...skipping 28 matching lines...) Expand all
1299 EXPECT_TRUE(notifications.Check1AndReset( 1319 EXPECT_TRUE(notifications.Check1AndReset(
1300 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1320 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
1301 } 1321 }
1302 1322
1303 // Navigate within the page. 1323 // Navigate within the page.
1304 { 1324 {
1305 const GURL url("http://foo2/#a"); 1325 const GURL url("http://foo2/#a");
1306 ViewHostMsg_FrameNavigate_Params params; 1326 ViewHostMsg_FrameNavigate_Params params;
1307 params.page_id = 1; // Same page_id 1327 params.page_id = 1; // Same page_id
1308 params.url = url; 1328 params.url = url;
1309 params.transition = PageTransition::LINK; 1329 params.transition = content::PAGE_TRANSITION_LINK;
1310 params.redirects.push_back(url); 1330 params.redirects.push_back(url);
1311 params.should_update_history = true; 1331 params.should_update_history = true;
1312 params.gesture = NavigationGestureUnknown; 1332 params.gesture = NavigationGestureUnknown;
1313 params.is_post = false; 1333 params.is_post = false;
1314 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url)); 1334 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url));
1315 1335
1316 // This should NOT generate a new entry, nor prune the list. 1336 // This should NOT generate a new entry, nor prune the list.
1317 content::LoadCommittedDetails details; 1337 content::LoadCommittedDetails details;
1318 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 1338 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
1319 EXPECT_TRUE(notifications.Check1AndReset( 1339 EXPECT_TRUE(notifications.Check1AndReset(
1320 content::NOTIFICATION_NAV_ENTRY_COMMITTED)); 1340 content::NOTIFICATION_NAV_ENTRY_COMMITTED));
1321 EXPECT_TRUE(details.is_in_page); 1341 EXPECT_TRUE(details.is_in_page);
1322 EXPECT_TRUE(details.did_replace_entry); 1342 EXPECT_TRUE(details.did_replace_entry);
1323 EXPECT_EQ(2, controller().entry_count()); 1343 EXPECT_EQ(2, controller().entry_count());
1324 } 1344 }
1325 1345
1326 // Perform a client redirect to a new page. 1346 // Perform a client redirect to a new page.
1327 { 1347 {
1328 const GURL url("http://foo3/"); 1348 const GURL url("http://foo3/");
1329 ViewHostMsg_FrameNavigate_Params params; 1349 ViewHostMsg_FrameNavigate_Params params;
1330 params.page_id = 2; // New page_id 1350 params.page_id = 2; // New page_id
1331 params.url = url; 1351 params.url = url;
1332 params.transition = PageTransition::CLIENT_REDIRECT; 1352 params.transition = content::PAGE_TRANSITION_CLIENT_REDIRECT;
1333 params.redirects.push_back(GURL("http://foo2/#a")); 1353 params.redirects.push_back(GURL("http://foo2/#a"));
1334 params.redirects.push_back(url); 1354 params.redirects.push_back(url);
1335 params.should_update_history = true; 1355 params.should_update_history = true;
1336 params.gesture = NavigationGestureUnknown; 1356 params.gesture = NavigationGestureUnknown;
1337 params.is_post = false; 1357 params.is_post = false;
1338 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url)); 1358 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url));
1339 1359
1340 // This SHOULD generate a new entry. 1360 // This SHOULD generate a new entry.
1341 content::LoadCommittedDetails details; 1361 content::LoadCommittedDetails details;
1342 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 1362 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1392 TEST_F(NavigationControllerTest, EnforceMaxNavigationCount) { 1412 TEST_F(NavigationControllerTest, EnforceMaxNavigationCount) {
1393 size_t original_count = NavigationController::max_entry_count(); 1413 size_t original_count = NavigationController::max_entry_count();
1394 const int kMaxEntryCount = 5; 1414 const int kMaxEntryCount = 5;
1395 1415
1396 NavigationController::set_max_entry_count_for_testing(kMaxEntryCount); 1416 NavigationController::set_max_entry_count_for_testing(kMaxEntryCount);
1397 1417
1398 int url_index; 1418 int url_index;
1399 // Load up to the max count, all entries should be there. 1419 // Load up to the max count, all entries should be there.
1400 for (url_index = 0; url_index < kMaxEntryCount; url_index++) { 1420 for (url_index = 0; url_index < kMaxEntryCount; url_index++) {
1401 GURL url(StringPrintf("http://www.a.com/%d", url_index)); 1421 GURL url(StringPrintf("http://www.a.com/%d", url_index));
1402 controller().LoadURL(url, GURL(), PageTransition::TYPED, std::string()); 1422 controller().LoadURL(
1423 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1403 rvh()->SendNavigate(url_index, url); 1424 rvh()->SendNavigate(url_index, url);
1404 } 1425 }
1405 1426
1406 EXPECT_EQ(controller().entry_count(), kMaxEntryCount); 1427 EXPECT_EQ(controller().entry_count(), kMaxEntryCount);
1407 1428
1408 // Created a PrunedListener to observe prune notifications. 1429 // Created a PrunedListener to observe prune notifications.
1409 PrunedListener listener(&controller()); 1430 PrunedListener listener(&controller());
1410 1431
1411 // Navigate some more. 1432 // Navigate some more.
1412 GURL url(StringPrintf("http://www.a.com/%d", url_index)); 1433 GURL url(StringPrintf("http://www.a.com/%d", url_index));
1413 controller().LoadURL(url, GURL(), PageTransition::TYPED, std::string()); 1434 controller().LoadURL(
1435 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1414 rvh()->SendNavigate(url_index, url); 1436 rvh()->SendNavigate(url_index, url);
1415 url_index++; 1437 url_index++;
1416 1438
1417 // We should have got a pruned navigation. 1439 // We should have got a pruned navigation.
1418 EXPECT_EQ(1, listener.notification_count_); 1440 EXPECT_EQ(1, listener.notification_count_);
1419 EXPECT_TRUE(listener.details_.from_front); 1441 EXPECT_TRUE(listener.details_.from_front);
1420 EXPECT_EQ(1, listener.details_.count); 1442 EXPECT_EQ(1, listener.details_.count);
1421 1443
1422 // We expect http://www.a.com/0 to be gone. 1444 // We expect http://www.a.com/0 to be gone.
1423 EXPECT_EQ(controller().entry_count(), kMaxEntryCount); 1445 EXPECT_EQ(controller().entry_count(), kMaxEntryCount);
1424 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(), 1446 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(),
1425 GURL("http:////www.a.com/1")); 1447 GURL("http:////www.a.com/1"));
1426 1448
1427 // More navigations. 1449 // More navigations.
1428 for (int i = 0; i < 3; i++) { 1450 for (int i = 0; i < 3; i++) {
1429 url = GURL(StringPrintf("http:////www.a.com/%d", url_index)); 1451 url = GURL(StringPrintf("http:////www.a.com/%d", url_index));
1430 controller().LoadURL(url, GURL(), PageTransition::TYPED, std::string()); 1452 controller().LoadURL(
1431 rvh()->SendNavigate(url_index, url); 1453 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1454 rvh()->SendNavigate(url_index, url);
1432 url_index++; 1455 url_index++;
1433 } 1456 }
1434 EXPECT_EQ(controller().entry_count(), kMaxEntryCount); 1457 EXPECT_EQ(controller().entry_count(), kMaxEntryCount);
1435 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(), 1458 EXPECT_EQ(controller().GetEntryAtIndex(0)->url(),
1436 GURL("http:////www.a.com/4")); 1459 GURL("http:////www.a.com/4"));
1437 1460
1438 NavigationController::set_max_entry_count_for_testing(original_count); 1461 NavigationController::set_max_entry_count_for_testing(original_count);
1439 } 1462 }
1440 1463
1441 // Tests that we can do a restore and navigate to the restored entries and 1464 // Tests that we can do a restore and navigate to the restored entries and
1442 // everything is updated properly. This can be tricky since there is no 1465 // everything is updated properly. This can be tricky since there is no
1443 // SiteInstance for the entries created initially. 1466 // SiteInstance for the entries created initially.
1444 TEST_F(NavigationControllerTest, RestoreNavigate) { 1467 TEST_F(NavigationControllerTest, RestoreNavigate) {
1445 // Create a NavigationController with a restored set of tabs. 1468 // Create a NavigationController with a restored set of tabs.
1446 GURL url("http://foo"); 1469 GURL url("http://foo");
1447 std::vector<NavigationEntry*> entries; 1470 std::vector<NavigationEntry*> entries;
1448 NavigationEntry* entry = NavigationController::CreateNavigationEntry( 1471 NavigationEntry* entry = NavigationController::CreateNavigationEntry(
1449 url, GURL(), PageTransition::RELOAD, std::string(), profile()); 1472 url, GURL(), content::PAGE_TRANSITION_RELOAD, std::string(), profile());
1450 entry->set_page_id(0); 1473 entry->set_page_id(0);
1451 entry->set_title(ASCIIToUTF16("Title")); 1474 entry->set_title(ASCIIToUTF16("Title"));
1452 entry->set_content_state("state"); 1475 entry->set_content_state("state");
1453 entries.push_back(entry); 1476 entries.push_back(entry);
1454 TabContents our_contents(profile(), NULL, MSG_ROUTING_NONE, NULL, NULL); 1477 TabContents our_contents(profile(), NULL, MSG_ROUTING_NONE, NULL, NULL);
1455 NavigationController& our_controller = our_contents.controller(); 1478 NavigationController& our_controller = our_contents.controller();
1456 our_controller.Restore(0, true, &entries); 1479 our_controller.Restore(0, true, &entries);
1457 ASSERT_EQ(0u, entries.size()); 1480 ASSERT_EQ(0u, entries.size());
1458 1481
1459 // Before navigating to the restored entry, it should have a restore_type 1482 // Before navigating to the restored entry, it should have a restore_type
(...skipping 10 matching lines...) Expand all
1470 our_controller.pending_entry()); 1493 our_controller.pending_entry());
1471 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->page_id()); 1494 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->page_id());
1472 EXPECT_EQ(NavigationEntry::RESTORE_NONE, 1495 EXPECT_EQ(NavigationEntry::RESTORE_NONE,
1473 our_controller.GetEntryAtIndex(0)->restore_type()); 1496 our_controller.GetEntryAtIndex(0)->restore_type());
1474 EXPECT_TRUE(our_controller.GetEntryAtIndex(0)->site_instance()); 1497 EXPECT_TRUE(our_controller.GetEntryAtIndex(0)->site_instance());
1475 1498
1476 // Say we navigated to that entry. 1499 // Say we navigated to that entry.
1477 ViewHostMsg_FrameNavigate_Params params; 1500 ViewHostMsg_FrameNavigate_Params params;
1478 params.page_id = 0; 1501 params.page_id = 0;
1479 params.url = url; 1502 params.url = url;
1480 params.transition = PageTransition::LINK; 1503 params.transition = content::PAGE_TRANSITION_LINK;
1481 params.should_update_history = false; 1504 params.should_update_history = false;
1482 params.gesture = NavigationGestureUser; 1505 params.gesture = NavigationGestureUser;
1483 params.is_post = false; 1506 params.is_post = false;
1484 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url)); 1507 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url));
1485 content::LoadCommittedDetails details; 1508 content::LoadCommittedDetails details;
1486 our_controller.RendererDidNavigate(params, &details); 1509 our_controller.RendererDidNavigate(params, &details);
1487 1510
1488 // There should be no longer any pending entry and one committed one. This 1511 // There should be no longer any pending entry and one committed one. This
1489 // means that we were able to locate the entry, assign its site instance, and 1512 // means that we were able to locate the entry, assign its site instance, and
1490 // commit it properly. 1513 // commit it properly.
1491 EXPECT_EQ(1, our_controller.entry_count()); 1514 EXPECT_EQ(1, our_controller.entry_count());
1492 EXPECT_EQ(0, our_controller.last_committed_entry_index()); 1515 EXPECT_EQ(0, our_controller.last_committed_entry_index());
1493 EXPECT_FALSE(our_controller.pending_entry()); 1516 EXPECT_FALSE(our_controller.pending_entry());
1494 EXPECT_EQ(url, 1517 EXPECT_EQ(url,
1495 our_controller.GetLastCommittedEntry()->site_instance()->site()); 1518 our_controller.GetLastCommittedEntry()->site_instance()->site());
1496 EXPECT_EQ(NavigationEntry::RESTORE_NONE, 1519 EXPECT_EQ(NavigationEntry::RESTORE_NONE,
1497 our_controller.GetEntryAtIndex(0)->restore_type()); 1520 our_controller.GetEntryAtIndex(0)->restore_type());
1498 } 1521 }
1499 1522
1500 // Tests that we can still navigate to a restored entry after a different 1523 // Tests that we can still navigate to a restored entry after a different
1501 // navigation fails and clears the pending entry. http://crbug.com/90085 1524 // navigation fails and clears the pending entry. http://crbug.com/90085
1502 TEST_F(NavigationControllerTest, RestoreNavigateAfterFailure) { 1525 TEST_F(NavigationControllerTest, RestoreNavigateAfterFailure) {
1503 // Create a NavigationController with a restored set of tabs. 1526 // Create a NavigationController with a restored set of tabs.
1504 GURL url("http://foo"); 1527 GURL url("http://foo");
1505 std::vector<NavigationEntry*> entries; 1528 std::vector<NavigationEntry*> entries;
1506 NavigationEntry* entry = NavigationController::CreateNavigationEntry( 1529 NavigationEntry* entry = NavigationController::CreateNavigationEntry(
1507 url, GURL(), PageTransition::RELOAD, std::string(), profile()); 1530 url, GURL(), content::PAGE_TRANSITION_RELOAD, std::string(), profile());
1508 entry->set_page_id(0); 1531 entry->set_page_id(0);
1509 entry->set_title(ASCIIToUTF16("Title")); 1532 entry->set_title(ASCIIToUTF16("Title"));
1510 entry->set_content_state("state"); 1533 entry->set_content_state("state");
1511 entries.push_back(entry); 1534 entries.push_back(entry);
1512 TabContents our_contents(profile(), NULL, MSG_ROUTING_NONE, NULL, NULL); 1535 TabContents our_contents(profile(), NULL, MSG_ROUTING_NONE, NULL, NULL);
1513 NavigationController& our_controller = our_contents.controller(); 1536 NavigationController& our_controller = our_contents.controller();
1514 our_controller.Restore(0, true, &entries); 1537 our_controller.Restore(0, true, &entries);
1515 ASSERT_EQ(0u, entries.size()); 1538 ASSERT_EQ(0u, entries.size());
1516 1539
1517 // Before navigating to the restored entry, it should have a restore_type 1540 // Before navigating to the restored entry, it should have a restore_type
(...skipping 25 matching lines...) Expand all
1543 fail_load_params.url = url; 1566 fail_load_params.url = url;
1544 fail_load_params.showing_repost_interstitial = false; 1567 fail_load_params.showing_repost_interstitial = false;
1545 rvh->TestOnMessageReceived( 1568 rvh->TestOnMessageReceived(
1546 ViewHostMsg_DidFailProvisionalLoadWithError(0, // routing_id 1569 ViewHostMsg_DidFailProvisionalLoadWithError(0, // routing_id
1547 fail_load_params)); 1570 fail_load_params));
1548 1571
1549 // Now the pending restored entry commits. 1572 // Now the pending restored entry commits.
1550 ViewHostMsg_FrameNavigate_Params params; 1573 ViewHostMsg_FrameNavigate_Params params;
1551 params.page_id = 0; 1574 params.page_id = 0;
1552 params.url = url; 1575 params.url = url;
1553 params.transition = PageTransition::LINK; 1576 params.transition = content::PAGE_TRANSITION_LINK;
1554 params.should_update_history = false; 1577 params.should_update_history = false;
1555 params.gesture = NavigationGestureUser; 1578 params.gesture = NavigationGestureUser;
1556 params.is_post = false; 1579 params.is_post = false;
1557 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url)); 1580 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url));
1558 content::LoadCommittedDetails details; 1581 content::LoadCommittedDetails details;
1559 our_controller.RendererDidNavigate(params, &details); 1582 our_controller.RendererDidNavigate(params, &details);
1560 1583
1561 // There should be no pending entry and one committed one. 1584 // There should be no pending entry and one committed one.
1562 EXPECT_EQ(1, our_controller.entry_count()); 1585 EXPECT_EQ(1, our_controller.entry_count());
1563 EXPECT_EQ(0, our_controller.last_committed_entry_index()); 1586 EXPECT_EQ(0, our_controller.last_committed_entry_index());
1564 EXPECT_FALSE(our_controller.pending_entry()); 1587 EXPECT_FALSE(our_controller.pending_entry());
1565 EXPECT_EQ(url, 1588 EXPECT_EQ(url,
1566 our_controller.GetLastCommittedEntry()->site_instance()->site()); 1589 our_controller.GetLastCommittedEntry()->site_instance()->site());
1567 EXPECT_EQ(NavigationEntry::RESTORE_NONE, 1590 EXPECT_EQ(NavigationEntry::RESTORE_NONE,
1568 our_controller.GetEntryAtIndex(0)->restore_type()); 1591 our_controller.GetEntryAtIndex(0)->restore_type());
1569 } 1592 }
1570 1593
1571 // Make sure that the page type and stuff is correct after an interstitial. 1594 // Make sure that the page type and stuff is correct after an interstitial.
1572 TEST_F(NavigationControllerTest, Interstitial) { 1595 TEST_F(NavigationControllerTest, Interstitial) {
1573 // First navigate somewhere normal. 1596 // First navigate somewhere normal.
1574 const GURL url1("http://foo"); 1597 const GURL url1("http://foo");
1575 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 1598 controller().LoadURL(
1599 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1576 rvh()->SendNavigate(0, url1); 1600 rvh()->SendNavigate(0, url1);
1577 1601
1578 // Now navigate somewhere with an interstitial. 1602 // Now navigate somewhere with an interstitial.
1579 const GURL url2("http://bar"); 1603 const GURL url2("http://bar");
1580 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 1604 controller().LoadURL(
1605 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1581 controller().pending_entry()->set_page_type(INTERSTITIAL_PAGE); 1606 controller().pending_entry()->set_page_type(INTERSTITIAL_PAGE);
1582 1607
1583 // At this point the interstitial will be displayed and the load will still 1608 // At this point the interstitial will be displayed and the load will still
1584 // be pending. If the user continues, the load will commit. 1609 // be pending. If the user continues, the load will commit.
1585 rvh()->SendNavigate(1, url2); 1610 rvh()->SendNavigate(1, url2);
1586 1611
1587 // The page should be a normal page again. 1612 // The page should be a normal page again.
1588 EXPECT_EQ(url2, controller().GetLastCommittedEntry()->url()); 1613 EXPECT_EQ(url2, controller().GetLastCommittedEntry()->url());
1589 EXPECT_EQ(NORMAL_PAGE, controller().GetLastCommittedEntry()->page_type()); 1614 EXPECT_EQ(NORMAL_PAGE, controller().GetLastCommittedEntry()->page_type());
1590 } 1615 }
1591 1616
1592 TEST_F(NavigationControllerTest, RemoveEntry) { 1617 TEST_F(NavigationControllerTest, RemoveEntry) {
1593 const GURL url1("http://foo/1"); 1618 const GURL url1("http://foo/1");
1594 const GURL url2("http://foo/2"); 1619 const GURL url2("http://foo/2");
1595 const GURL url3("http://foo/3"); 1620 const GURL url3("http://foo/3");
1596 const GURL url4("http://foo/4"); 1621 const GURL url4("http://foo/4");
1597 const GURL url5("http://foo/5"); 1622 const GURL url5("http://foo/5");
1598 const GURL pending_url("http://foo/pending"); 1623 const GURL pending_url("http://foo/pending");
1599 const GURL default_url("http://foo/default"); 1624 const GURL default_url("http://foo/default");
1600 1625
1601 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 1626 controller().LoadURL(
1627 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1602 rvh()->SendNavigate(0, url1); 1628 rvh()->SendNavigate(0, url1);
1603 controller().LoadURL(url2, GURL(), PageTransition::TYPED, std::string()); 1629 controller().LoadURL(
1630 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1604 rvh()->SendNavigate(1, url2); 1631 rvh()->SendNavigate(1, url2);
1605 controller().LoadURL(url3, GURL(), PageTransition::TYPED, std::string()); 1632 controller().LoadURL(
1633 url3, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1606 rvh()->SendNavigate(2, url3); 1634 rvh()->SendNavigate(2, url3);
1607 controller().LoadURL(url4, GURL(), PageTransition::TYPED, std::string()); 1635 controller().LoadURL(
1636 url4, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1608 rvh()->SendNavigate(3, url4); 1637 rvh()->SendNavigate(3, url4);
1609 controller().LoadURL(url5, GURL(), PageTransition::TYPED, std::string()); 1638 controller().LoadURL(
1639 url5, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1610 rvh()->SendNavigate(4, url5); 1640 rvh()->SendNavigate(4, url5);
1611 1641
1612 // Remove the last entry. 1642 // Remove the last entry.
1613 controller().RemoveEntryAtIndex( 1643 controller().RemoveEntryAtIndex(
1614 controller().entry_count() - 1, default_url); 1644 controller().entry_count() - 1, default_url);
1615 EXPECT_EQ(4, controller().entry_count()); 1645 EXPECT_EQ(4, controller().entry_count());
1616 EXPECT_EQ(3, controller().last_committed_entry_index()); 1646 EXPECT_EQ(3, controller().last_committed_entry_index());
1617 NavigationEntry* pending_entry = controller().pending_entry(); 1647 NavigationEntry* pending_entry = controller().pending_entry();
1618 EXPECT_TRUE(pending_entry && pending_entry->url() == url4); 1648 EXPECT_TRUE(pending_entry && pending_entry->url() == url4);
1619 1649
1620 // Add a pending entry. 1650 // Add a pending entry.
1621 controller().LoadURL(pending_url, GURL(), PageTransition::TYPED, 1651 controller().LoadURL(pending_url, GURL(), content::PAGE_TRANSITION_TYPED,
1622 std::string()); 1652 std::string());
1623 // Now remove the last entry. 1653 // Now remove the last entry.
1624 controller().RemoveEntryAtIndex( 1654 controller().RemoveEntryAtIndex(
1625 controller().entry_count() - 1, default_url); 1655 controller().entry_count() - 1, default_url);
1626 // The pending entry should have been discarded and the last committed entry 1656 // The pending entry should have been discarded and the last committed entry
1627 // removed. 1657 // removed.
1628 EXPECT_EQ(3, controller().entry_count()); 1658 EXPECT_EQ(3, controller().entry_count());
1629 EXPECT_EQ(2, controller().last_committed_entry_index()); 1659 EXPECT_EQ(2, controller().last_committed_entry_index());
1630 pending_entry = controller().pending_entry(); 1660 pending_entry = controller().pending_entry();
1631 EXPECT_TRUE(pending_entry && pending_entry->url() == url3); 1661 EXPECT_TRUE(pending_entry && pending_entry->url() == url3);
(...skipping 22 matching lines...) Expand all
1654 TestNotificationTracker notifications; 1684 TestNotificationTracker notifications;
1655 RegisterForAllNavNotifications(&notifications, &controller()); 1685 RegisterForAllNavNotifications(&notifications, &controller());
1656 1686
1657 const GURL url0("http://foo/0"); 1687 const GURL url0("http://foo/0");
1658 const GURL url1("http://foo/1"); 1688 const GURL url1("http://foo/1");
1659 const GURL url2("http://foo/2"); 1689 const GURL url2("http://foo/2");
1660 const GURL url3("http://foo/3"); 1690 const GURL url3("http://foo/3");
1661 const GURL url4("http://foo/4"); 1691 const GURL url4("http://foo/4");
1662 const GURL transient_url("http://foo/transient"); 1692 const GURL transient_url("http://foo/transient");
1663 1693
1664 controller().LoadURL(url0, GURL(), PageTransition::TYPED, std::string()); 1694 controller().LoadURL(
1695 url0, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1665 rvh()->SendNavigate(0, url0); 1696 rvh()->SendNavigate(0, url0);
1666 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 1697 controller().LoadURL(
1698 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1667 rvh()->SendNavigate(1, url1); 1699 rvh()->SendNavigate(1, url1);
1668 1700
1669 notifications.Reset(); 1701 notifications.Reset();
1670 1702
1671 // Adding a transient with no pending entry. 1703 // Adding a transient with no pending entry.
1672 NavigationEntry* transient_entry = new NavigationEntry; 1704 NavigationEntry* transient_entry = new NavigationEntry;
1673 transient_entry->set_url(transient_url); 1705 transient_entry->set_url(transient_url);
1674 controller().AddTransientEntry(transient_entry); 1706 controller().AddTransientEntry(transient_entry);
1675 1707
1676 // We should not have received any notifications. 1708 // We should not have received any notifications.
1677 EXPECT_EQ(0U, notifications.size()); 1709 EXPECT_EQ(0U, notifications.size());
1678 1710
1679 // Check our state. 1711 // Check our state.
1680 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url()); 1712 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url());
1681 EXPECT_EQ(controller().entry_count(), 3); 1713 EXPECT_EQ(controller().entry_count(), 3);
1682 EXPECT_EQ(controller().last_committed_entry_index(), 1); 1714 EXPECT_EQ(controller().last_committed_entry_index(), 1);
1683 EXPECT_EQ(controller().pending_entry_index(), -1); 1715 EXPECT_EQ(controller().pending_entry_index(), -1);
1684 EXPECT_TRUE(controller().GetLastCommittedEntry()); 1716 EXPECT_TRUE(controller().GetLastCommittedEntry());
1685 EXPECT_FALSE(controller().pending_entry()); 1717 EXPECT_FALSE(controller().pending_entry());
1686 EXPECT_TRUE(controller().CanGoBack()); 1718 EXPECT_TRUE(controller().CanGoBack());
1687 EXPECT_FALSE(controller().CanGoForward()); 1719 EXPECT_FALSE(controller().CanGoForward());
1688 EXPECT_EQ(contents()->GetMaxPageID(), 1); 1720 EXPECT_EQ(contents()->GetMaxPageID(), 1);
1689 1721
1690 // Navigate. 1722 // Navigate.
1691 controller().LoadURL(url2, GURL(), PageTransition::TYPED, std::string()); 1723 controller().LoadURL(
1724 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1692 rvh()->SendNavigate(2, url2); 1725 rvh()->SendNavigate(2, url2);
1693 1726
1694 // We should have navigated, transient entry should be gone. 1727 // We should have navigated, transient entry should be gone.
1695 EXPECT_EQ(url2, controller().GetActiveEntry()->url()); 1728 EXPECT_EQ(url2, controller().GetActiveEntry()->url());
1696 EXPECT_EQ(controller().entry_count(), 3); 1729 EXPECT_EQ(controller().entry_count(), 3);
1697 1730
1698 // Add a transient again, then navigate with no pending entry this time. 1731 // Add a transient again, then navigate with no pending entry this time.
1699 transient_entry = new NavigationEntry; 1732 transient_entry = new NavigationEntry;
1700 transient_entry->set_url(transient_url); 1733 transient_entry->set_url(transient_url);
1701 controller().AddTransientEntry(transient_entry); 1734 controller().AddTransientEntry(transient_entry);
1702 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url()); 1735 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url());
1703 rvh()->SendNavigate(3, url3); 1736 rvh()->SendNavigate(3, url3);
1704 // Transient entry should be gone. 1737 // Transient entry should be gone.
1705 EXPECT_EQ(url3, controller().GetActiveEntry()->url()); 1738 EXPECT_EQ(url3, controller().GetActiveEntry()->url());
1706 EXPECT_EQ(controller().entry_count(), 4); 1739 EXPECT_EQ(controller().entry_count(), 4);
1707 1740
1708 // Initiate a navigation, add a transient then commit navigation. 1741 // Initiate a navigation, add a transient then commit navigation.
1709 controller().LoadURL(url4, GURL(), PageTransition::TYPED, std::string()); 1742 controller().LoadURL(
1743 url4, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1710 transient_entry = new NavigationEntry; 1744 transient_entry = new NavigationEntry;
1711 transient_entry->set_url(transient_url); 1745 transient_entry->set_url(transient_url);
1712 controller().AddTransientEntry(transient_entry); 1746 controller().AddTransientEntry(transient_entry);
1713 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url()); 1747 EXPECT_EQ(transient_url, controller().GetActiveEntry()->url());
1714 rvh()->SendNavigate(4, url4); 1748 rvh()->SendNavigate(4, url4);
1715 EXPECT_EQ(url4, controller().GetActiveEntry()->url()); 1749 EXPECT_EQ(url4, controller().GetActiveEntry()->url());
1716 EXPECT_EQ(controller().entry_count(), 5); 1750 EXPECT_EQ(controller().entry_count(), 5);
1717 1751
1718 // Add a transient and go back. This should simply remove the transient. 1752 // Add a transient and go back. This should simply remove the transient.
1719 transient_entry = new NavigationEntry; 1753 transient_entry = new NavigationEntry;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1814 1848
1815 // We should be at the first navigation entry. 1849 // We should be at the first navigation entry.
1816 EXPECT_EQ(controller().entry_count(), 1); 1850 EXPECT_EQ(controller().entry_count(), 1);
1817 EXPECT_EQ(controller().last_committed_entry_index(), 0); 1851 EXPECT_EQ(controller().last_committed_entry_index(), 0);
1818 1852
1819 // Navigate a subframe that would normally count as in-page. 1853 // Navigate a subframe that would normally count as in-page.
1820 const GURL subframe("http://www.google.com/#"); 1854 const GURL subframe("http://www.google.com/#");
1821 ViewHostMsg_FrameNavigate_Params params; 1855 ViewHostMsg_FrameNavigate_Params params;
1822 params.page_id = 0; 1856 params.page_id = 0;
1823 params.url = subframe; 1857 params.url = subframe;
1824 params.transition = PageTransition::AUTO_SUBFRAME; 1858 params.transition = content::PAGE_TRANSITION_AUTO_SUBFRAME;
1825 params.should_update_history = false; 1859 params.should_update_history = false;
1826 params.gesture = NavigationGestureAuto; 1860 params.gesture = NavigationGestureAuto;
1827 params.is_post = false; 1861 params.is_post = false;
1828 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(subframe)); 1862 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(subframe));
1829 content::LoadCommittedDetails details; 1863 content::LoadCommittedDetails details;
1830 EXPECT_FALSE(controller().RendererDidNavigate(params, &details)); 1864 EXPECT_FALSE(controller().RendererDidNavigate(params, &details));
1831 1865
1832 // Nothing should have changed. 1866 // Nothing should have changed.
1833 EXPECT_EQ(controller().entry_count(), 1); 1867 EXPECT_EQ(controller().entry_count(), 1);
1834 EXPECT_EQ(controller().last_committed_entry_index(), 0); 1868 EXPECT_EQ(controller().last_committed_entry_index(), 0);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1871 1905
1872 // Tests a subframe navigation while a toplevel navigation is pending. 1906 // Tests a subframe navigation while a toplevel navigation is pending.
1873 // http://crbug.com/43967 1907 // http://crbug.com/43967
1874 TEST_F(NavigationControllerTest, SubframeWhilePending) { 1908 TEST_F(NavigationControllerTest, SubframeWhilePending) {
1875 // Load the first page. 1909 // Load the first page.
1876 const GURL url1("http://foo/"); 1910 const GURL url1("http://foo/");
1877 NavigateAndCommit(url1); 1911 NavigateAndCommit(url1);
1878 1912
1879 // Now start a pending load to a totally different page, but don't commit it. 1913 // Now start a pending load to a totally different page, but don't commit it.
1880 const GURL url2("http://bar/"); 1914 const GURL url2("http://bar/");
1881 controller().LoadURL(url2, GURL(), PageTransition::TYPED, std::string()); 1915 controller().LoadURL(
1916 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1882 1917
1883 // Send a subframe update from the first page, as if one had just 1918 // Send a subframe update from the first page, as if one had just
1884 // automatically loaded. Auto subframes don't increment the page ID. 1919 // automatically loaded. Auto subframes don't increment the page ID.
1885 const GURL url1_sub("http://foo/subframe"); 1920 const GURL url1_sub("http://foo/subframe");
1886 ViewHostMsg_FrameNavigate_Params params; 1921 ViewHostMsg_FrameNavigate_Params params;
1887 params.page_id = controller().GetLastCommittedEntry()->page_id(); 1922 params.page_id = controller().GetLastCommittedEntry()->page_id();
1888 params.url = url1_sub; 1923 params.url = url1_sub;
1889 params.transition = PageTransition::AUTO_SUBFRAME; 1924 params.transition = content::PAGE_TRANSITION_AUTO_SUBFRAME;
1890 params.should_update_history = false; 1925 params.should_update_history = false;
1891 params.gesture = NavigationGestureAuto; 1926 params.gesture = NavigationGestureAuto;
1892 params.is_post = false; 1927 params.is_post = false;
1893 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url1_sub)); 1928 params.content_state = webkit_glue::CreateHistoryStateForURL(GURL(url1_sub));
1894 content::LoadCommittedDetails details; 1929 content::LoadCommittedDetails details;
1895 1930
1896 // This should return false meaning that nothing was actually updated. 1931 // This should return false meaning that nothing was actually updated.
1897 EXPECT_FALSE(controller().RendererDidNavigate(params, &details)); 1932 EXPECT_FALSE(controller().RendererDidNavigate(params, &details));
1898 1933
1899 // The notification should have updated the last committed one, and not 1934 // The notification should have updated the last committed one, and not
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1963 const GURL url1("http://foo1"); 1998 const GURL url1("http://foo1");
1964 const GURL url2("http://foo2"); 1999 const GURL url2("http://foo2");
1965 const GURL url3("http://foo3"); 2000 const GURL url3("http://foo3");
1966 2001
1967 NavigateAndCommit(url1); 2002 NavigateAndCommit(url1);
1968 NavigateAndCommit(url2); 2003 NavigateAndCommit(url2);
1969 controller().GoBack(); 2004 controller().GoBack();
1970 2005
1971 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents()); 2006 scoped_ptr<TestTabContents> other_contents(CreateTestTabContents());
1972 NavigationController& other_controller = other_contents->controller(); 2007 NavigationController& other_controller = other_contents->controller();
1973 other_controller.LoadURL(url3, GURL(), PageTransition::TYPED, std::string()); 2008 other_controller.LoadURL(
2009 url3, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
1974 other_contents->ExpectSetHistoryLengthAndPrune(NULL, 1, -1); 2010 other_contents->ExpectSetHistoryLengthAndPrune(NULL, 1, -1);
1975 other_controller.CopyStateFromAndPrune(&controller()); 2011 other_controller.CopyStateFromAndPrune(&controller());
1976 2012
1977 // other_controller should now contain 1 entry for url1, and a pending entry 2013 // other_controller should now contain 1 entry for url1, and a pending entry
1978 // for url3. 2014 // for url3.
1979 2015
1980 ASSERT_EQ(1, other_controller.entry_count()); 2016 ASSERT_EQ(1, other_controller.entry_count());
1981 2017
1982 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex()); 2018 EXPECT_EQ(0, other_controller.GetCurrentEntryIndex());
1983 2019
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 2135
2100 EXPECT_EQ(0, controller().pending_entry_index()); 2136 EXPECT_EQ(0, controller().pending_entry_index());
2101 } 2137 }
2102 2138
2103 // Test call to PruneAllButActive for transient entry. 2139 // Test call to PruneAllButActive for transient entry.
2104 TEST_F(NavigationControllerTest, PruneAllButActiveForTransient) { 2140 TEST_F(NavigationControllerTest, PruneAllButActiveForTransient) {
2105 const GURL url0("http://foo/0"); 2141 const GURL url0("http://foo/0");
2106 const GURL url1("http://foo/1"); 2142 const GURL url1("http://foo/1");
2107 const GURL transient_url("http://foo/transient"); 2143 const GURL transient_url("http://foo/transient");
2108 2144
2109 controller().LoadURL(url0, GURL(), PageTransition::TYPED, std::string()); 2145 controller().LoadURL(
2146 url0, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
2110 rvh()->SendNavigate(0, url0); 2147 rvh()->SendNavigate(0, url0);
2111 controller().LoadURL(url1, GURL(), PageTransition::TYPED, std::string()); 2148 controller().LoadURL(
2149 url1, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
2112 rvh()->SendNavigate(1, url1); 2150 rvh()->SendNavigate(1, url1);
2113 2151
2114 // Adding a transient with no pending entry. 2152 // Adding a transient with no pending entry.
2115 NavigationEntry* transient_entry = new NavigationEntry; 2153 NavigationEntry* transient_entry = new NavigationEntry;
2116 transient_entry->set_url(transient_url); 2154 transient_entry->set_url(transient_url);
2117 controller().AddTransientEntry(transient_entry); 2155 controller().AddTransientEntry(transient_entry);
2118 2156
2119 controller().PruneAllButActive(); 2157 controller().PruneAllButActive();
2120 2158
2121 EXPECT_EQ(-1, controller().pending_entry_index()); 2159 EXPECT_EQ(-1, controller().pending_entry_index());
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
2241 SessionServiceTestHelper session_helper_; 2279 SessionServiceTestHelper session_helper_;
2242 2280
2243 private: 2281 private:
2244 ProfileManager* profile_manager_; 2282 ProfileManager* profile_manager_;
2245 FilePath test_dir_; 2283 FilePath test_dir_;
2246 }; 2284 };
2247 2285
2248 // A basic test case. Navigates to a single url, and make sure the history 2286 // A basic test case. Navigates to a single url, and make sure the history
2249 // db matches. 2287 // db matches.
2250 TEST_F(NavigationControllerHistoryTest, Basic) { 2288 TEST_F(NavigationControllerHistoryTest, Basic) {
2251 controller().LoadURL(url0, GURL(), PageTransition::LINK); 2289 controller().LoadURL(url0, GURL(), content::PAGE_TRANSITION_LINK);
2252 rvh()->SendNavigate(0, url0); 2290 rvh()->SendNavigate(0, url0);
2253 2291
2254 GetLastSession(); 2292 GetLastSession();
2255 2293
2256 session_helper_.AssertSingleWindowWithSingleTab(windows_, 1); 2294 session_helper_.AssertSingleWindowWithSingleTab(windows_, 1);
2257 session_helper_.AssertTabEquals(0, 0, 1, *(windows_[0]->tabs[0])); 2295 session_helper_.AssertTabEquals(0, 0, 1, *(windows_[0]->tabs[0]));
2258 TabNavigation nav1(0, url0, GURL(), string16(), 2296 TabNavigation nav1(0, url0, GURL(), string16(),
2259 webkit_glue::CreateHistoryStateForURL(url0), 2297 webkit_glue::CreateHistoryStateForURL(url0),
2260 PageTransition::LINK); 2298 content::PAGE_TRANSITION_LINK);
2261 session_helper_.AssertNavigationEquals(nav1, 2299 session_helper_.AssertNavigationEquals(nav1,
2262 windows_[0]->tabs[0]->navigations[0]); 2300 windows_[0]->tabs[0]->navigations[0]);
2263 } 2301 }
2264 2302
2265 // Navigates to three urls, then goes back and make sure the history database 2303 // Navigates to three urls, then goes back and make sure the history database
2266 // is in sync. 2304 // is in sync.
2267 TEST_F(NavigationControllerHistoryTest, NavigationThenBack) { 2305 TEST_F(NavigationControllerHistoryTest, NavigationThenBack) {
2268 rvh()->SendNavigate(0, url0); 2306 rvh()->SendNavigate(0, url0);
2269 rvh()->SendNavigate(1, url1); 2307 rvh()->SendNavigate(1, url1);
2270 rvh()->SendNavigate(2, url2); 2308 rvh()->SendNavigate(2, url2);
2271 2309
2272 controller().GoBack(); 2310 controller().GoBack();
2273 rvh()->SendNavigate(1, url1); 2311 rvh()->SendNavigate(1, url1);
2274 2312
2275 GetLastSession(); 2313 GetLastSession();
2276 2314
2277 session_helper_.AssertSingleWindowWithSingleTab(windows_, 3); 2315 session_helper_.AssertSingleWindowWithSingleTab(windows_, 3);
2278 session_helper_.AssertTabEquals(0, 1, 3, *(windows_[0]->tabs[0])); 2316 session_helper_.AssertTabEquals(0, 1, 3, *(windows_[0]->tabs[0]));
2279 2317
2280 TabNavigation nav(0, url0, GURL(), string16(), 2318 TabNavigation nav(0, url0, GURL(), string16(),
2281 webkit_glue::CreateHistoryStateForURL(url0), 2319 webkit_glue::CreateHistoryStateForURL(url0),
2282 PageTransition::LINK); 2320 content::PAGE_TRANSITION_LINK);
2283 session_helper_.AssertNavigationEquals(nav, 2321 session_helper_.AssertNavigationEquals(nav,
2284 windows_[0]->tabs[0]->navigations[0]); 2322 windows_[0]->tabs[0]->navigations[0]);
2285 nav.set_url(url1); 2323 nav.set_url(url1);
2286 session_helper_.AssertNavigationEquals(nav, 2324 session_helper_.AssertNavigationEquals(nav,
2287 windows_[0]->tabs[0]->navigations[1]); 2325 windows_[0]->tabs[0]->navigations[1]);
2288 nav.set_url(url2); 2326 nav.set_url(url2);
2289 session_helper_.AssertNavigationEquals(nav, 2327 session_helper_.AssertNavigationEquals(nav,
2290 windows_[0]->tabs[0]->navigations[2]); 2328 windows_[0]->tabs[0]->navigations[2]);
2291 } 2329 }
2292 2330
(...skipping 13 matching lines...) Expand all
2306 2344
2307 // Now have url0, and url2. 2345 // Now have url0, and url2.
2308 2346
2309 GetLastSession(); 2347 GetLastSession();
2310 2348
2311 session_helper_.AssertSingleWindowWithSingleTab(windows_, 2); 2349 session_helper_.AssertSingleWindowWithSingleTab(windows_, 2);
2312 session_helper_.AssertTabEquals(0, 1, 2, *(windows_[0]->tabs[0])); 2350 session_helper_.AssertTabEquals(0, 1, 2, *(windows_[0]->tabs[0]));
2313 2351
2314 TabNavigation nav(0, url0, GURL(), string16(), 2352 TabNavigation nav(0, url0, GURL(), string16(),
2315 webkit_glue::CreateHistoryStateForURL(url0), 2353 webkit_glue::CreateHistoryStateForURL(url0),
2316 PageTransition::LINK); 2354 content::PAGE_TRANSITION_LINK);
2317 session_helper_.AssertNavigationEquals(nav, 2355 session_helper_.AssertNavigationEquals(nav,
2318 windows_[0]->tabs[0]->navigations[0]); 2356 windows_[0]->tabs[0]->navigations[0]);
2319 nav.set_url(url2); 2357 nav.set_url(url2);
2320 session_helper_.AssertNavigationEquals(nav, 2358 session_helper_.AssertNavigationEquals(nav,
2321 windows_[0]->tabs[0]->navigations[1]); 2359 windows_[0]->tabs[0]->navigations[1]);
2322 } 2360 }
2323 */ 2361 */
OLDNEW
« no previous file with comments | « content/browser/tab_contents/navigation_controller.cc ('k') | content/browser/tab_contents/navigation_entry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698