| OLD | NEW |
| 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 16 matching lines...) Expand all Loading... |
| 27 #include "content/public/browser/notification_registrar.h" | 27 #include "content/public/browser/notification_registrar.h" |
| 28 #include "content/public/browser/notification_types.h" | 28 #include "content/public/browser/notification_types.h" |
| 29 #include "content/public/browser/web_contents_delegate.h" | 29 #include "content/public/browser/web_contents_delegate.h" |
| 30 #include "content/test/test_browser_context.h" | 30 #include "content/test/test_browser_context.h" |
| 31 #include "content/test/test_notification_tracker.h" | 31 #include "content/test/test_notification_tracker.h" |
| 32 #include "net/base/net_util.h" | 32 #include "net/base/net_util.h" |
| 33 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
| 34 #include "webkit/glue/webkit_glue.h" | 34 #include "webkit/glue/webkit_glue.h" |
| 35 | 35 |
| 36 using base::Time; | 36 using base::Time; |
| 37 using content::NavigationController; |
| 37 using content::NavigationEntry; | 38 using content::NavigationEntry; |
| 38 using content::NavigationEntryImpl; | 39 using content::NavigationEntryImpl; |
| 39 using content::WebContents; | 40 using content::WebContents; |
| 40 | 41 |
| 41 // NavigationControllerTest ---------------------------------------------------- | 42 // NavigationControllerTest ---------------------------------------------------- |
| 42 | 43 |
| 43 class NavigationControllerTest : public RenderViewHostTestHarness { | 44 class NavigationControllerTest : public RenderViewHostTestHarness { |
| 44 public: | 45 public: |
| 45 NavigationControllerTest() {} | 46 NavigationControllerTest() {} |
| 46 }; | 47 }; |
| 47 | 48 |
| 48 void RegisterForAllNavNotifications(TestNotificationTracker* tracker, | 49 void RegisterForAllNavNotifications(TestNotificationTracker* tracker, |
| 49 NavigationControllerImpl* controller) { | 50 NavigationControllerImpl* controller) { |
| 50 tracker->ListenFor(content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 51 tracker->ListenFor(content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 51 content::Source<content::NavigationController>( | 52 content::Source<NavigationController>( |
| 52 controller)); | 53 controller)); |
| 53 tracker->ListenFor(content::NOTIFICATION_NAV_LIST_PRUNED, | 54 tracker->ListenFor(content::NOTIFICATION_NAV_LIST_PRUNED, |
| 54 content::Source<content::NavigationController>( | 55 content::Source<NavigationController>( |
| 55 controller)); | 56 controller)); |
| 56 tracker->ListenFor(content::NOTIFICATION_NAV_ENTRY_CHANGED, | 57 tracker->ListenFor(content::NOTIFICATION_NAV_ENTRY_CHANGED, |
| 57 content::Source<content::NavigationController>( | 58 content::Source<NavigationController>( |
| 58 controller)); | 59 controller)); |
| 59 } | 60 } |
| 60 | 61 |
| 61 class TestWebContentsDelegate : public content::WebContentsDelegate { | 62 class TestWebContentsDelegate : public content::WebContentsDelegate { |
| 62 public: | 63 public: |
| 63 explicit TestWebContentsDelegate() : | 64 explicit TestWebContentsDelegate() : |
| 64 navigation_state_change_count_(0) {} | 65 navigation_state_change_count_(0) {} |
| 65 | 66 |
| 66 int navigation_state_change_count() { | 67 int navigation_state_change_count() { |
| 67 return navigation_state_change_count_; | 68 return navigation_state_change_count_; |
| (...skipping 1321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1389 } | 1390 } |
| 1390 } | 1391 } |
| 1391 | 1392 |
| 1392 // NotificationObserver implementation used in verifying we've received the | 1393 // NotificationObserver implementation used in verifying we've received the |
| 1393 // content::NOTIFICATION_NAV_LIST_PRUNED method. | 1394 // content::NOTIFICATION_NAV_LIST_PRUNED method. |
| 1394 class PrunedListener : public content::NotificationObserver { | 1395 class PrunedListener : public content::NotificationObserver { |
| 1395 public: | 1396 public: |
| 1396 explicit PrunedListener(NavigationControllerImpl* controller) | 1397 explicit PrunedListener(NavigationControllerImpl* controller) |
| 1397 : notification_count_(0) { | 1398 : notification_count_(0) { |
| 1398 registrar_.Add(this, content::NOTIFICATION_NAV_LIST_PRUNED, | 1399 registrar_.Add(this, content::NOTIFICATION_NAV_LIST_PRUNED, |
| 1399 content::Source<content::NavigationController>(controller)); | 1400 content::Source<NavigationController>(controller)); |
| 1400 } | 1401 } |
| 1401 | 1402 |
| 1402 virtual void Observe(int type, | 1403 virtual void Observe(int type, |
| 1403 const content::NotificationSource& source, | 1404 const content::NotificationSource& source, |
| 1404 const content::NotificationDetails& details) { | 1405 const content::NotificationDetails& details) { |
| 1405 if (type == content::NOTIFICATION_NAV_LIST_PRUNED) { | 1406 if (type == content::NOTIFICATION_NAV_LIST_PRUNED) { |
| 1406 notification_count_++; | 1407 notification_count_++; |
| 1407 details_ = *(content::Details<content::PrunedDetails>(details).ptr()); | 1408 details_ = *(content::Details<content::PrunedDetails>(details).ptr()); |
| 1408 } | 1409 } |
| 1409 } | 1410 } |
| (...skipping 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2418 TabNavigation nav(0, url0, GURL(), string16(), | 2419 TabNavigation nav(0, url0, GURL(), string16(), |
| 2419 webkit_glue::CreateHistoryStateForURL(url0), | 2420 webkit_glue::CreateHistoryStateForURL(url0), |
| 2420 content::PAGE_TRANSITION_LINK); | 2421 content::PAGE_TRANSITION_LINK); |
| 2421 session_helper_.AssertNavigationEquals(nav, | 2422 session_helper_.AssertNavigationEquals(nav, |
| 2422 windows_[0]->tabs[0]->navigations[0]); | 2423 windows_[0]->tabs[0]->navigations[0]); |
| 2423 nav.set_url(url2); | 2424 nav.set_url(url2); |
| 2424 session_helper_.AssertNavigationEquals(nav, | 2425 session_helper_.AssertNavigationEquals(nav, |
| 2425 windows_[0]->tabs[0]->navigations[1]); | 2426 windows_[0]->tabs[0]->navigations[1]); |
| 2426 } | 2427 } |
| 2427 */ | 2428 */ |
| OLD | NEW |