Abhishek Banthia
3 years ago
2 changed files with 339 additions and 64 deletions
@ -0,0 +1,278 @@ |
|||||||
|
// Copyright © 2015 Abhishek Banthia |
||||||
|
|
||||||
|
import XCTest |
||||||
|
|
||||||
|
@testable import Clocker |
||||||
|
|
||||||
|
class ThemerTests: XCTestCase { |
||||||
|
|
||||||
|
func testLightTheme() throws { |
||||||
|
let subject = Themer(index: 0) // 0 is for light theme |
||||||
|
let expectedSliderKnobColor = NSColor(deviceRed: 255.0, green: 255.0, blue: 255, alpha: 0.9) |
||||||
|
let expectedSliderRightColor = NSColor.gray |
||||||
|
let expectedBackgroundColor = NSColor.white |
||||||
|
let expectedTextColor = NSColor.black |
||||||
|
let expectedTextBackgroundColor = NSColor(deviceRed: 241.0 / 255.0, green: 241.0 / 255.0, blue: 241.0 / 255.0, alpha: 1.0) |
||||||
|
|
||||||
|
|
||||||
|
let expectedShutdownImageName = "ellipsis.circle" |
||||||
|
let expectedPreferenceImageName = "plus" |
||||||
|
let expectedPinImageName = "macwindow.on.rectangle" |
||||||
|
let expectedSunriseImageName = "sunrise.fill" |
||||||
|
let expectedSunsetImageName = "sunset.fill" |
||||||
|
let expectedRemoveImageName = "xmark" |
||||||
|
let expectedExtraOptionsImage = "Extra" |
||||||
|
let expectedMenubarOnboardingImage = "Light Menubar" |
||||||
|
let expectedExtraOptionsHighlightedImage = "ExtraHighlighted" |
||||||
|
let expectedSharingImage = "square.and.arrow.up.on.square.fill" |
||||||
|
let expectedCurrentLocationImage = "location.fill" |
||||||
|
let expectedPopoverApperarance = NSAppearance(named: NSAppearance.Name.vibrantLight)! |
||||||
|
let expectedAddImage = "plus" |
||||||
|
let expectedAddImageHighlighted = "Add Highlighted" |
||||||
|
let expectedPrivacyTabImage = "lock" |
||||||
|
let expectedAppearanceTabImage = "eye" |
||||||
|
let expectedCalendarTabImage = "calendar" |
||||||
|
let expectedGeneralTabImage = "gearshape" |
||||||
|
let expectedAboutTabImage = "info.circle" |
||||||
|
let expectedVideoCallImage = "video.circle.fill" |
||||||
|
let expectedFilledTrashImage = "trash.fill" |
||||||
|
let expectedBackwardsImage = "gobackward.15" |
||||||
|
let expectedForwardsImage = "goforward.15" |
||||||
|
let expectedResetSliderImage = "xmark.circle.fill" |
||||||
|
|
||||||
|
|
||||||
|
XCTAssertEqual(subject.sliderKnobColor(), expectedSliderKnobColor) |
||||||
|
XCTAssertEqual(subject.sliderRightColor(), expectedSliderRightColor) |
||||||
|
XCTAssertEqual(subject.mainBackgroundColor(), expectedBackgroundColor) |
||||||
|
XCTAssertEqual(subject.mainTextColor(), expectedTextColor) |
||||||
|
XCTAssertEqual(subject.textBackgroundColor(), expectedTextBackgroundColor) |
||||||
|
|
||||||
|
XCTAssertEqual(subject.shutdownImage().accessibilityDescription, expectedShutdownImageName) |
||||||
|
XCTAssertEqual(subject.preferenceImage().accessibilityDescription, expectedPreferenceImageName) |
||||||
|
XCTAssertEqual(subject.pinImage().accessibilityDescription, expectedPinImageName) |
||||||
|
XCTAssertEqual(subject.sunriseImage().accessibilityDescription, expectedSunriseImageName) |
||||||
|
XCTAssertEqual(subject.sunsetImage().accessibilityDescription, expectedSunsetImageName) |
||||||
|
XCTAssertEqual(subject.removeImage().accessibilityDescription, expectedRemoveImageName) |
||||||
|
XCTAssertEqual(subject.extraOptionsImage().name(), expectedExtraOptionsImage) |
||||||
|
XCTAssertEqual(subject.menubarOnboardingImage().name(), expectedMenubarOnboardingImage) |
||||||
|
XCTAssertEqual(subject.extraOptionsHighlightedImage().name(), expectedExtraOptionsHighlightedImage) |
||||||
|
XCTAssertEqual(subject.sharingImage().accessibilityDescription, expectedSharingImage) |
||||||
|
XCTAssertEqual(subject.currentLocationImage().accessibilityDescription, expectedCurrentLocationImage) |
||||||
|
XCTAssertEqual(subject.popoverAppearance(), expectedPopoverApperarance) |
||||||
|
|
||||||
|
XCTAssertEqual(subject.addImage().accessibilityDescription, expectedAddImage) |
||||||
|
XCTAssertEqual(subject.addImageHighlighted().name(), expectedAddImageHighlighted) |
||||||
|
XCTAssertEqual(subject.privacyTabImage().accessibilityDescription, expectedPrivacyTabImage) |
||||||
|
XCTAssertEqual(subject.appearanceTabImage().accessibilityDescription, expectedAppearanceTabImage) |
||||||
|
XCTAssertEqual(subject.calendarTabImage().accessibilityDescription, expectedCalendarTabImage) |
||||||
|
XCTAssertEqual(subject.generalTabImage()?.accessibilityDescription, expectedGeneralTabImage) |
||||||
|
XCTAssertEqual(subject.aboutTabImage()?.accessibilityDescription, expectedAboutTabImage) |
||||||
|
XCTAssertEqual(subject.videoCallImage()?.accessibilityDescription, expectedVideoCallImage) |
||||||
|
XCTAssertEqual(subject.filledTrashImage()?.accessibilityDescription, expectedFilledTrashImage) |
||||||
|
XCTAssertEqual(subject.goBackwardsImage()?.accessibilityDescription, expectedBackwardsImage) |
||||||
|
XCTAssertEqual(subject.goForwardsImage()?.accessibilityDescription, expectedForwardsImage) |
||||||
|
XCTAssertEqual(subject.resetModernSliderImage()?.accessibilityDescription, expectedResetSliderImage) |
||||||
|
} |
||||||
|
|
||||||
|
func testDarkTheme() throws { |
||||||
|
let subject = Themer(index: 1) // 1 is for dark theme |
||||||
|
let expectedSliderKnobColor = NSColor(deviceRed: 0.0, green: 0.0, blue: 0, alpha: 0.9) |
||||||
|
let expectedSliderRightColor = NSColor.white |
||||||
|
let expectedBackgroundColor = NSColor(deviceRed: 42.0 / 255.0, green: 42.0 / 255.0, blue: 42.0 / 255.0, alpha: 1.0) |
||||||
|
let expectedTextColor = NSColor.white |
||||||
|
let expectedTextBackgroundColor = NSColor(deviceRed: 42.0 / 255.0, green: 55.0 / 255.0, blue: 62.0 / 255.0, alpha: 1.0) |
||||||
|
|
||||||
|
|
||||||
|
let expectedShutdownImageName = "ellipsis.circle" |
||||||
|
let expectedPreferenceImageName = "plus" |
||||||
|
let expectedPinImageName = "macwindow.on.rectangle" |
||||||
|
let expectedSunriseImageName = "sunrise.fill" |
||||||
|
let expectedSunsetImageName = "sunset.fill" |
||||||
|
let expectedRemoveImageName = "xmark" |
||||||
|
let expectedExtraOptionsImage = "ExtraWhite" |
||||||
|
let expectedMenubarOnboardingImage = "Light Menubar" |
||||||
|
let expectedExtraOptionsHighlightedImage = "ExtraWhiteHighlighted" |
||||||
|
let expectedSharingImage = "square.and.arrow.up.on.square.fill" |
||||||
|
let expectedCurrentLocationImage = "location.fill" |
||||||
|
let expectedPopoverApperarance = NSAppearance(named: NSAppearance.Name.vibrantDark)! |
||||||
|
let expectedAddImage = "plus" |
||||||
|
let expectedAddImageHighlighted = "Add White" |
||||||
|
let expectedPrivacyTabImage = "lock" |
||||||
|
let expectedAppearanceTabImage = "eye" |
||||||
|
let expectedCalendarTabImage = "calendar" |
||||||
|
let expectedGeneralTabImage = "gearshape" |
||||||
|
let expectedAboutTabImage = "info.circle" |
||||||
|
let expectedVideoCallImage = "video.circle.fill" |
||||||
|
let expectedFilledTrashImage = "trash.fill" |
||||||
|
let expectedBackwardsImage = "gobackward.15" |
||||||
|
let expectedForwardsImage = "goforward.15" |
||||||
|
let expectedResetSliderImage = "xmark.circle.fill" |
||||||
|
|
||||||
|
|
||||||
|
XCTAssertEqual(subject.sliderKnobColor(), expectedSliderKnobColor) |
||||||
|
XCTAssertEqual(subject.sliderRightColor(), expectedSliderRightColor) |
||||||
|
XCTAssertEqual(subject.mainBackgroundColor(), expectedBackgroundColor) |
||||||
|
XCTAssertEqual(subject.mainTextColor(), expectedTextColor) |
||||||
|
XCTAssertEqual(subject.textBackgroundColor(), expectedTextBackgroundColor) |
||||||
|
XCTAssertEqual(subject.shutdownImage().accessibilityDescription, expectedShutdownImageName) |
||||||
|
XCTAssertEqual(subject.preferenceImage().accessibilityDescription, expectedPreferenceImageName) |
||||||
|
XCTAssertEqual(subject.pinImage().accessibilityDescription, expectedPinImageName) |
||||||
|
XCTAssertEqual(subject.sunriseImage().accessibilityDescription, expectedSunriseImageName) |
||||||
|
XCTAssertEqual(subject.sunsetImage().accessibilityDescription, expectedSunsetImageName) |
||||||
|
XCTAssertEqual(subject.removeImage().accessibilityDescription, expectedRemoveImageName) |
||||||
|
XCTAssertEqual(subject.extraOptionsImage().name(), expectedExtraOptionsImage) |
||||||
|
XCTAssertEqual(subject.menubarOnboardingImage().name(), expectedMenubarOnboardingImage) |
||||||
|
XCTAssertEqual(subject.extraOptionsHighlightedImage().name(), expectedExtraOptionsHighlightedImage) |
||||||
|
XCTAssertEqual(subject.sharingImage().accessibilityDescription, expectedSharingImage) |
||||||
|
XCTAssertEqual(subject.currentLocationImage().accessibilityDescription, expectedCurrentLocationImage) |
||||||
|
XCTAssertEqual(subject.popoverAppearance(), expectedPopoverApperarance) |
||||||
|
XCTAssertEqual(subject.addImage().accessibilityDescription, expectedAddImage) |
||||||
|
XCTAssertEqual(subject.addImageHighlighted().name(), expectedAddImageHighlighted) |
||||||
|
XCTAssertEqual(subject.privacyTabImage().accessibilityDescription, expectedPrivacyTabImage) |
||||||
|
XCTAssertEqual(subject.appearanceTabImage().accessibilityDescription, expectedAppearanceTabImage) |
||||||
|
XCTAssertEqual(subject.calendarTabImage().accessibilityDescription, expectedCalendarTabImage) |
||||||
|
XCTAssertEqual(subject.generalTabImage()?.accessibilityDescription, expectedGeneralTabImage) |
||||||
|
XCTAssertEqual(subject.aboutTabImage()?.accessibilityDescription, expectedAboutTabImage) |
||||||
|
XCTAssertEqual(subject.videoCallImage()?.accessibilityDescription, expectedVideoCallImage) |
||||||
|
XCTAssertEqual(subject.filledTrashImage()?.accessibilityDescription, expectedFilledTrashImage) |
||||||
|
XCTAssertEqual(subject.goBackwardsImage()?.accessibilityDescription, expectedBackwardsImage) |
||||||
|
XCTAssertEqual(subject.goForwardsImage()?.accessibilityDescription, expectedForwardsImage) |
||||||
|
XCTAssertEqual(subject.resetModernSliderImage()?.accessibilityDescription, expectedResetSliderImage) |
||||||
|
XCTAssertEqual(subject.description, "Current Theme is \(Theme.dark)") |
||||||
|
} |
||||||
|
|
||||||
|
func testSolarizedLightTheme() throws { |
||||||
|
let subject = Themer(index: 3) // 3 is for solarized light theme |
||||||
|
let expectedSliderKnobColor = NSColor(deviceRed: 0.0, green: 0.0, blue: 0, alpha: 0.9) |
||||||
|
let expectedSliderRightColor = NSColor.gray |
||||||
|
let expectedBackgroundColor = NSColor(deviceRed: 253.0 / 255.0, green: 246.0 / 255.0, blue: 227.0 / 255.0, alpha: 1.0) |
||||||
|
let expectedTextColor = NSColor.black |
||||||
|
let expectedTextBackgroundColor = NSColor(deviceRed: 238.0 / 255.0, green: 232.0 / 255.0, blue: 213.0 / 255.0, alpha: 1.0) |
||||||
|
|
||||||
|
|
||||||
|
let expectedShutdownImageName = "ellipsis.circle" |
||||||
|
let expectedPreferenceImageName = "plus" |
||||||
|
let expectedPinImageName = "macwindow.on.rectangle" |
||||||
|
let expectedSunriseImageName = "sunrise.fill" |
||||||
|
let expectedSunsetImageName = "sunset.fill" |
||||||
|
let expectedRemoveImageName = "xmark" |
||||||
|
let expectedExtraOptionsImage = "Extra" |
||||||
|
let expectedMenubarOnboardingImage = "Light Menubar" |
||||||
|
let expectedExtraOptionsHighlightedImage = "ExtraHighlighted" |
||||||
|
let expectedSharingImage = "square.and.arrow.up.on.square.fill" |
||||||
|
let expectedCurrentLocationImage = "location.fill" |
||||||
|
let expectedPopoverApperarance = NSAppearance(named: NSAppearance.Name.vibrantLight)! |
||||||
|
let expectedAddImage = "plus" |
||||||
|
let expectedAddImageHighlighted = "Add White" |
||||||
|
let expectedPrivacyTabImage = "lock" |
||||||
|
let expectedAppearanceTabImage = "eye" |
||||||
|
let expectedCalendarTabImage = "calendar" |
||||||
|
let expectedGeneralTabImage = "gearshape" |
||||||
|
let expectedAboutTabImage = "info.circle" |
||||||
|
let expectedVideoCallImage = "video.circle.fill" |
||||||
|
let expectedFilledTrashImage = "trash.fill" |
||||||
|
let expectedBackwardsImage = "gobackward.15" |
||||||
|
let expectedForwardsImage = "goforward.15" |
||||||
|
let expectedResetSliderImage = "xmark.circle.fill" |
||||||
|
|
||||||
|
|
||||||
|
XCTAssertEqual(subject.sliderKnobColor(), expectedSliderKnobColor) |
||||||
|
XCTAssertEqual(subject.sliderRightColor(), expectedSliderRightColor) |
||||||
|
XCTAssertEqual(subject.mainBackgroundColor(), expectedBackgroundColor) |
||||||
|
XCTAssertEqual(subject.mainTextColor(), expectedTextColor) |
||||||
|
XCTAssertEqual(subject.textBackgroundColor(), expectedTextBackgroundColor) |
||||||
|
|
||||||
|
XCTAssertEqual(subject.shutdownImage().accessibilityDescription, expectedShutdownImageName) |
||||||
|
XCTAssertEqual(subject.preferenceImage().accessibilityDescription, expectedPreferenceImageName) |
||||||
|
XCTAssertEqual(subject.pinImage().accessibilityDescription, expectedPinImageName) |
||||||
|
XCTAssertEqual(subject.sunriseImage().accessibilityDescription, expectedSunriseImageName) |
||||||
|
XCTAssertEqual(subject.sunsetImage().accessibilityDescription, expectedSunsetImageName) |
||||||
|
XCTAssertEqual(subject.removeImage().accessibilityDescription, expectedRemoveImageName) |
||||||
|
XCTAssertEqual(subject.extraOptionsImage().name(), expectedExtraOptionsImage) |
||||||
|
XCTAssertEqual(subject.menubarOnboardingImage().name(), expectedMenubarOnboardingImage) |
||||||
|
XCTAssertEqual(subject.extraOptionsHighlightedImage().name(), expectedExtraOptionsHighlightedImage) |
||||||
|
XCTAssertEqual(subject.sharingImage().accessibilityDescription, expectedSharingImage) |
||||||
|
XCTAssertEqual(subject.currentLocationImage().accessibilityDescription, expectedCurrentLocationImage) |
||||||
|
XCTAssertEqual(subject.popoverAppearance(), expectedPopoverApperarance) |
||||||
|
|
||||||
|
XCTAssertEqual(subject.addImage().accessibilityDescription, expectedAddImage) |
||||||
|
XCTAssertEqual(subject.addImageHighlighted().name(), expectedAddImageHighlighted) |
||||||
|
XCTAssertEqual(subject.privacyTabImage().accessibilityDescription, expectedPrivacyTabImage) |
||||||
|
XCTAssertEqual(subject.appearanceTabImage().accessibilityDescription, expectedAppearanceTabImage) |
||||||
|
XCTAssertEqual(subject.calendarTabImage().accessibilityDescription, expectedCalendarTabImage) |
||||||
|
XCTAssertEqual(subject.generalTabImage()?.accessibilityDescription, expectedGeneralTabImage) |
||||||
|
XCTAssertEqual(subject.aboutTabImage()?.accessibilityDescription, expectedAboutTabImage) |
||||||
|
XCTAssertEqual(subject.videoCallImage()?.accessibilityDescription, expectedVideoCallImage) |
||||||
|
XCTAssertEqual(subject.filledTrashImage()?.accessibilityDescription, expectedFilledTrashImage) |
||||||
|
XCTAssertEqual(subject.goBackwardsImage()?.accessibilityDescription, expectedBackwardsImage) |
||||||
|
XCTAssertEqual(subject.goForwardsImage()?.accessibilityDescription, expectedForwardsImage) |
||||||
|
XCTAssertEqual(subject.resetModernSliderImage()?.accessibilityDescription, expectedResetSliderImage) |
||||||
|
} |
||||||
|
|
||||||
|
func testSolarizedDarkTheme() throws { |
||||||
|
let subject = Themer(index: 4) // 4 is for solarized dark theme |
||||||
|
let expectedSliderKnobColor = NSColor(deviceRed: 0.0, green: 0.0, blue: 0, alpha: 0.9) |
||||||
|
let expectedSliderRightColor = NSColor.gray |
||||||
|
let expectedBackgroundColor = NSColor(deviceRed: 7.0 / 255.0, green: 54.0 / 255.0, blue: 66.0 / 255.0, alpha: 1.0) |
||||||
|
let expectedTextColor = NSColor.white |
||||||
|
let expectedTextBackgroundColor = NSColor(deviceRed: 88.0 / 255.0, green: 110.0 / 255.0, blue: 117.0 / 255.0, alpha: 1.0) |
||||||
|
|
||||||
|
|
||||||
|
let expectedShutdownImageName = "ellipsis.circle" |
||||||
|
let expectedPreferenceImageName = "plus" |
||||||
|
let expectedPinImageName = "macwindow.on.rectangle" |
||||||
|
let expectedSunriseImageName = "sunrise.fill" |
||||||
|
let expectedSunsetImageName = "sunset.fill" |
||||||
|
let expectedRemoveImageName = "xmark" |
||||||
|
let expectedExtraOptionsImage = "ExtraWhite" |
||||||
|
let expectedMenubarOnboardingImage = "Light Menubar" |
||||||
|
let expectedExtraOptionsHighlightedImage = "ExtraWhiteHighlighted" |
||||||
|
let expectedSharingImage = "square.and.arrow.up.on.square.fill" |
||||||
|
let expectedCurrentLocationImage = "location.fill" |
||||||
|
let expectedPopoverApperarance = NSAppearance(named: NSAppearance.Name.vibrantDark)! |
||||||
|
let expectedAddImage = "plus" |
||||||
|
let expectedAddImageHighlighted = "Add White" |
||||||
|
let expectedPrivacyTabImage = "lock" |
||||||
|
let expectedAppearanceTabImage = "eye" |
||||||
|
let expectedCalendarTabImage = "calendar" |
||||||
|
let expectedGeneralTabImage = "gearshape" |
||||||
|
let expectedAboutTabImage = "info.circle" |
||||||
|
let expectedVideoCallImage = "video.circle.fill" |
||||||
|
let expectedFilledTrashImage = "trash.fill" |
||||||
|
let expectedBackwardsImage = "gobackward.15" |
||||||
|
let expectedForwardsImage = "goforward.15" |
||||||
|
let expectedResetSliderImage = "xmark.circle.fill" |
||||||
|
|
||||||
|
|
||||||
|
XCTAssertEqual(subject.sliderKnobColor(), expectedSliderKnobColor) |
||||||
|
XCTAssertEqual(subject.sliderRightColor(), expectedSliderRightColor) |
||||||
|
XCTAssertEqual(subject.mainBackgroundColor(), expectedBackgroundColor) |
||||||
|
XCTAssertEqual(subject.mainTextColor(), expectedTextColor) |
||||||
|
XCTAssertEqual(subject.textBackgroundColor(), expectedTextBackgroundColor) |
||||||
|
XCTAssertEqual(subject.shutdownImage().accessibilityDescription, expectedShutdownImageName) |
||||||
|
XCTAssertEqual(subject.preferenceImage().accessibilityDescription, expectedPreferenceImageName) |
||||||
|
XCTAssertEqual(subject.pinImage().accessibilityDescription, expectedPinImageName) |
||||||
|
XCTAssertEqual(subject.sunriseImage().accessibilityDescription, expectedSunriseImageName) |
||||||
|
XCTAssertEqual(subject.sunsetImage().accessibilityDescription, expectedSunsetImageName) |
||||||
|
XCTAssertEqual(subject.removeImage().accessibilityDescription, expectedRemoveImageName) |
||||||
|
XCTAssertEqual(subject.extraOptionsImage().name(), expectedExtraOptionsImage) |
||||||
|
XCTAssertEqual(subject.menubarOnboardingImage().name(), expectedMenubarOnboardingImage) |
||||||
|
XCTAssertEqual(subject.extraOptionsHighlightedImage().name(), expectedExtraOptionsHighlightedImage) |
||||||
|
XCTAssertEqual(subject.sharingImage().accessibilityDescription, expectedSharingImage) |
||||||
|
XCTAssertEqual(subject.currentLocationImage().accessibilityDescription, expectedCurrentLocationImage) |
||||||
|
XCTAssertEqual(subject.popoverAppearance(), expectedPopoverApperarance) |
||||||
|
XCTAssertEqual(subject.addImage().accessibilityDescription, expectedAddImage) |
||||||
|
XCTAssertEqual(subject.addImageHighlighted().name(), expectedAddImageHighlighted) |
||||||
|
XCTAssertEqual(subject.privacyTabImage().accessibilityDescription, expectedPrivacyTabImage) |
||||||
|
XCTAssertEqual(subject.appearanceTabImage().accessibilityDescription, expectedAppearanceTabImage) |
||||||
|
XCTAssertEqual(subject.calendarTabImage().accessibilityDescription, expectedCalendarTabImage) |
||||||
|
XCTAssertEqual(subject.generalTabImage()?.accessibilityDescription, expectedGeneralTabImage) |
||||||
|
XCTAssertEqual(subject.aboutTabImage()?.accessibilityDescription, expectedAboutTabImage) |
||||||
|
XCTAssertEqual(subject.videoCallImage()?.accessibilityDescription, expectedVideoCallImage) |
||||||
|
XCTAssertEqual(subject.filledTrashImage()?.accessibilityDescription, expectedFilledTrashImage) |
||||||
|
XCTAssertEqual(subject.goBackwardsImage()?.accessibilityDescription, expectedBackwardsImage) |
||||||
|
XCTAssertEqual(subject.goForwardsImage()?.accessibilityDescription, expectedForwardsImage) |
||||||
|
XCTAssertEqual(subject.resetModernSliderImage()?.accessibilityDescription, expectedResetSliderImage) |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue