mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
Navigation support for upcoming Element Call Picture in Picture mode. (#3174)
This commit is contained in:
@@ -99,6 +99,52 @@ class NavigationSplitCoordinatorTests: XCTestCase {
|
||||
assertCoordinatorsEqual(someOtherSheetCoordinator, navigationSplitCoordinator.sheetCoordinator)
|
||||
}
|
||||
|
||||
func testFullScreenCover() {
|
||||
let sidebarCoordinator = SomeTestCoordinator()
|
||||
navigationSplitCoordinator.setSidebarCoordinator(sidebarCoordinator)
|
||||
let detailCoordinator = SomeTestCoordinator()
|
||||
navigationSplitCoordinator.setDetailCoordinator(detailCoordinator)
|
||||
|
||||
let fullScreenCoordinator = SomeTestCoordinator()
|
||||
navigationSplitCoordinator.setFullScreenCoverCoordinator(fullScreenCoordinator)
|
||||
|
||||
assertCoordinatorsEqual(sidebarCoordinator, navigationSplitCoordinator.sidebarCoordinator)
|
||||
assertCoordinatorsEqual(detailCoordinator, navigationSplitCoordinator.detailCoordinator)
|
||||
assertCoordinatorsEqual(fullScreenCoordinator, navigationSplitCoordinator.fullScreenCoverCoordinator)
|
||||
|
||||
navigationSplitCoordinator.setFullScreenCoverCoordinator(nil)
|
||||
|
||||
assertCoordinatorsEqual(sidebarCoordinator, navigationSplitCoordinator.sidebarCoordinator)
|
||||
assertCoordinatorsEqual(detailCoordinator, navigationSplitCoordinator.detailCoordinator)
|
||||
XCTAssertNil(navigationSplitCoordinator.fullScreenCoverCoordinator)
|
||||
}
|
||||
|
||||
func testOverlay() {
|
||||
let sidebarCoordinator = SomeTestCoordinator()
|
||||
navigationSplitCoordinator.setSidebarCoordinator(sidebarCoordinator)
|
||||
let detailCoordinator = SomeTestCoordinator()
|
||||
navigationSplitCoordinator.setDetailCoordinator(detailCoordinator)
|
||||
|
||||
let overlayCoordinator = SomeTestCoordinator()
|
||||
navigationSplitCoordinator.setOverlayCoordinator(overlayCoordinator)
|
||||
|
||||
assertCoordinatorsEqual(sidebarCoordinator, navigationSplitCoordinator.sidebarCoordinator)
|
||||
assertCoordinatorsEqual(detailCoordinator, navigationSplitCoordinator.detailCoordinator)
|
||||
assertCoordinatorsEqual(overlayCoordinator, navigationSplitCoordinator.overlayCoordinator)
|
||||
|
||||
// The coordinator should still be retained when changing the presentation mode.
|
||||
navigationSplitCoordinator.setOverlayPresentationMode(.minimized)
|
||||
assertCoordinatorsEqual(overlayCoordinator, navigationSplitCoordinator.overlayCoordinator)
|
||||
navigationSplitCoordinator.setOverlayPresentationMode(.fullScreen)
|
||||
assertCoordinatorsEqual(overlayCoordinator, navigationSplitCoordinator.overlayCoordinator)
|
||||
|
||||
navigationSplitCoordinator.setOverlayCoordinator(nil)
|
||||
|
||||
assertCoordinatorsEqual(sidebarCoordinator, navigationSplitCoordinator.sidebarCoordinator)
|
||||
assertCoordinatorsEqual(detailCoordinator, navigationSplitCoordinator.detailCoordinator)
|
||||
XCTAssertNil(navigationSplitCoordinator.overlayCoordinator)
|
||||
}
|
||||
|
||||
func testSidebarReplacementCallbacks() {
|
||||
let sidebarCoordinator = SomeTestCoordinator()
|
||||
|
||||
@@ -135,6 +181,43 @@ class NavigationSplitCoordinatorTests: XCTestCase {
|
||||
waitForExpectations(timeout: 1.0)
|
||||
}
|
||||
|
||||
func testFullScreenCoverDismissalCallback() {
|
||||
let fullScreenCoordinator = SomeTestCoordinator()
|
||||
|
||||
let expectation = expectation(description: "Wait for callback")
|
||||
navigationSplitCoordinator.setFullScreenCoverCoordinator(fullScreenCoordinator) {
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
navigationSplitCoordinator.setFullScreenCoverCoordinator(nil)
|
||||
waitForExpectations(timeout: 1.0)
|
||||
}
|
||||
|
||||
func testOverlayDismissalCallback() {
|
||||
let overlayCoordinator = SomeTestCoordinator()
|
||||
|
||||
let expectation = expectation(description: "Wait for callback")
|
||||
navigationSplitCoordinator.setOverlayCoordinator(overlayCoordinator) {
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
navigationSplitCoordinator.setOverlayCoordinator(nil)
|
||||
waitForExpectations(timeout: 1.0)
|
||||
}
|
||||
|
||||
func testOverlayDismissalCallbackWhenChangingMode() {
|
||||
let overlayCoordinator = SomeTestCoordinator()
|
||||
|
||||
let expectation = expectation(description: "Wait for callback")
|
||||
expectation.isInverted = true
|
||||
navigationSplitCoordinator.setOverlayCoordinator(overlayCoordinator) {
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
navigationSplitCoordinator.setOverlayPresentationMode(.minimized)
|
||||
waitForExpectations(timeout: 1.0)
|
||||
}
|
||||
|
||||
func testEmbeddedStackPresentsSheetThroughSplit() {
|
||||
let sidebarNavigationStackCoordinator = NavigationStackCoordinator(navigationSplitCoordinator: navigationSplitCoordinator)
|
||||
sidebarNavigationStackCoordinator.setRootCoordinator(SomeTestCoordinator())
|
||||
|
||||
Reference in New Issue
Block a user