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

Side by Side Diff: ios/chrome/browser/ui/browser_view_controller_unittest.mm

Issue 2654433007: [ios] Moves find-in-page code out of Tab and into FindTabHelper. (Closed)
Patch Set: Review. Created 3 years, 10 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
« no previous file with comments | « ios/chrome/browser/ui/browser_view_controller.mm ('k') | ios/chrome/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/browser_view_controller.mm ('k') | ios/chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698