blob: b6d3bceff039b9f5a448808c709c42449f02382e [file] [log] [blame]
// Copyright 2013 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;
@import os.log;
@interface URLLauncherUITests : XCTestCase
@property(nonatomic, strong) XCUIApplication *app;
@end
@implementation URLLauncherUITests
- (void)setUp {
self.continueAfterFailure = NO;
self.app = [[XCUIApplication alloc] init];
[self.app launch];
}
- (void)testLaunch {
XCUIApplication *app = self.app;
NSArray<NSString *> *buttonNames = @[
@"Launch in app", @"Launch in app(JavaScript ON)", @"Launch in app(DOM storage ON)",
@"Launch a universal link in a native app, fallback to Safari.(Youtube)"
];
for (NSString *buttonName in buttonNames) {
XCUIElement *button = app.buttons[buttonName];
XCTAssertTrue([button waitForExistenceWithTimeout:30.0]);
XCTAssertEqual(app.webViews.count, 0);
[button tap];
XCUIElement *webView = app.webViews.firstMatch;
XCTAssertTrue([webView waitForExistenceWithTimeout:30.0]);
XCTAssertTrue([app.buttons[@"ForwardButton"] waitForExistenceWithTimeout:30.0]);
XCTAssertTrue(app.buttons[@"Share"].exists);
XCTAssertTrue(app.buttons[@"OpenInSafariButton"].exists);
[app.buttons[@"Done"] tap];
}
}
@end