Skip to content

Commit

Permalink
Add tests for copy functionality.
Browse files Browse the repository at this point in the history
  • Loading branch information
n0shake committed Jul 2, 2021
1 parent a233037 commit 2d21de0
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 1 deletion.
53 changes: 53 additions & 0 deletions Clocker/ClockerUITests/CopyToClipboardTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// Copyright © 2015 Abhishek Banthia

import XCTest

class CopyToClipboardTests: XCTestCase {
var app: XCUIApplication!

override func setUp() {
continueAfterFailure = false
app = XCUIApplication()
app.launch()

if app.tables["FloatingTableView"].exists == false {
app.tapMenubarIcon()
app.buttons["FloatingPin"].click()
}
}

override func tearDownWithError() throws {
app = nil
}

func testFullCopy() throws {
let cellCount = app.tables["FloatingTableView"].cells.count
var clipboardValue = String()
for cellIndex in 0..<cellCount {
let cell = app.tables["FloatingTableView"].cells.element(boundBy: cellIndex)
let customLabel = cell.staticTexts["CustomNameLabelForCell"].value ?? "Nil Custom Label"
let time = cell.staticTexts["ActualTime"].value ?? "Nil Value"
clipboardValue.append(contentsOf: "\(customLabel) - \(time)\n")
}

app.buttons["Share"].click()
app/*@START_MENU_TOKEN@*/.menuItems["Copy All Times"]/*[[".dialogs[\"Clocker Panel\"]",".buttons[\"Share\"]",".menus.menuItems[\"Copy All Times\"]",".menuItems[\"Copy All Times\"]"],[[[-1,3],[-1,2],[-1,1,2],[-1,0,1]],[[-1,3],[-1,2],[-1,1,2]],[[-1,3],[-1,2]]],[0]]@END_MENU_TOKEN@*/.click()

let clipboard = NSPasteboard.general.string(forType: .string)
XCTAssert(clipboardValue == clipboard)
}

func testIndividualTimezoneCopy() {
let cell = app.tables["FloatingTableView"].cells.firstMatch
let customLabel = cell.staticTexts["CustomNameLabelForCell"].value ?? "Nil Custom Label"
let time = cell.staticTexts["ActualTime"].value ?? "Nil Value"
let expectedValue = "\(customLabel) - \(time)"

// Tap to copy!
cell.tap()

let clipboard = NSPasteboard.general.string(forType: .string) ?? "Empty Pasteboard"
XCTAssert(expectedValue == clipboard, "Clipboard value (\(clipboard)) doesn't match expected result")
}

}
1 change: 0 additions & 1 deletion Clocker/Panel/UI/TimezoneCellView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,6 @@ class TimezoneCellView: NSTableCellView {

override func mouseDown(with _: NSEvent) {
// Text is copied in the following format: Chicago - 1625185925
// TODO: Write tests for copy functionality
let clipboardCopy = "\(customName.stringValue) - \(time.stringValue)"
let pasteboard = NSPasteboard.general
pasteboard.declareTypes([.string], owner: nil)
Expand Down

0 comments on commit 2d21de0

Please sign in to comment.