| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import <Foundation/Foundation.h> | 5 #import <Foundation/Foundation.h> |
| 6 #import <PassKit/PassKit.h> | 6 #import <PassKit/PassKit.h> |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/files/file_path.h" | 11 #include "base/files/file_path.h" |
| 12 #include "base/files/file_util.h" | 12 #include "base/files/file_util.h" |
| 13 #include "base/mac/scoped_nsautorelease_pool.h" | 13 #include "base/mac/scoped_nsautorelease_pool.h" |
| 14 #include "base/mac/scoped_nsobject.h" | 14 #include "base/mac/scoped_nsobject.h" |
| 15 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
| 16 #include "base/path_service.h" | 16 #include "base/path_service.h" |
| 17 #include "base/strings/sys_string_conversions.h" | 17 #include "base/strings/sys_string_conversions.h" |
| 18 #include "components/bookmarks/test/bookmark_test_helpers.h" | 18 #include "components/bookmarks/test/bookmark_test_helpers.h" |
| 19 #include "components/prefs/testing_pref_service.h" | 19 #include "components/prefs/testing_pref_service.h" |
| 20 #include "components/search_engines/template_url_service.h" | 20 #include "components/search_engines/template_url_service.h" |
| 21 #include "components/sessions/core/tab_restore_service.h" | 21 #include "components/sessions/core/tab_restore_service.h" |
| 22 #include "components/toolbar/test_toolbar_model.h" | 22 #include "components/toolbar/test_toolbar_model.h" |
| 23 #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h" | 23 #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h" |
| 24 #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h" | 24 #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h" |
| 25 #include "ios/chrome/browser/chrome_paths.h" | 25 #include "ios/chrome/browser/chrome_paths.h" |
| 26 #include "ios/chrome/browser/chrome_switches.h" | 26 #include "ios/chrome/browser/chrome_switches.h" |
| 27 #include "ios/chrome/browser/chrome_url_constants.h" | 27 #include "ios/chrome/browser/chrome_url_constants.h" |
| 28 #import "ios/chrome/browser/find_in_page/find_in_page_controller.h" | |
| 29 #import "ios/chrome/browser/find_in_page/find_in_page_model.h" | |
| 30 #include "ios/chrome/browser/search_engines/template_url_service_factory.h" | 28 #include "ios/chrome/browser/search_engines/template_url_service_factory.h" |
| 31 #include "ios/chrome/browser/sessions/ios_chrome_tab_restore_service_factory.h" | 29 #include "ios/chrome/browser/sessions/ios_chrome_tab_restore_service_factory.h" |
| 32 #import "ios/chrome/browser/tabs/tab.h" | 30 #import "ios/chrome/browser/tabs/tab.h" |
| 33 #import "ios/chrome/browser/tabs/tab_model.h" | 31 #import "ios/chrome/browser/tabs/tab_model.h" |
| 34 #import "ios/chrome/browser/ui/activity_services/share_protocol.h" | 32 #import "ios/chrome/browser/ui/activity_services/share_protocol.h" |
| 35 #import "ios/chrome/browser/ui/activity_services/share_to_data.h" | 33 #import "ios/chrome/browser/ui/activity_services/share_to_data.h" |
| 36 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" | 34 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" |
| 37 #import "ios/chrome/browser/ui/browser_view_controller.h" | 35 #import "ios/chrome/browser/ui/browser_view_controller.h" |
| 38 #import "ios/chrome/browser/ui/browser_view_controller_dependency_factory.h" | 36 #import "ios/chrome/browser/ui/browser_view_controller_dependency_factory.h" |
| 39 #import "ios/chrome/browser/ui/browser_view_controller_testing.h" | 37 #import "ios/chrome/browser/ui/browser_view_controller_testing.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 test_cbs_builder.AddTestingFactory( | 135 test_cbs_builder.AddTestingFactory( |
| 138 ios::TemplateURLServiceFactory::GetInstance(), | 136 ios::TemplateURLServiceFactory::GetInstance(), |
| 139 ios::TemplateURLServiceFactory::GetDefaultFactory()); | 137 ios::TemplateURLServiceFactory::GetDefaultFactory()); |
| 140 chrome_browser_state_ = test_cbs_builder.Build(); | 138 chrome_browser_state_ = test_cbs_builder.Build(); |
| 141 chrome_browser_state_->CreateBookmarkModel(false); | 139 chrome_browser_state_->CreateBookmarkModel(false); |
| 142 bookmarks::BookmarkModel* bookmark_model = | 140 bookmarks::BookmarkModel* bookmark_model = |
| 143 ios::BookmarkModelFactory::GetForBrowserState( | 141 ios::BookmarkModelFactory::GetForBrowserState( |
| 144 chrome_browser_state_.get()); | 142 chrome_browser_state_.get()); |
| 145 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); | 143 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); |
| 146 | 144 |
| 147 // Set up mock TabModel, Tab, CRWWebController and FindInPageController. | 145 // Set up mock TabModel, Tab, and CRWWebController. |
| 148 id tabModel = [OCMockObject mockForClass:[TabModel class]]; | 146 id tabModel = [OCMockObject mockForClass:[TabModel class]]; |
| 149 base::scoped_nsobject<id> currentTab([[BVCTestTabMock alloc] | 147 base::scoped_nsobject<id> currentTab([[BVCTestTabMock alloc] |
| 150 initWithRepresentedObject:[OCMockObject niceMockForClass:[Tab class]]]); | 148 initWithRepresentedObject:[OCMockObject niceMockForClass:[Tab class]]]); |
| 151 id webControllerMock = | 149 id webControllerMock = |
| 152 [OCMockObject niceMockForClass:[CRWWebController class]]; | 150 [OCMockObject niceMockForClass:[CRWWebController class]]; |
| 153 id findInPageControllerMock = | |
| 154 [OCMockObject niceMockForClass:[FindInPageController class]]; | |
| 155 | 151 |
| 156 // Stub methods for TabModel. | 152 // Stub methods for TabModel. |
| 157 NSUInteger tabCount = 1; | 153 NSUInteger tabCount = 1; |
| 158 [[[tabModel stub] andReturnValue:OCMOCK_VALUE(tabCount)] count]; | 154 [[[tabModel stub] andReturnValue:OCMOCK_VALUE(tabCount)] count]; |
| 159 BOOL enabled = YES; | 155 BOOL enabled = YES; |
| 160 [[[tabModel stub] andReturnValue:OCMOCK_VALUE(enabled)] webUsageEnabled]; | 156 [[[tabModel stub] andReturnValue:OCMOCK_VALUE(enabled)] webUsageEnabled]; |
| 161 [[[tabModel stub] andReturn:currentTab] currentTab]; | 157 [[[tabModel stub] andReturn:currentTab] currentTab]; |
| 162 [[[tabModel stub] andReturn:currentTab] tabAtIndex:0]; | 158 [[[tabModel stub] andReturn:currentTab] tabAtIndex:0]; |
| 163 GURL URL("http://www.google.com"); | 159 GURL URL("http://www.google.com"); |
| 164 [[[tabModel stub] andReturn:currentTab] addTabWithURL:URL | 160 [[[tabModel stub] andReturn:currentTab] addTabWithURL:URL |
| 165 referrer:web::Referrer() | 161 referrer:web::Referrer() |
| 166 windowName:[OCMArg any]]; | 162 windowName:[OCMArg any]]; |
| 167 [[tabModel stub] addObserver:[OCMArg any]]; | 163 [[tabModel stub] addObserver:[OCMArg any]]; |
| 168 [[tabModel stub] removeObserver:[OCMArg any]]; | 164 [[tabModel stub] removeObserver:[OCMArg any]]; |
| 169 [[tabModel stub] saveSessionImmediately:NO]; | 165 [[tabModel stub] saveSessionImmediately:NO]; |
| 170 [[tabModel stub] setCurrentTab:[OCMArg any]]; | 166 [[tabModel stub] setCurrentTab:[OCMArg any]]; |
| 171 [[tabModel stub] closeAllTabs]; | 167 [[tabModel stub] closeAllTabs]; |
| 172 | 168 |
| 173 // Stub methods for Tab. | 169 // Stub methods for Tab. |
| 174 UIView* dummyView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; | 170 UIView* dummyView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; |
| 175 [[[currentTab stub] andReturn:dummyView] view]; | 171 [[[currentTab stub] andReturn:dummyView] view]; |
| 176 [[[currentTab stub] andReturn:webControllerMock] webController]; | 172 [[[currentTab stub] andReturn:webControllerMock] webController]; |
| 177 [[[currentTab stub] andReturn:findInPageControllerMock] | |
| 178 findInPageController]; | |
| 179 | 173 |
| 180 id sessionControllerMock = | 174 id sessionControllerMock = |
| 181 [OCMockObject niceMockForClass:[CRWSessionController class]]; | 175 [OCMockObject niceMockForClass:[CRWSessionController class]]; |
| 182 webStateImpl_.reset(new WebStateImpl(chrome_browser_state_.get())); | 176 webStateImpl_.reset(new WebStateImpl(chrome_browser_state_.get())); |
| 183 [currentTab setWebState:webStateImpl_.get()]; | 177 [currentTab setWebState:webStateImpl_.get()]; |
| 184 webStateImpl_->SetWebController(webControllerMock); | 178 webStateImpl_->SetWebController(webControllerMock); |
| 185 webStateImpl_->GetNavigationManagerImpl().SetSessionController( | 179 webStateImpl_->GetNavigationManagerImpl().SetSessionController( |
| 186 sessionControllerMock); | 180 sessionControllerMock); |
| 187 | 181 |
| 188 // Set up mock ShareController. | 182 // Set up mock ShareController. |
| (...skipping 21 matching lines...) Expand all Loading... |
| 210 [[[factory stub] andReturn:nil] | 204 [[[factory stub] andReturn:nil] |
| 211 newWebToolbarControllerWithDelegate:[OCMArg any] | 205 newWebToolbarControllerWithDelegate:[OCMArg any] |
| 212 urlLoader:[OCMArg any] | 206 urlLoader:[OCMArg any] |
| 213 preloadProvider:[OCMArg any]]; | 207 preloadProvider:[OCMArg any]]; |
| 214 [[[factory stub] andReturn:shareController_.get()] shareControllerInstance]; | 208 [[[factory stub] andReturn:shareController_.get()] shareControllerInstance]; |
| 215 [[[factory stub] andReturn:passKitViewController_.get()] | 209 [[[factory stub] andReturn:passKitViewController_.get()] |
| 216 newPassKitViewControllerForPass:nil]; | 210 newPassKitViewControllerForPass:nil]; |
| 217 [[[factory stub] andReturn:nil] showPassKitErrorInfoBarForManager:nil]; | 211 [[[factory stub] andReturn:nil] showPassKitErrorInfoBarForManager:nil]; |
| 218 | 212 |
| 219 webController_.reset([webControllerMock retain]); | 213 webController_.reset([webControllerMock retain]); |
| 220 findInPageController_.reset([findInPageControllerMock retain]); | |
| 221 tabModel_.reset([tabModel retain]); | 214 tabModel_.reset([tabModel retain]); |
| 222 tab_.reset([currentTab retain]); | 215 tab_.reset([currentTab retain]); |
| 223 dependencyFactory_.reset([factory retain]); | 216 dependencyFactory_.reset([factory retain]); |
| 224 bvc_.reset([[BrowserViewController alloc] | 217 bvc_.reset([[BrowserViewController alloc] |
| 225 initWithTabModel:tabModel_ | 218 initWithTabModel:tabModel_ |
| 226 browserState:chrome_browser_state_.get() | 219 browserState:chrome_browser_state_.get() |
| 227 dependencyFactory:factory]); | 220 dependencyFactory:factory]); |
| 228 | 221 |
| 229 // Load TemplateURLService. | 222 // Load TemplateURLService. |
| 230 TemplateURLService* template_url_service = | 223 TemplateURLService* template_url_service = |
| (...skipping 22 matching lines...) Expand all Loading... |
| 253 | 246 |
| 254 web::TestWebThreadBundle thread_bundle_; | 247 web::TestWebThreadBundle thread_bundle_; |
| 255 IOSChromeScopedTestingLocalState local_state_; | 248 IOSChromeScopedTestingLocalState local_state_; |
| 256 std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; | 249 std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; |
| 257 std::unique_ptr<WebStateImpl> webStateImpl_; | 250 std::unique_ptr<WebStateImpl> webStateImpl_; |
| 258 base::scoped_nsobject<CRWWebController> webController_; | 251 base::scoped_nsobject<CRWWebController> webController_; |
| 259 base::scoped_nsobject<Tab> tab_; | 252 base::scoped_nsobject<Tab> tab_; |
| 260 base::scoped_nsobject<TabModel> tabModel_; | 253 base::scoped_nsobject<TabModel> tabModel_; |
| 261 ToolbarModelIOS* toolbarModelIOS_; | 254 ToolbarModelIOS* toolbarModelIOS_; |
| 262 base::scoped_nsprotocol<id<ShareProtocol>> shareController_; | 255 base::scoped_nsprotocol<id<ShareProtocol>> shareController_; |
| 263 base::scoped_nsobject<FindInPageController> findInPageController_; | |
| 264 base::scoped_nsobject<PKAddPassesViewController> passKitViewController_; | 256 base::scoped_nsobject<PKAddPassesViewController> passKitViewController_; |
| 265 base::scoped_nsobject<OCMockObject> dependencyFactory_; | 257 base::scoped_nsobject<OCMockObject> dependencyFactory_; |
| 266 base::scoped_nsobject<BrowserViewController> bvc_; | 258 base::scoped_nsobject<BrowserViewController> bvc_; |
| 267 base::scoped_nsobject<UIWindow> window_; | 259 base::scoped_nsobject<UIWindow> window_; |
| 268 }; | 260 }; |
| 269 | 261 |
| 270 // TODO(crbug.com/228714): These tests pretty much only tested that BVC passed | 262 // TODO(crbug.com/228714): These tests pretty much only tested that BVC passed |
| 271 // notifications on to the toolbar, and that the toolbar worked correctly. The | 263 // notifications on to the toolbar, and that the toolbar worked correctly. The |
| 272 // former should be an integration test, and the latter should be a toolbar | 264 // former should be an integration test, and the latter should be a toolbar |
| 273 // test. Leaving DISABLED_ for now to remind us to move them to toolbar tests. | 265 // test. Leaving DISABLED_ for now to remind us to move them to toolbar tests. |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 OCMockObject* shareControllerMock = (OCMockObject*)shareController_.get(); | 538 OCMockObject* shareControllerMock = (OCMockObject*)shareController_.get(); |
| 547 [[shareControllerMock expect] cancelShareAnimated:NO]; | 539 [[shareControllerMock expect] cancelShareAnimated:NO]; |
| 548 EXPECT_CALL(*this, OnCompletionCalled()); | 540 EXPECT_CALL(*this, OnCompletionCalled()); |
| 549 [bvc_ clearPresentedStateWithCompletion:^{ | 541 [bvc_ clearPresentedStateWithCompletion:^{ |
| 550 this->OnCompletionCalled(); | 542 this->OnCompletionCalled(); |
| 551 }]; | 543 }]; |
| 552 EXPECT_OCMOCK_VERIFY(shareControllerMock); | 544 EXPECT_OCMOCK_VERIFY(shareControllerMock); |
| 553 } | 545 } |
| 554 | 546 |
| 555 } // namespace | 547 } // namespace |
| OLD | NEW |