chromium/ios/chrome/test/fakes/fake_ui_navigation_controller.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_TEST_FAKES_FAKE_UI_NAVIGATION_CONTROLLER_H_
#define IOS_CHROME_TEST_FAKES_FAKE_UI_NAVIGATION_CONTROLLER_H_

#import <UIKit/UIKit.h>

// Fake UINavigationController which keeps track of pushed/pop view controllers
// with a mutable array. It can also be used as a fake UIViewController i.e. it
// supports presenting or dismissing a view controller.
@interface FakeUINavigationController : UINavigationController

// List of supported UIViewController operations
// - (void)presentViewController:animated:completion:
// - (void)dismissViewControllerAnimated:completion:
// - (UIViewController*)presentedViewController

// List of supported UINavigationController operations
// - (void)pushViewController:animated:
// - (UIViewController*)popViewControllerAnimated:
// - (NSArray<UIViewController*>*)popToViewController:animated:
// - (NSArray<UIViewController*>*)popToRootViewControllerAnimated:
// - (UIViewController*)topViewController
// - (UIViewController*)visibleViewController
// - (NSArray<UIViewController*>*)viewControllers
// - (void)setViewControllers:animated:

@end

#endif  // IOS_CHROME_TEST_FAKES_FAKE_UI_NAVIGATION_CONTROLLER_H_