You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.0 KiB
79 lines
3.0 KiB
// Copyright © 2015 Abhishek Banthia |
|
|
|
import XCTest |
|
import CoreModelKit |
|
|
|
@testable import Clocker |
|
|
|
class StandardMenubarHandlerTests: XCTestCase { |
|
|
|
private let mumbai = ["customLabel": "Ghar", |
|
"formattedAddress": "Mumbai", |
|
"place_id": "ChIJwe1EZjDG5zsRaYxkjY_tpF0", |
|
"timezoneID": "Asia/Calcutta", |
|
"nextUpdate": "", |
|
"latitude": "19.0759837", |
|
"longitude": "72.8776559"] |
|
|
|
func testValidStandardMenubarHandler_returnMenubarTitle() { |
|
// Wipe all timezones from UserDefaults |
|
UserDefaults.standard.setValue(nil, forKey: CLDefaultPreferenceKey) |
|
|
|
// Save a menubar selected timezone |
|
let dataObject = TimezoneData(with: mumbai) |
|
dataObject.isFavourite = 1 |
|
let operationsObject = TimezoneDataOperations(with: dataObject) |
|
operationsObject.saveObject() |
|
|
|
let menubarTimezones = DataStore.shared().menubarTimezones() |
|
XCTAssertTrue(menubarTimezones?.count == 1) |
|
|
|
// Set standard menubar in Prefs |
|
UserDefaults.standard.set(1, forKey: CLMenubarCompactMode) |
|
|
|
let menubarHandler = MenubarHandler() |
|
let menubarString = menubarHandler.titleForMenubar() ?? "" |
|
|
|
// Test menubar string is present |
|
XCTAssertTrue(menubarString.count > 0) |
|
XCTAssertTrue(menubarString.contains("Ghar")) |
|
|
|
// Set default back to compact menubar |
|
UserDefaults.standard.set(0, forKey: CLMenubarCompactMode) |
|
} |
|
|
|
func testUnfavouritedTimezone_returnEmptyMenubarTimezoneCount() { |
|
// Wipe all timezones from UserDefaults |
|
UserDefaults.standard.setValue(nil, forKey: CLDefaultPreferenceKey) |
|
|
|
// Save a menubar selected timezone |
|
let dataObject = TimezoneData(with: mumbai) |
|
dataObject.isFavourite = 0 |
|
let operationsObject = TimezoneDataOperations(with: dataObject) |
|
operationsObject.saveObject() |
|
|
|
let menubarTimezones = DataStore.shared().menubarTimezones() |
|
XCTAssertTrue(menubarTimezones?.count == 0) |
|
} |
|
|
|
func testUnfavouritedTimezone_returnNilMenubarString() { |
|
// Wipe all timezones from UserDefaults |
|
UserDefaults.standard.setValue(nil, forKey: CLDefaultPreferenceKey) |
|
let menubarHandler = MenubarHandler() |
|
let emptyMenubarString = menubarHandler.titleForMenubar() |
|
// Returns early because DataStore.menubarTimezones is nil |
|
XCTAssertNil(emptyMenubarString) |
|
|
|
// Save a menubar selected timezone |
|
let dataObject = TimezoneData(with: mumbai) |
|
dataObject.isFavourite = 0 |
|
let operationsObject = TimezoneDataOperations(with: dataObject) |
|
operationsObject.saveObject() |
|
|
|
let menubarString = menubarHandler.titleForMenubar() ?? "" |
|
|
|
// Test menubar string is absent |
|
XCTAssertTrue(menubarString.count == 0) |
|
} |
|
|
|
}
|
|
|