Commit 5f285376 authored by Nazerke's avatar Nazerke Committed by Commit Bot

[iOS][coordinator] Modernize Selector Coordinator.

This CL modernizes the SelectorCoordinator to use |browser| in the
initializer.

Bug: 1029346, 1048675
Change-Id: Id337cb6313adf9ba58cbb7080a45f3cb23458e1b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2087217Reviewed-by: default avatarMark Cogan <marq@chromium.org>
Commit-Queue: Nazerke Kalidolda <nazerke@google.com>
Cr-Commit-Position: refs/heads/master@{#746794}
parent 8016fbd0
......@@ -48,8 +48,10 @@ initWithBaseViewController:(UIViewController*)baseViewController
- (void)infobarLinkDidPress:(NSUInteger)tag {
DCHECK(self.baseViewController);
// TODO(crbug.com/1058340): Provide a Browser for the coordinator.
self.selectorCoordinator = [[SelectorCoordinator alloc]
initWithBaseViewController:self.baseViewController];
initWithBaseViewController:self.baseViewController
browser:nullptr];
self.selectorCoordinator.delegate = self;
self.selectorCoordinator.options =
[NSOrderedSet orderedSetWithArray:_delegate->GetAccounts()];
......
......@@ -19,6 +19,16 @@
// Coordinator for displaying UI to allow the user to pick among options.
@interface SelectorCoordinator : ChromeCoordinator
// Use -initWithBaseViewController:browser:
- (nonnull instancetype)initWithBaseViewController:
(nonnull UIViewController*)viewController NS_UNAVAILABLE;
// Use -initWithBaseViewController:browser:
- (nonnull instancetype)
initWithBaseViewController:(nonnull UIViewController*)viewController
browserState:(nonnull ChromeBrowserState*)browserState
NS_UNAVAILABLE;
// Options to present to the user.
@property(nonatomic, nullable, copy) NSOrderedSet<NSString*>* options;
......
......@@ -5,6 +5,8 @@
#import "ios/chrome/browser/ui/elements/selector_coordinator.h"
#import "base/test/ios/wait_util.h"
#import "base/test/task_environment.h"
#import "ios/chrome/browser/main/test_browser.h"
#import "ios/chrome/browser/ui/elements/selector_picker_view_controller.h"
#import "ios/chrome/browser/ui/elements/selector_view_controller_delegate.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -28,10 +30,14 @@ using SelectorCoordinatorTest = PlatformTest;
// Tests that invoking start on the coordinator presents the selector view, and
// that invoking stop dismisses the view and invokes the delegate.
TEST_F(SelectorCoordinatorTest, StartAndStop) {
base::test::TaskEnvironment task_environment_;
UIWindow* keyWindow = [[UIApplication sharedApplication] keyWindow];
UIViewController* rootViewController = keyWindow.rootViewController;
SelectorCoordinator* coordinator = [[SelectorCoordinator alloc]
initWithBaseViewController:rootViewController];
std::unique_ptr<Browser> browser_ = std::make_unique<TestBrowser>();
SelectorCoordinator* coordinator =
[[SelectorCoordinator alloc] initWithBaseViewController:rootViewController
browser:browser_.get()];
void (^testSteps)(void) = ^{
[coordinator start];
......@@ -51,10 +57,14 @@ TEST_F(SelectorCoordinatorTest, StartAndStop) {
// Tests that calling the view controller delegate method invokes the
// SelectorCoordinatorDelegate method and stops the coordinator.
TEST_F(SelectorCoordinatorTest, Delegate) {
base::test::TaskEnvironment task_environment_;
UIWindow* keyWindow = [[UIApplication sharedApplication] keyWindow];
UIViewController* rootViewController = keyWindow.rootViewController;
SelectorCoordinator* coordinator = [[SelectorCoordinator alloc]
initWithBaseViewController:rootViewController];
std::unique_ptr<Browser> browser_ = std::make_unique<TestBrowser>();
SelectorCoordinator* coordinator =
[[SelectorCoordinator alloc] initWithBaseViewController:rootViewController
browser:browser_.get()];
id delegate =
[OCMockObject mockForProtocol:@protocol(SelectorCoordinatorDelegate)];
coordinator.delegate = delegate;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment