Skip to content

Commit

Permalink
Add menu item UI tests
Browse files Browse the repository at this point in the history
  • Loading branch information
lukakerr committed Mar 15, 2019
1 parent 47cd535 commit 6d5807f
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 4 deletions.
4 changes: 4 additions & 0 deletions Pine.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
A148C3A020914F0F00B1165C /* SyntaxThemes.swift in Sources */ = {isa = PBXBuildFile; fileRef = A148C39F20914F0F00B1165C /* SyntaxThemes.swift */; };
A148E4232231F066001AEAAC /* PreferenceKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = A148E4222231F066001AEAAC /* PreferenceKey.swift */; };
A148E4252231F7D7001AEAAC /* NSButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = A148E4242231F7D7001AEAAC /* NSButton.swift */; };
A14C1B24223B8888002E0827 /* MenuItemUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A14C1B23223B8888002E0827 /* MenuItemUITests.swift */; };
A156AF812090606C0098BBDD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A156AF802090606C0098BBDD /* AppDelegate.swift */; };
A156AF832090606C0098BBDD /* MarkdownViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A156AF822090606C0098BBDD /* MarkdownViewController.swift */; };
A156AF852090606C0098BBDD /* Document.swift in Sources */ = {isa = PBXBuildFile; fileRef = A156AF842090606C0098BBDD /* Document.swift */; };
Expand Down Expand Up @@ -111,6 +112,7 @@
A148C39F20914F0F00B1165C /* SyntaxThemes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyntaxThemes.swift; sourceTree = "<group>"; };
A148E4222231F066001AEAAC /* PreferenceKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferenceKey.swift; sourceTree = "<group>"; };
A148E4242231F7D7001AEAAC /* NSButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSButton.swift; sourceTree = "<group>"; };
A14C1B23223B8888002E0827 /* MenuItemUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuItemUITests.swift; sourceTree = "<group>"; };
A156AF7D2090606C0098BBDD /* Pine.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pine.app; sourceTree = BUILT_PRODUCTS_DIR; };
A156AF802090606C0098BBDD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
A156AF822090606C0098BBDD /* MarkdownViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownViewController.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -333,6 +335,7 @@
children = (
A156AFA22090606D0098BBDD /* Info.plist */,
A156AFA02090606D0098BBDD /* InitialOpenUITests.swift */,
A14C1B23223B8888002E0827 /* MenuItemUITests.swift */,
);
path = PineUITests;
sourceTree = "<group>";
Expand Down Expand Up @@ -676,6 +679,7 @@
buildActionMask = 2147483647;
files = (
A156AFA12090606D0098BBDD /* InitialOpenUITests.swift in Sources */,
A14C1B24223B8888002E0827 /* MenuItemUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
4 changes: 0 additions & 4 deletions PineUITests/InitialOpenUITests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ class InitialOpenUITests: XCTestCase {
XCUIApplication().launch()
}

override func tearDown() {
super.tearDown()
}

func testEmptyTextViewOpened() {
let app = XCUIApplication()
let textview = app.textViews.firstMatch
Expand Down
103 changes: 103 additions & 0 deletions PineUITests/MenuItemUITests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
//
// MenuItemUITests.swift
// PineUITests
//
// Created by Luka Kerr on 15/3/19.
// Copyright © 2019 Luka Kerr. All rights reserved.
//

import XCTest

class MenuItemUITests: XCTestCase {

override func setUp() {
super.setUp()

// Stop immediately when a failure occurs
continueAfterFailure = false

// Launch the application
XCUIApplication().launch()
}

func testToggleSidebar() {
let app = XCUIApplication()
let viewMenu = app.menuBarItems.element(boundBy: 4)

let sidebar = app.splitGroups.firstMatch

XCTAssertTrue(sidebar.isHittable)

let hideSidebarPredicate = NSPredicate(format: "title = %@", "Hide Sidebar")
let hideSidebarMenu = viewMenu.menuItems.element(matching: hideSidebarPredicate)

hideSidebarMenu.click()

XCTAssertFalse(sidebar.isHittable)

let showSidebarPredicate = NSPredicate(format: "title = %@", "Show Sidebar")
let showSidebarMenu = viewMenu.menuItems.element(matching: showSidebarPredicate)

showSidebarMenu.click()

XCTAssertTrue(sidebar.isHittable)
}

func testTogglePreview() {
let app = XCUIApplication()
let viewMenu = app.menuBarItems.element(boundBy: 4)

let preview = app.splitGroups.element(boundBy: 1)

XCTAssertTrue(preview.isHittable)

let togglePreviewPredicate = NSPredicate(format: "title = %@", "Toggle Preview")
let togglePreviewMenu = viewMenu.menuItems.element(matching: togglePreviewPredicate)

togglePreviewMenu.click()

XCTAssertFalse(preview.isHittable)

togglePreviewMenu.click()

XCTAssertTrue(preview.isHittable)
}

func testToggleEditor() {
let app = XCUIApplication()
let viewMenu = app.menuBarItems.element(boundBy: 4)
let editor = app.textViews.firstMatch

XCTAssertTrue(editor.isHittable)

let toggleEditorPredicate = NSPredicate(format: "title = %@", "Toggle Editor")
let toggleEditorMenu = viewMenu.menuItems.element(matching: toggleEditorPredicate)

toggleEditorMenu.click()

XCTAssertFalse(editor.isHittable)

toggleEditorMenu.click()

XCTAssertTrue(editor.isHittable)
}

func testShowReference() {
let app = XCUIApplication()
let viewMenu = app.menuBarItems.element(boundBy: 4)

XCTAssertEqual(app.windows.count, 1)

let showReferencePredicate = NSPredicate(format: "title = %@", "Show Reference")
let showReferenceMenu = viewMenu.menuItems.element(matching: showReferencePredicate)

showReferenceMenu.click()

XCTAssertEqual(app.windows.count, 2)

app.typeKey("w", modifierFlags: .command)

XCTAssertEqual(app.windows.count, 1)
}

}

0 comments on commit 6d5807f

Please sign in to comment.