Abhishek Banthia
3 years ago
8 changed files with 104 additions and 106 deletions
@ -0,0 +1,79 @@
|
||||
// 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) |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue