mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 17:12:45 +02:00
Added support for MSC3881
This commit is contained in:
+27
@@ -34,4 +34,31 @@ class UserSessionOverviewUITests: MockScreenTestCase {
|
||||
app.goToScreenWithIdentifier(MockUserSessionOverviewScreenState.currentSession.title)
|
||||
XCTAssertTrue(app.buttons[VectorL10n.userSessionOverviewSessionDetailsButtonTitle].exists)
|
||||
}
|
||||
|
||||
func test_whenSessionOverviewPresented_pusherEnabledToggleExists() {
|
||||
app.goToScreenWithIdentifier(MockUserSessionOverviewScreenState.sessionWithPushNotifications(enabled: true).title)
|
||||
XCTAssertTrue(app.switches["UserSessionOverviewToggleCell"].exists)
|
||||
XCTAssertTrue(app.switches["UserSessionOverviewToggleCell"].isOn)
|
||||
XCTAssertTrue(app.switches["UserSessionOverviewToggleCell"].isEnabled)
|
||||
XCTAssertTrue(app.staticTexts[VectorL10n.userSessionPushNotifications].exists)
|
||||
XCTAssertTrue(app.staticTexts[VectorL10n.userSessionPushNotificationsMessage].exists)
|
||||
}
|
||||
|
||||
func test_whenSessionOverviewPresented_pusherDisabledToggleExists() {
|
||||
app.goToScreenWithIdentifier(MockUserSessionOverviewScreenState.sessionWithPushNotifications(enabled: false).title)
|
||||
XCTAssertTrue(app.switches["UserSessionOverviewToggleCell"].exists)
|
||||
XCTAssertFalse(app.switches["UserSessionOverviewToggleCell"].isOn)
|
||||
XCTAssertTrue(app.switches["UserSessionOverviewToggleCell"].isEnabled)
|
||||
XCTAssertTrue(app.staticTexts[VectorL10n.userSessionPushNotifications].exists)
|
||||
XCTAssertTrue(app.staticTexts[VectorL10n.userSessionPushNotificationsMessage].exists)
|
||||
}
|
||||
|
||||
func test_whenSessionOverviewPresented_pusherEnabledToggleExists_remotelyTogglingPushersAvailable() {
|
||||
app.goToScreenWithIdentifier(MockUserSessionOverviewScreenState.remotelyTogglingPushersNotAvailable.title)
|
||||
XCTAssertTrue(app.switches["UserSessionOverviewToggleCell"].exists)
|
||||
XCTAssertTrue(app.switches["UserSessionOverviewToggleCell"].isOn)
|
||||
XCTAssertFalse(app.switches["UserSessionOverviewToggleCell"].isEnabled)
|
||||
XCTAssertTrue(app.staticTexts[VectorL10n.userSessionPushNotifications].exists)
|
||||
XCTAssertTrue(app.staticTexts[VectorL10n.userSessionPushNotificationsMessage].exists)
|
||||
}
|
||||
}
|
||||
|
||||
+45
-4
@@ -23,8 +23,9 @@ class UserSessionOverviewViewModelTests: XCTestCase {
|
||||
var sut: UserSessionOverviewViewModel!
|
||||
|
||||
func test_whenVerifyCurrentSessionProcessed_completionWithVerifyCurrentSessionCalled() {
|
||||
sut = UserSessionOverviewViewModel(session: createUserSessionInfo())
|
||||
sut = UserSessionOverviewViewModel(sessionInfo: createUserSessionInfo(), service: MockUserSessionOverviewService())
|
||||
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, nil)
|
||||
var modelResult: UserSessionOverviewViewModelResult?
|
||||
sut.completion = { result in
|
||||
modelResult = result
|
||||
@@ -34,17 +35,57 @@ class UserSessionOverviewViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func test_whenViewSessionDetailsProcessed_completionWithShowSessionDetailsCalled() {
|
||||
let session = createUserSessionInfo()
|
||||
sut = UserSessionOverviewViewModel(session: session)
|
||||
let sessionInfo = createUserSessionInfo()
|
||||
sut = UserSessionOverviewViewModel(sessionInfo: sessionInfo, service: MockUserSessionOverviewService())
|
||||
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, nil)
|
||||
var modelResult: UserSessionOverviewViewModelResult?
|
||||
sut.completion = { result in
|
||||
modelResult = result
|
||||
}
|
||||
sut.process(viewAction: .viewSessionDetails)
|
||||
XCTAssertEqual(modelResult, .showSessionDetails(session: session))
|
||||
XCTAssertEqual(modelResult, .showSessionDetails(sessionInfo: sessionInfo))
|
||||
}
|
||||
|
||||
func test_whenViewSessionDetailsProcessed_toggleAvailablePusher() {
|
||||
let sessionInfo = createUserSessionInfo()
|
||||
let service = MockUserSessionOverviewService(pusherEnabled: true)
|
||||
sut = UserSessionOverviewViewModel(sessionInfo: sessionInfo, service: service)
|
||||
|
||||
XCTAssertTrue(sut.state.remotelyTogglingPushersAvailable)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, true)
|
||||
sut.process(viewAction: .togglePushNotifications)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, false)
|
||||
sut.process(viewAction: .togglePushNotifications)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, true)
|
||||
}
|
||||
|
||||
func test_whenViewSessionDetailsProcessed_toggleNoPusher() {
|
||||
let sessionInfo = createUserSessionInfo()
|
||||
let service = MockUserSessionOverviewService(pusherEnabled: nil)
|
||||
sut = UserSessionOverviewViewModel(sessionInfo: sessionInfo, service: service)
|
||||
|
||||
XCTAssertTrue(sut.state.remotelyTogglingPushersAvailable)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, nil)
|
||||
sut.process(viewAction: .togglePushNotifications)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, nil)
|
||||
sut.process(viewAction: .togglePushNotifications)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, nil)
|
||||
}
|
||||
|
||||
func test_whenViewSessionDetailsProcessed_remotelyTogglingPushersNotAvailable() {
|
||||
let sessionInfo = createUserSessionInfo()
|
||||
let service = MockUserSessionOverviewService(pusherEnabled: true, remotelyTogglingPushersAvailable: false)
|
||||
sut = UserSessionOverviewViewModel(sessionInfo: sessionInfo, service: service)
|
||||
|
||||
XCTAssertFalse(sut.state.remotelyTogglingPushersAvailable)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, true)
|
||||
sut.process(viewAction: .togglePushNotifications)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, true)
|
||||
sut.process(viewAction: .togglePushNotifications)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, true)
|
||||
}
|
||||
|
||||
private func createUserSessionInfo() -> UserSessionInfo {
|
||||
UserSessionInfo(id: "session",
|
||||
name: "iOS",
|
||||
|
||||
Reference in New Issue
Block a user