// // Copyright 2022 New Vector Ltd // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // import RiotSwiftUI import XCTest class UserSessionsOverviewUITests: MockScreenTestCase { func testCurrentSessionUnverified() { app.goToScreenWithIdentifier(MockUserSessionsOverviewScreenState.currentSessionUnverified.title) XCTAssertTrue(app.buttons["userSessionCardVerifyButton"].exists) XCTAssertTrue(app.staticTexts["userSessionCardViewDetails"].exists) verifyLinkDeviceButtonStatus(true) } func testCurrentSessionVerified() { app.goToScreenWithIdentifier(MockUserSessionsOverviewScreenState.currentSessionVerified.title) XCTAssertFalse(app.buttons["userSessionCardVerifyButton"].exists) XCTAssertTrue(app.staticTexts["userSessionCardViewDetails"].exists) verifyLinkDeviceButtonStatus(true) } func testOnlyUnverifiedSessions() { app.goToScreenWithIdentifier(MockUserSessionsOverviewScreenState.onlyUnverifiedSessions.title) XCTAssertTrue(app.staticTexts["userSessionsOverviewSecurityRecommendationsSection"].exists) XCTAssertTrue(app.staticTexts["userSessionsOverviewOtherSection"].exists) verifyLinkDeviceButtonStatus(false) } func testOnlyInactiveSessions() { app.goToScreenWithIdentifier(MockUserSessionsOverviewScreenState.onlyInactiveSessions.title) XCTAssertTrue(app.staticTexts["userSessionsOverviewSecurityRecommendationsSection"].exists) XCTAssertTrue(app.staticTexts["userSessionsOverviewOtherSection"].exists) verifyLinkDeviceButtonStatus(false) } func testNoOtherSessions() { app.goToScreenWithIdentifier(MockUserSessionsOverviewScreenState.noOtherSessions.title) XCTAssertFalse(app.staticTexts["userSessionsOverviewSecurityRecommendationsSection"].exists) XCTAssertFalse(app.staticTexts["userSessionsOverviewOtherSection"].exists) verifyLinkDeviceButtonStatus(false) } func verifyLinkDeviceButtonStatus(_ enabled: Bool) { if enabled { let linkDeviceButton = app.buttons["linkDeviceButton"] XCTAssertTrue(linkDeviceButton.exists) XCTAssertTrue(linkDeviceButton.isEnabled) } else { let linkDeviceButton = app.buttons["linkDeviceButton"] XCTAssertFalse(linkDeviceButton.exists) } } }