mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
108 lines
4.1 KiB
Objective-C
108 lines
4.1 KiB
Objective-C
// 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;
|
|
|
|
@interface FlutterUITests : XCTestCase
|
|
@end
|
|
|
|
@implementation FlutterUITests
|
|
|
|
- (void)setUp {
|
|
self.continueAfterFailure = NO;
|
|
}
|
|
|
|
- (void)testFullScreenColdPop {
|
|
XCUIApplication *app = [[XCUIApplication alloc] init];
|
|
[app launch];
|
|
|
|
XCUIElement *coldButton = app.buttons[@"Full Screen (Cold)"];
|
|
XCTAssertTrue([coldButton waitForExistenceWithTimeout:60.0]);
|
|
[coldButton tap];
|
|
|
|
XCTAssertTrue([app.staticTexts[@"Button tapped 0 times."] waitForExistenceWithTimeout:60.0]);
|
|
[app.otherElements[@"Increment via Flutter"] tap];
|
|
XCTAssertTrue([app.staticTexts[@"Button tapped 1 time."] waitForExistenceWithTimeout:60.0]);
|
|
|
|
// Back navigation.
|
|
[app.buttons[@"POP"] tap];
|
|
XCTAssertTrue([app.navigationBars[@"Flutter iOS Demos Home"] waitForExistenceWithTimeout:60.0]);
|
|
}
|
|
|
|
- (void)testFullScreenWarm {
|
|
XCUIApplication *app = [[XCUIApplication alloc] init];
|
|
[app launch];
|
|
|
|
XCUIElement *warmButton = app.buttons[@"Full Screen (Warm)"];
|
|
XCTAssertTrue([warmButton waitForExistenceWithTimeout:60.0]);
|
|
[warmButton tap];
|
|
|
|
XCTAssertTrue([app.staticTexts[@"Button tapped 0 times."] waitForExistenceWithTimeout:60.0]);
|
|
[app.otherElements[@"Increment via Flutter"] tap];
|
|
XCTAssertTrue([app.staticTexts[@"Button tapped 1 time."] waitForExistenceWithTimeout:60.0]);
|
|
|
|
// Back navigation.
|
|
[app.buttons[@"POP"] tap];
|
|
XCTAssertTrue([app.navigationBars[@"Flutter iOS Demos Home"] waitForExistenceWithTimeout:60.0]);
|
|
}
|
|
|
|
- (void)testFlutterViewWarm {
|
|
XCUIApplication *app = [[XCUIApplication alloc] init];
|
|
[app launch];
|
|
|
|
XCUIElement *warmButton = app.buttons[@"Flutter View (Warm)"];
|
|
XCTAssertTrue([warmButton waitForExistenceWithTimeout:60.0]);
|
|
[warmButton tap];
|
|
|
|
XCTAssertTrue([app.staticTexts[@"Button tapped 0 times."] waitForExistenceWithTimeout:60.0]);
|
|
[app.otherElements[@"Increment via Flutter"] tap];
|
|
XCTAssertTrue([app.staticTexts[@"Button tapped 1 time."] waitForExistenceWithTimeout:60.0]);
|
|
|
|
// Back navigation.
|
|
[app.buttons[@"POP"] tap];
|
|
XCTAssertTrue([app.navigationBars[@"Flutter iOS Demos Home"] waitForExistenceWithTimeout:60.0]);
|
|
}
|
|
|
|
- (void)testHybridViewWarm {
|
|
XCUIApplication *app = [[XCUIApplication alloc] init];
|
|
[app launch];
|
|
|
|
XCUIElement *warmButton = app.buttons[@"Hybrid View (Warm)"];
|
|
XCTAssertTrue([warmButton waitForExistenceWithTimeout:60.0]);
|
|
[warmButton tap];
|
|
|
|
XCTAssertTrue([app.staticTexts[@"Flutter button tapped 0 times."] waitForExistenceWithTimeout:60.0]);
|
|
XCTAssertTrue(app.staticTexts[@"Platform button tapped 0 times."].exists);
|
|
|
|
[app.otherElements[@"Increment via Flutter"] tap];
|
|
XCTAssertTrue([app.staticTexts[@"Flutter button tapped 1 time."] waitForExistenceWithTimeout:60.0]);
|
|
XCTAssertTrue(app.staticTexts[@"Platform button tapped 0 times."].exists);
|
|
|
|
[app.buttons[@"Increment via iOS"] tap];
|
|
XCTAssertTrue([app.staticTexts[@"Flutter button tapped 1 time."] waitForExistenceWithTimeout:60.0]);
|
|
XCTAssertTrue(app.staticTexts[@"Platform button tapped 1 time."].exists);
|
|
|
|
// Back navigation.
|
|
[app.navigationBars[@"Hybrid Flutter/Native"].buttons[@"Flutter iOS Demos Home"] tap];
|
|
XCTAssertTrue([app.navigationBars[@"Flutter iOS Demos Home"] waitForExistenceWithTimeout:60.0]);
|
|
}
|
|
|
|
- (void)testDualCold {
|
|
XCUIApplication *app = [[XCUIApplication alloc] init];
|
|
[app launch];
|
|
|
|
[app.buttons[@"Dual Flutter View (Cold)"] tap];
|
|
|
|
// There are two marquees.
|
|
XCUIElementQuery *marqueeQuery = [app.staticTexts matchingIdentifier:@"This is Marquee"];
|
|
[self expectationForPredicate:[NSPredicate predicateWithFormat:@"count = 2"] evaluatedWithObject:marqueeQuery handler:nil];
|
|
[self waitForExpectationsWithTimeout:30.0 handler:nil];
|
|
|
|
// Back navigation.
|
|
[app.navigationBars[@"Dual Flutter Views"].buttons[@"Flutter iOS Demos Home"] tap];
|
|
XCTAssertTrue([app.navigationBars[@"Flutter iOS Demos Home"] waitForExistenceWithTimeout:60.0]);
|
|
}
|
|
|
|
@end
|