blob: d52a1e5f1a47320b70cab183c837922713f73ca6 [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;
@interface FlutterUITests : XCTestCase
@end
@implementation FlutterUITests
- (void)setUp {
self.continueAfterFailure = NO;
}
- (void)testFullScreenColdPop {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
[app.buttons[@"Full Screen (Cold)"] 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];
[app.buttons[@"Full Screen (Warm)"] 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];
[app.buttons[@"Flutter View (Warm)"] 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];
[app.buttons[@"Hybrid View (Warm)"] 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.
XCTAssertTrue([app.staticTexts[@"This is Marquee"] waitForExistenceWithTimeout:60.0]);
XCTAssertEqual([app.staticTexts matchingType:XCUIElementTypeStaticText identifier:@"This is Marquee"].count, 2);
// Back navigation.
[app.navigationBars[@"Dual Flutter Views"].buttons[@"Flutter iOS Demos Home"] tap];
XCTAssertTrue([app.navigationBars[@"Flutter iOS Demos Home"] waitForExistenceWithTimeout:60.0]);
}
@end