Files
firebase-ios-sdk/FirebaseAuth/Tests/SampleSwift/AuthenticationExampleUITests/SettingsUITests.swift

98 lines
3.9 KiB
Swift

// Copyright 2023 Google LLC
//
// 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 XCTest
class SettingsUITests: XCTestCase {
var app: XCUIApplication!
override func setUp() {
super.setUp()
continueAfterFailure = false
app = XCUIApplication()
app.launch()
}
func testSettings() {
app.staticTexts["Settings"].tap()
wait(forElement: app.navigationBars["Settings"], timeout: 5.0)
XCTAssertTrue(app.navigationBars["Settings"].exists)
// Test Identity toolkit
let identityCell = app.cells.containing(.staticText, identifier: "Identity Toolkit").element
XCTAssertTrue(identityCell.staticTexts["www.googleapis.com"].exists)
identityCell.tap()
XCTAssertTrue(identityCell.staticTexts["staging-www.sandbox.googleapis.com"].exists)
identityCell.tap()
XCTAssertTrue(identityCell.staticTexts["www.googleapis.com"].exists)
// Test Secure Token
let secureTokenCell = app.cells.containing(.staticText, identifier: "Secure Token").element
XCTAssertTrue(secureTokenCell.staticTexts["securetoken.googleapis.com"].exists)
secureTokenCell.tap()
XCTAssertTrue(secureTokenCell.staticTexts["staging-securetoken.sandbox.googleapis.com"].exists)
secureTokenCell.tap()
XCTAssertTrue(secureTokenCell.staticTexts["securetoken.googleapis.com"].exists)
// Swap Firebase App
let appCell = app.cells.containing(.staticText, identifier: "Active App").element
XCTAssertTrue(appCell.staticTexts["fir-ios-auth-sample"].exists)
appCell.tap()
XCTAssertTrue(appCell.staticTexts["fb-sa-upgraded"].exists)
appCell.tap()
XCTAssertTrue(appCell.staticTexts["fir-ios-auth-sample"].exists)
// Current Access Group
let accessCell = app.cells.containing(.staticText, identifier: "Current Access Group").element
XCTAssertTrue(accessCell.staticTexts["[none]"].exists)
// TODO: Debug why the following works locally but crashes app in GitHub Actions.
// accessCell.tap()
// let predicate = NSPredicate(format: "label CONTAINS
// 'com.google.firebase.auth.keychainGroup1'")
// let createAccountText = accessCell.staticTexts.containing(predicate).element.exists
// accessCell.tap()
// XCTAssertTrue(accessCell.staticTexts["[none]"].exists)
// Auth Language
let languageCell = app.cells.containing(.staticText, identifier: "Auth Language").element
XCTAssertTrue(languageCell.staticTexts["[none]"].exists)
languageCell.tap()
app.typeText("abc")
app.buttons["OK"].tap()
XCTAssertTrue(languageCell.staticTexts["abc"].exists)
// TODO: PhoneAuth
// Click to Use App Language
let appLanguageCell = app.cells.containing(.staticText,
identifier: "Click to Use App Language").element
appLanguageCell.tap()
// Check for either Xcode 14 or Xcode 15 strings.
XCTAssertTrue(languageCell.staticTexts["en"].exists || languageCell.staticTexts["en-US"].exists)
// Disable App Verification
let disabledCell = app.cells.containing(.staticText,
identifier: "Disable App Verification (Phone)")
.element
XCTAssertTrue(disabledCell.staticTexts["NO"].exists, "App verification should NOT be disabled")
disabledCell.tap()
XCTAssertTrue(disabledCell.staticTexts["YES"].exists, "App verification should NOW be disabled")
disabledCell.tap()
XCTAssertTrue(disabledCell.staticTexts["NO"].exists, "App verification should NOT be disabled")
}
}