chromium/ios/chrome/browser/shared/coordinator/scene/scene_util_test_support.h

// Copyright 2021 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_BROWSER_SHARED_COORDINATOR_SCENE_SCENE_UTIL_TEST_SUPPORT_H_
#define IOS_CHROME_BROWSER_SHARED_COORDINATOR_SCENE_SCENE_UTIL_TEST_SUPPORT_H_

#import <UIKit/UIKit.h>
#import "ios/chrome/browser/shared/coordinator/scene/scene_state.h"

@class AppState;

// Returns a fake UIScene with `identifier` as session persistent identifier
// when running on iOS 13+ or nil otherwise. The fake object implements just
// enough API for SessionIdentifierForScene().
id FakeSceneWithIdentifier(NSString* identifier);

// Returns a SceneState object with an underlying fake UIScene.
@interface SceneStateWithFakeScene : SceneState

- (instancetype)initWithScene:(id)scene
                     appState:(AppState*)appState NS_DESIGNATED_INITIALIZER;

- (instancetype)initWithAppState:(AppState*)appState NS_UNAVAILABLE;

@end

#endif  // IOS_CHROME_BROWSER_SHARED_COORDINATOR_SCENE_SCENE_UTIL_TEST_SUPPORT_H_