Abhishek Banthia
3 years ago
3 changed files with 78 additions and 1 deletions
@ -0,0 +1,73 @@ |
|||||||
|
// Copyright © 2015 Abhishek Banthia |
||||||
|
|
||||||
|
import XCTest |
||||||
|
|
||||||
|
@testable import Clocker |
||||||
|
|
||||||
|
class AppDelegateTests: XCTestCase { |
||||||
|
|
||||||
|
func testStatusItemIsInitialized() throws { |
||||||
|
let subject = NSApplication.shared.delegate as? AppDelegate |
||||||
|
let statusHandler = subject?.statusItemForPanel() |
||||||
|
XCTAssertNotNil(EventCenter.sharedCenter) |
||||||
|
XCTAssertNotNil(statusHandler) |
||||||
|
} |
||||||
|
|
||||||
|
func testDockMenu() throws { |
||||||
|
let subject = NSApplication.shared.delegate as? AppDelegate |
||||||
|
let dockMenu = subject?.applicationDockMenu(NSApplication.shared) |
||||||
|
let items = dockMenu?.items ?? [] |
||||||
|
|
||||||
|
XCTAssertEqual(dockMenu?.title, "Quick Access") |
||||||
|
XCTAssertEqual(items.first?.title, "Toggle Panel") |
||||||
|
XCTAssertEqual(items[1].title, "Preferences") |
||||||
|
XCTAssertEqual(items[1].keyEquivalent, ",") |
||||||
|
XCTAssertEqual(items[2].title, "Hide from Dock") |
||||||
|
|
||||||
|
// Test selections |
||||||
|
XCTAssertEqual(items.first?.action, #selector(AppDelegate.togglePanel(_:))) |
||||||
|
XCTAssertEqual(items[2].action, #selector(AppDelegate.hideFromDock)) |
||||||
|
|
||||||
|
items.forEach { menuItem in |
||||||
|
XCTAssertTrue(menuItem.isEnabled) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
func testSetupMenubarTimer() { |
||||||
|
let subject = NSApplication.shared.delegate as? AppDelegate |
||||||
|
|
||||||
|
let statusItemHandler = subject?.statusItemForPanel() |
||||||
|
XCTAssertEqual(statusItemHandler?.statusItem.autosaveName, NSStatusItem.AutosaveName("ClockerStatusItem")) |
||||||
|
} |
||||||
|
|
||||||
|
func testFloatingWindow() { |
||||||
|
let subject = NSApplication.shared.delegate as? AppDelegate |
||||||
|
let previousWindows = NSApplication.shared.windows |
||||||
|
XCTAssertEqual(previousWindows.count, 1) // Only the status bar window should be present |
||||||
|
|
||||||
|
subject?.setupFloatingWindow(true) |
||||||
|
|
||||||
|
let floatingWindow = NSApplication.shared.windows.first { window in |
||||||
|
if ((window.windowController as? FloatingWindowController) != nil) { |
||||||
|
return true |
||||||
|
} |
||||||
|
return false |
||||||
|
} |
||||||
|
|
||||||
|
XCTAssertNotNil(floatingWindow) |
||||||
|
XCTAssertEqual(floatingWindow?.windowController?.windowFrameAutosaveName, NSWindow.FrameAutosaveName("FloatingWindowAutoSave")) |
||||||
|
|
||||||
|
subject?.setupFloatingWindow(false) |
||||||
|
|
||||||
|
let closedFloatingWindow = NSApplication.shared.windows.first { window in |
||||||
|
if ((window.windowController as? FloatingWindowController) != nil) { |
||||||
|
return true |
||||||
|
} |
||||||
|
return false |
||||||
|
} |
||||||
|
|
||||||
|
XCTAssertNotNil(closedFloatingWindow) |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue