testing/UPDATE-TESTING.md
This guide validates the ProductInfo-only auto-update flow that reads from productinfo.json.
UniGetUI no longer falls back to the legacy updater logic. If the ProductInfo lookup fails, the update check fails.
testing/productinfo.unigetui.test.jsonUniGetUI.Installer.x64.exeUniGetUI.Installer.arm64.exeUniGetUI.x64.zipUniGetUI.arm64.zipDevolutions.UniGetUI.x64/arm64, exe preferred).HKLM\Software\Devolutions\UniGetUI.UpdaterProductInfoUrl from HKLM\Software\Devolutions\UniGetUI.UpdaterProductKey and all validation-bypass flags.HKLM\Software\Devolutions\UniGetUI for local testing.UpdaterAllowUnsafeUrlsUpdaterSkipHashValidationUpdaterSkipSignerThumbprintCheckUpdaterDisableTlsValidationFrom repository root:
Push-Location testing
python -m http.server 8080
Pop-Location
Make sure these URLs are reachable:
http://127.0.0.1:8080/productinfo.unigetui.test.jsonhttp://127.0.0.1:8080/UniGetUI.Installer.x64.exehttp://127.0.0.1:8080/UniGetUI.Installer.arm64.exeThese steps apply to a Debug build only.
Run in PowerShell:
$regPath = 'HKLM:\Software\Devolutions\UniGetUI'
New-Item -Path $regPath -Force | Out-Null
# Point updater to local productinfo
Set-ItemProperty -Path $regPath -Name 'UpdaterProductInfoUrl' -Value 'http://127.0.0.1:8080/productinfo.unigetui.test.json'
# Product key inside productinfo JSON
Set-ItemProperty -Path $regPath -Name 'UpdaterProductKey' -Value 'Devolutions.UniGetUI'
# Allow local http URL and local domain for package downloads
Set-ItemProperty -Path $regPath -Name 'UpdaterAllowUnsafeUrls' -Type DWord -Value 1
# Keep hash validation enabled for normal test pass
Set-ItemProperty -Path $regPath -Name 'UpdaterSkipHashValidation' -Type DWord -Value 0
# Keep signer thumbprint validation enabled for normal test pass
Set-ItemProperty -Path $regPath -Name 'UpdaterSkipSignerThumbprintCheck' -Type DWord -Value 0
# Optional only for HTTPS cert troubleshooting in test environments
Set-ItemProperty -Path $regPath -Name 'UpdaterDisableTlsValidation' -Type DWord -Value 0
Expected result:
productinfo.unigetui.test.json.exe installer.Use one of these methods:
Expected result:
Set:
Set-ItemProperty -Path 'HKLM:\Software\Devolutions\UniGetUI' -Name 'UpdaterAllowUnsafeUrls' -Type DWord -Value 0
Expected result with local http://127.0.0.1 URLs:
Use one of these methods:
UpdaterProductInfoUrl to a missing URL, orUpdaterProductInfoUrl to a malformed JSON file, orUpdaterProductKey to a non-existent product.Example:
Set-ItemProperty -Path 'HKLM:\Software\Devolutions\UniGetUI' -Name 'UpdaterProductInfoUrl' -Value 'http://127.0.0.1:8080/does-not-exist.json'
Expected result:
Use this only if your local installer is unsigned or signed with a non-Devolutions certificate.
Set-ItemProperty -Path 'HKLM:\Software\Devolutions\UniGetUI' -Name 'UpdaterSkipSignerThumbprintCheck' -Type DWord -Value 1
Run the same registry override setup against a Release build.
Expected result:
UpdaterProductInfoUrl only if it still passes normal source validation.UpdaterProductKey.Devolutions.UniGetUI product key.Reset to default production behavior:
$regPath = 'HKLM:\Software\Devolutions\UniGetUI'
Remove-ItemProperty -Path $regPath -Name 'UpdaterProductInfoUrl' -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $regPath -Name 'UpdaterProductKey' -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $regPath -Name 'UpdaterAllowUnsafeUrls' -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $regPath -Name 'UpdaterSkipHashValidation' -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $regPath -Name 'UpdaterSkipSignerThumbprintCheck' -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $regPath -Name 'UpdaterDisableTlsValidation' -ErrorAction SilentlyContinue
With all override values removed, UniGetUI uses:
https://devolutions.net/productinfo.jsonDevolutions.UniGetUI