mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-07 20:10:08 +02:00
✅ Add test and prepare for new prerelease
This commit is contained in:
@ -119,6 +119,7 @@
|
|||||||
C464ADB2275A87CA003FCD53 /* DomainListCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = C464ADB1275A87CA003FCD53 /* DomainListCellProtocol.swift */; };
|
C464ADB2275A87CA003FCD53 /* DomainListCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = C464ADB1275A87CA003FCD53 /* DomainListCellProtocol.swift */; };
|
||||||
C46E206D28299B3800D909D6 /* AppUpdateChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46E206C28299B3800D909D6 /* AppUpdateChecker.swift */; };
|
C46E206D28299B3800D909D6 /* AppUpdateChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46E206C28299B3800D909D6 /* AppUpdateChecker.swift */; };
|
||||||
C46E206E28299B3800D909D6 /* AppUpdateChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46E206C28299B3800D909D6 /* AppUpdateChecker.swift */; };
|
C46E206E28299B3800D909D6 /* AppUpdateChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46E206C28299B3800D909D6 /* AppUpdateChecker.swift */; };
|
||||||
|
C46E20702829D27F00D909D6 /* AppUpdaterCheckTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46E206F2829D27F00D909D6 /* AppUpdaterCheckTest.swift */; };
|
||||||
C46FA23F246C358E00944F05 /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46FA23E246C358E00944F05 /* StringExtension.swift */; };
|
C46FA23F246C358E00944F05 /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46FA23E246C358E00944F05 /* StringExtension.swift */; };
|
||||||
C473319F2470923A009A0597 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C473319E2470923A009A0597 /* Localizable.strings */; };
|
C473319F2470923A009A0597 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C473319E2470923A009A0597 /* Localizable.strings */; };
|
||||||
C47331A2247093B7009A0597 /* StatusMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47331A1247093B7009A0597 /* StatusMenu.swift */; };
|
C47331A2247093B7009A0597 /* StatusMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47331A1247093B7009A0597 /* StatusMenu.swift */; };
|
||||||
@ -340,6 +341,7 @@
|
|||||||
C464ADAE275A7A69003FCD53 /* DomainListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainListVC.swift; sourceTree = "<group>"; };
|
C464ADAE275A7A69003FCD53 /* DomainListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainListVC.swift; sourceTree = "<group>"; };
|
||||||
C464ADB1275A87CA003FCD53 /* DomainListCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainListCellProtocol.swift; sourceTree = "<group>"; };
|
C464ADB1275A87CA003FCD53 /* DomainListCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainListCellProtocol.swift; sourceTree = "<group>"; };
|
||||||
C46E206C28299B3800D909D6 /* AppUpdateChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateChecker.swift; sourceTree = "<group>"; };
|
C46E206C28299B3800D909D6 /* AppUpdateChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateChecker.swift; sourceTree = "<group>"; };
|
||||||
|
C46E206F2829D27F00D909D6 /* AppUpdaterCheckTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppUpdaterCheckTest.swift; sourceTree = "<group>"; };
|
||||||
C46FA23E246C358E00944F05 /* StringExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtension.swift; sourceTree = "<group>"; };
|
C46FA23E246C358E00944F05 /* StringExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtension.swift; sourceTree = "<group>"; };
|
||||||
C473319E2470923A009A0597 /* Localizable.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
|
C473319E2470923A009A0597 /* Localizable.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
C47331A1247093B7009A0597 /* StatusMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenu.swift; sourceTree = "<group>"; };
|
C47331A1247093B7009A0597 /* StatusMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenu.swift; sourceTree = "<group>"; };
|
||||||
@ -871,6 +873,7 @@
|
|||||||
C48D6C73279CD3E400F26D7E /* PhpVersionNumberTest.swift */,
|
C48D6C73279CD3E400F26D7E /* PhpVersionNumberTest.swift */,
|
||||||
C4B56360276AB0A500F12CCB /* VersionExtractorTest.swift */,
|
C4B56360276AB0A500F12CCB /* VersionExtractorTest.swift */,
|
||||||
C4AF9F7C275454A900D44ED0 /* ValetVersionExtractorTest.swift */,
|
C4AF9F7C275454A900D44ED0 /* ValetVersionExtractorTest.swift */,
|
||||||
|
C46E206F2829D27F00D909D6 /* AppUpdaterCheckTest.swift */,
|
||||||
);
|
);
|
||||||
path = Versions;
|
path = Versions;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -1305,6 +1308,7 @@
|
|||||||
54D9E0B327E4F51E003B9AD9 /* HotKeysController.swift in Sources */,
|
54D9E0B327E4F51E003B9AD9 /* HotKeysController.swift in Sources */,
|
||||||
C4B97B79275CF1B5003F3378 /* App+ActivationPolicy.swift in Sources */,
|
C4B97B79275CF1B5003F3378 /* App+ActivationPolicy.swift in Sources */,
|
||||||
C4CE3BBB27B324230086CA49 /* MainMenu+Switcher.swift in Sources */,
|
C4CE3BBB27B324230086CA49 /* MainMenu+Switcher.swift in Sources */,
|
||||||
|
C46E20702829D27F00D909D6 /* AppUpdaterCheckTest.swift in Sources */,
|
||||||
C4F7809C25D80344000DBC97 /* CommandTest.swift in Sources */,
|
C4F7809C25D80344000DBC97 /* CommandTest.swift in Sources */,
|
||||||
C44CCD4127AFE2FC00CE40E5 /* AlertableError.swift in Sources */,
|
C44CCD4127AFE2FC00CE40E5 /* AlertableError.swift in Sources */,
|
||||||
C4D936CA27E3EB6100BD69FE /* PhpHelper.swift in Sources */,
|
C4D936CA27E3EB6100BD69FE /* PhpHelper.swift in Sources */,
|
||||||
|
21
phpmon-tests/Versions/AppUpdaterCheckTest.swift
Normal file
21
phpmon-tests/Versions/AppUpdaterCheckTest.swift
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
//
|
||||||
|
// AppUpdaterCheckTest.swift
|
||||||
|
// phpmon-tests
|
||||||
|
//
|
||||||
|
// Created by Nico Verbruggen on 10/05/2022.
|
||||||
|
// Copyright © 2022 Nico Verbruggen. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import XCTest
|
||||||
|
|
||||||
|
class AppUpdaterCheckTest: XCTestCase {
|
||||||
|
|
||||||
|
func testCanRetrieveVersionFromCask() {
|
||||||
|
let caskVersion = AppUpdateChecker.retrieveVersionFromCask()
|
||||||
|
|
||||||
|
let version = VersionExtractor.from(caskVersion)
|
||||||
|
|
||||||
|
XCTAssertNotNil(version)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -19,6 +19,22 @@ class AppUpdateChecker {
|
|||||||
return App.version.contains("-dev")
|
return App.version.contains("-dev")
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
public static func retrieveVersionFromCask(_ initiatedFromBackground: Bool = true) -> String {
|
||||||
|
let caskFile = App.version.contains("-dev")
|
||||||
|
? Constants.Urls.DevBuildCaskFile.absoluteString
|
||||||
|
: Constants.Urls.StableBuildCaskFile.absoluteString
|
||||||
|
|
||||||
|
var command = "curl -s"
|
||||||
|
|
||||||
|
if initiatedFromBackground {
|
||||||
|
command = "curl -s --max-time 5"
|
||||||
|
}
|
||||||
|
|
||||||
|
return Shell.pipe(
|
||||||
|
"\(command) '\(caskFile)' | grep version"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
public static func checkIfNewerVersionIsAvailable(initiatedFromBackground: Bool = true) {
|
public static func checkIfNewerVersionIsAvailable(initiatedFromBackground: Bool = true) {
|
||||||
if initiatedFromBackground {
|
if initiatedFromBackground {
|
||||||
if !Preferences.isEnabled(.automaticBackgroundUpdateCheck) {
|
if !Preferences.isEnabled(.automaticBackgroundUpdateCheck) {
|
||||||
@ -29,22 +45,7 @@ class AppUpdateChecker {
|
|||||||
Log.info("Automatic updates are enabled, a check will be performed.")
|
Log.info("Automatic updates are enabled, a check will be performed.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actually check for updates
|
let versionString = retrieveVersionFromCask(initiatedFromBackground)
|
||||||
let caskFile = App.version.contains("-dev")
|
|
||||||
? Constants.Urls.DevBuildCaskFile.absoluteString
|
|
||||||
: Constants.Urls.StableBuildCaskFile.absoluteString
|
|
||||||
|
|
||||||
// We'll find out what the new version is by using `curl`
|
|
||||||
var command = "curl -s"
|
|
||||||
|
|
||||||
if initiatedFromBackground {
|
|
||||||
// If running as a background check, should only waste at most 3 secs of time
|
|
||||||
command = "curl -s --max-time 3"
|
|
||||||
}
|
|
||||||
|
|
||||||
let versionString = Shell.pipe(
|
|
||||||
"\(command) '\(caskFile)' | grep version"
|
|
||||||
)
|
|
||||||
|
|
||||||
guard let onlineVersion = VersionExtractor.from(versionString) else {
|
guard let onlineVersion = VersionExtractor.from(versionString) else {
|
||||||
Log.err("We couldn't check for updates!")
|
Log.err("We couldn't check for updates!")
|
||||||
@ -80,7 +81,7 @@ class AppUpdateChecker {
|
|||||||
Log.info("There is a newer version (\(onlineVersion)) available!")
|
Log.info("There is a newer version (\(onlineVersion)) available!")
|
||||||
notifyAboutNewerVersion(version: onlineVersion)
|
notifyAboutNewerVersion(version: onlineVersion)
|
||||||
case .orderedSame:
|
case .orderedSame:
|
||||||
Log.info("The installed version \(currentVersion) matches the latest release (\(onlineVersion)).")
|
Log.info("The installed version (\(currentVersion)) matches the latest release (\(onlineVersion)).")
|
||||||
if !background {
|
if !background {
|
||||||
notifyVersionDoesNotNeedUpgrade()
|
notifyVersionDoesNotNeedUpgrade()
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user