blob: 95295dc4a4c3e1399645306cd452cd8421faab7d [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import XCTest
final class NativeUIKitSwiftExperimentUITests: XCTestCase {
override func setUpWithError() throws {
continueAfterFailure = false
}
@MainActor
func testLifecycleEvents() throws {
let app = XCUIApplication()
app.launch()
let button = app.buttons["Get Lifecycle Events"].firstMatch
XCTAssertTrue(button.waitForExistence(timeout: 5))
button.tap()
let expectedStartEvents = [
"applicationDidFinishLaunchingWithOptions",
"applicationWillEnterForeground", "applicationDidBecomeActive",
]
let startEventsPredicate = NSPredicate(
format: "label == %@",
expectedStartEvents.joined(separator: "\n")
)
let startEventsElement = app.staticTexts.element(
matching: startEventsPredicate
)
XCTAssertTrue(startEventsElement.waitForExistence(timeout: 5))
// Background the app, then reactivate it and check the events again
XCUIDevice.shared.press(.home)
app.activate()
XCTAssertTrue(button.waitForExistence(timeout: 5))
button.tap()
let expectedEventsAfterBackgroundAndReactivate = [
"applicationDidFinishLaunchingWithOptions",
"applicationWillEnterForeground", "applicationDidBecomeActive",
"applicationWillResignActive", "applicationDidEnterBackground",
"applicationWillEnterForeground", "applicationDidBecomeActive",
]
let backgroundEventsPredicate = NSPredicate(
format: "label == %@",
expectedEventsAfterBackgroundAndReactivate.joined(separator: "\n")
)
let backgroundEventsElement = app.staticTexts.element(
matching: backgroundEventsPredicate
)
XCTAssertTrue(backgroundEventsElement.waitForExistence(timeout: 5))
}
}