OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "ios/web/navigation/navigation_manager_impl.h" | 5 #import "ios/web/navigation/navigation_manager_impl.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/mac/bind_objc_block.h" | 8 #include "base/mac/bind_objc_block.h" |
9 #import "base/mac/scoped_nsobject.h" | |
10 #import "ios/web/navigation/crw_session_controller+private_constructors.h" | 9 #import "ios/web/navigation/crw_session_controller+private_constructors.h" |
11 #import "ios/web/navigation/navigation_manager_delegate.h" | 10 #import "ios/web/navigation/navigation_manager_delegate.h" |
12 #include "ios/web/public/navigation_item.h" | 11 #include "ios/web/public/navigation_item.h" |
13 #include "ios/web/public/test/fakes/test_browser_state.h" | 12 #include "ios/web/public/test/fakes/test_browser_state.h" |
14 #include "ios/web/test/test_url_constants.h" | 13 #include "ios/web/test/test_url_constants.h" |
15 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
16 #include "testing/platform_test.h" | 15 #include "testing/platform_test.h" |
17 #include "url/scheme_host_port.h" | 16 #include "url/scheme_host_port.h" |
18 #include "url/url_util.h" | 17 #include "url/url_util.h" |
19 | 18 |
| 19 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 20 #error "This file requires ARC support." |
| 21 #endif |
| 22 |
20 namespace web { | 23 namespace web { |
21 namespace { | 24 namespace { |
22 | 25 |
23 // URL scheme that will be rewritten by UrlRewriter installed in | 26 // URL scheme that will be rewritten by UrlRewriter installed in |
24 // NavigationManagerTest fixture. Scheme will be changed to kTestWebUIScheme. | 27 // NavigationManagerTest fixture. Scheme will be changed to kTestWebUIScheme. |
25 const char kSchemeToRewrite[] = "navigationmanagerschemetorewrite"; | 28 const char kSchemeToRewrite[] = "navigationmanagerschemetorewrite"; |
26 | 29 |
27 // Replaces |kSchemeToRewrite| scheme with |kTestWebUIScheme|. | 30 // Replaces |kSchemeToRewrite| scheme with |kTestWebUIScheme|. |
28 bool UrlRewriter(GURL* url, BrowserState* browser_state) { | 31 bool UrlRewriter(GURL* url, BrowserState* browser_state) { |
29 if (url->scheme() == kSchemeToRewrite) { | 32 if (url->scheme() == kSchemeToRewrite) { |
(...skipping 26 matching lines...) Expand all Loading... |
56 // Test fixture for NavigationManagerImpl testing. | 59 // Test fixture for NavigationManagerImpl testing. |
57 class NavigationManagerTest : public PlatformTest { | 60 class NavigationManagerTest : public PlatformTest { |
58 protected: | 61 protected: |
59 NavigationManagerTest() : manager_(new NavigationManagerImpl()) { | 62 NavigationManagerTest() : manager_(new NavigationManagerImpl()) { |
60 // Setup rewriter. | 63 // Setup rewriter. |
61 BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); | 64 BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); |
62 url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT); | 65 url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT); |
63 | 66 |
64 manager_->SetDelegate(&delegate_); | 67 manager_->SetDelegate(&delegate_); |
65 manager_->SetBrowserState(&browser_state_); | 68 manager_->SetBrowserState(&browser_state_); |
66 controller_.reset( | 69 controller_ = |
67 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); | 70 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; |
68 manager_->SetSessionController(controller_.get()); | 71 manager_->SetSessionController(controller_); |
69 } | 72 } |
70 CRWSessionController* session_controller() { return controller_.get(); } | 73 CRWSessionController* session_controller() { return controller_; } |
71 NavigationManagerImpl* navigation_manager() { return manager_.get(); } | 74 NavigationManagerImpl* navigation_manager() { return manager_.get(); } |
72 TestNavigationManagerDelegate navigation_manager_delegate() { | 75 TestNavigationManagerDelegate navigation_manager_delegate() { |
73 return delegate_; | 76 return delegate_; |
74 } | 77 } |
75 | 78 |
76 private: | 79 private: |
77 TestBrowserState browser_state_; | 80 TestBrowserState browser_state_; |
78 TestNavigationManagerDelegate delegate_; | 81 TestNavigationManagerDelegate delegate_; |
79 std::unique_ptr<NavigationManagerImpl> manager_; | 82 std::unique_ptr<NavigationManagerImpl> manager_; |
80 base::scoped_nsobject<CRWSessionController> controller_; | 83 CRWSessionController* controller_; |
81 }; | 84 }; |
82 | 85 |
83 // Tests state of an empty navigation manager. | 86 // Tests state of an empty navigation manager. |
84 TEST_F(NavigationManagerTest, EmptyManager) { | 87 TEST_F(NavigationManagerTest, EmptyManager) { |
85 EXPECT_EQ(0, navigation_manager()->GetItemCount()); | 88 EXPECT_EQ(0, navigation_manager()->GetItemCount()); |
86 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); | 89 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); |
87 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); | 90 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); |
88 EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 91 EXPECT_FALSE(navigation_manager()->GetPendingItem()); |
89 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 92 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |
90 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); | 93 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); |
(...skipping 1290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1381 // Create an item that does not exist in the NavigationManagerImpl. | 1384 // Create an item that does not exist in the NavigationManagerImpl. |
1382 std::unique_ptr<web::NavigationItem> item_not_found = | 1385 std::unique_ptr<web::NavigationItem> item_not_found = |
1383 web::NavigationItem::Create(); | 1386 web::NavigationItem::Create(); |
1384 // Verify GetIndexOfItem() results. | 1387 // Verify GetIndexOfItem() results. |
1385 EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0)); | 1388 EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0)); |
1386 EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1)); | 1389 EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1)); |
1387 EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get())); | 1390 EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get())); |
1388 } | 1391 } |
1389 | 1392 |
1390 } // namespace web | 1393 } // namespace web |
OLD | NEW |