annotate SimoleonUITests/SimoleonUITests.swift @ 132:9439c76e6590

Add tests
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Mon, 16 Aug 2021 18:22:46 +0100
parents 587924519d3b
children edc8719905fe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
1 //
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
2 // SimoleonUITests.swift
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
3 // SimoleonUITests
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
4 //
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 08/07/2021.
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
6 //
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
7
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
8 import XCTest
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
9
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
10 class SimoleonUITests: XCTestCase {
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
11
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
12 override func setUpWithError() throws {
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
13 // Put setup code here. This method is called before the invocation of each test method in the class.
132
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
14 if UIDevice.current.userInterfaceIdiom == .pad {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
15 XCUIDevice.shared.orientation = .landscapeLeft
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
16 }
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
17
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
18 let app = XCUIApplication()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
19 app.launchArguments += ["-AppleLocale", "en_US"]
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
20 app.launch()
0
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
21
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
22 // In UI tests it is usually best to stop immediately when a failure occurs.
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
23 continueAfterFailure = false
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
24
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
25 // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
26 }
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
27
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
28 override func tearDownWithError() throws {
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
29 // Put teardown code here. This method is called after the invocation of each test method in the class.
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
30 }
132
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
31
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
32 func testTabBar() throws {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
33 let app = XCUIApplication()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
34 if UIDevice.current.userInterfaceIdiom == .pad {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
35 app.tables["Sidebar"].buttons["NavigateToConversion"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
36 XCTAssertTrue(app.staticTexts["Convert"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
37
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
38 app.tables["Sidebar"].buttons["NavigateToFavorites"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
39 XCTAssertTrue(app.staticTexts["Favorites"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
40
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
41 app.tables["Sidebar"].buttons["NavigateToSettings"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
42 XCTAssertTrue(app.staticTexts["Settings"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
43 } else {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
44 app.tabBars.buttons.element(boundBy: 0).tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
45 XCTAssertTrue(app.staticTexts["Convert"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
46
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
47 app.tabBars.buttons.element(boundBy: 1).tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
48 XCTAssertTrue(app.staticTexts["Favorites"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
49
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
50 app.tabBars.buttons.element(boundBy: 2).tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
51 XCTAssertTrue(app.staticTexts["Settings"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
52
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
53 }
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
54 }
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
55
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
56 func testCurrencySelector() throws {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
57 let app = XCUIApplication()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
58 app.scrollViews.buttons["OpenCurrencySelector"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
59
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
60 let currencySearchBar = app.textFields["CurrencySearchBar"]
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
61 currencySearchBar.tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
62 currencySearchBar.typeText("USD/BTC")
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
63 app.tables.buttons["From USD to BTC"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
64 }
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
65
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
66 func testCoreData() throws {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
67 let app = XCUIApplication()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
68 app.scrollViews.buttons["favorite"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
69
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
70 if UIDevice.current.userInterfaceIdiom == .pad {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
71 app.tables["Sidebar"].buttons["NavigateToFavorites"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
72 } else {
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
73 app.tabBars.buttons.element(boundBy: 1).tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
74 }
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
75
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
76 XCTAssertTrue(app.tables.buttons["From USD to GBP"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
77
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
78 let favoriteList = app.tables
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
79 favoriteList.buttons["From USD to GBP"].swipeLeft()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
80 favoriteList.buttons["Delete"].tap()
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
81 XCTAssertFalse(app.tables.buttons["From USD to GBP"].exists)
9439c76e6590 Add tests
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
82 }
109
587924519d3b Reestructured schemes and targets
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
83
587924519d3b Reestructured schemes and targets
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
84 func testLaunchPerformance() throws {
587924519d3b Reestructured schemes and targets
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
85 if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) {
587924519d3b Reestructured schemes and targets
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
86 // This measures how long it takes to launch your application.
587924519d3b Reestructured schemes and targets
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
87 measure(metrics: [XCTApplicationLaunchMetric()]) {
587924519d3b Reestructured schemes and targets
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
88 XCUIApplication().launch()
587924519d3b Reestructured schemes and targets
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
89 }
93
529feb1fc8d5 Added UI Tests for capture screenshots
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 90
diff changeset
90 }
96
fa994172c050 Breaked in parts UI Tests
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 93
diff changeset
91 }
0
e0c2bda6c51f first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
92 }