2 * Copyright (C) 2016 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
26 #import <XCTest/XCTest.h>
27 #import <XCTest/XCUIRemote.h>
29 @interface MobileMiniBrowserUITests : XCTestCase
33 @implementation MobileMiniBrowserUITests
39 self.continueAfterFailure = NO;
41 XCUIApplication *app = [[XCUIApplication alloc] init];
50 - (void)testBasicVideoPlayback
52 XCUIApplication *app = [[XCUIApplication alloc] init];
53 NSPredicate *exists = [NSPredicate predicateWithFormat:@"exists == 1"];
55 XCUIElement *urlField = app.textFields[@"URL Field"];
56 [self expectationForPredicate:exists evaluatedWithObject:urlField handler:nil];
57 [self waitForExpectationsWithTimeout:5.0 handler:nil];
60 XCUIElement *clearButton = urlField.buttons[@"Clear text"];
61 if (clearButton.exists)
63 [urlField typeText:@"http://test-safari.apple.com/"];
64 [app.buttons[@"Go To URL"] tap];
66 XCUIElement *captions = app.links[@"Captions"];
67 [self expectationForPredicate:exists evaluatedWithObject:captions handler:nil];
68 [self waitForExpectationsWithTimeout:5.0 handler:nil];
71 XCUIElement *viewInPage = app.links[@"Video in page"];
72 [self expectationForPredicate:exists evaluatedWithObject:viewInPage handler:nil];
73 [self waitForExpectationsWithTimeout:5.0 handler:nil];
76 XCUIElement *startPlayback = app.buttons[@"Start Playback"];
77 [self expectationForPredicate:exists evaluatedWithObject:startPlayback handler:nil];
78 [self waitForExpectationsWithTimeout:5.0 handler:nil];
81 UIUserInterfaceIdiom idiom = UI_USER_INTERFACE_IDIOM();
82 if (idiom == UIUserInterfaceIdiomPhone) {
83 XCUIElement *pauseButton = app.buttons[@"PauseButton"];
84 [self expectationForPredicate:exists evaluatedWithObject:pauseButton handler:nil];
85 [self waitForExpectationsWithTimeout:5.0 handler:nil];
88 XCUIElement *doneButton = app.buttons[@"Done"];
89 [self expectationForPredicate:exists evaluatedWithObject:doneButton handler:nil];
90 [self waitForExpectationsWithTimeout:5.0 handler:nil];
92 } else if (idiom == UIUserInterfaceIdiomPad) {
93 XCUIElement *pauseButton = app.buttons[@"Pause"];
94 [self expectationForPredicate:exists evaluatedWithObject:pauseButton handler:nil];
95 [self waitForExpectationsWithTimeout:5.0 handler:nil];