DesktopUpdaterController.forTesting constructor
DesktopUpdaterController.forTesting({
- required Uri? appArchiveUrl,
- required String expectedPackageId,
- required UpdateRecoveryStore recoveryStore,
- required Map<
String, String> trustedReleasePublicKeys, - DesktopUpdateLocalization? localization,
- String channel = "stable",
- String? installationIdentity,
- UpdatePreferences? preferences,
- DesktopUpdaterTelemetry? telemetry,
- MinimumOSSupportChecker? isMinimumOSSupported,
- UpdateRequestHeadersProvider? requestHeadersProvider,
- UpdateDiagnosticsRecorder? diagnosticsRecorder,
- Future<
void> onProblemReport(- UpdateProblemReport report
- FutureOr<
void> onCleanupReport(- UpdateCleanupReport report
- bool skipInitialVersionCheck = false,
- ReleaseNotesLoader? releaseNotesLoader,
- Uri? releaseNotesUrl,
- ReleaseNotesFetcher? releaseNotesFetcher,
- ExternalUrlLauncher? externalUrlLauncher,
- bool? isWindows,
Creates a controller with injected collaborators for unit testing.
Identical to the default constructor but accepts an optional
releaseNotesFetcher so tests can substitute a fake HTTP layer without
exposing that seam in the public API.
Implementation
@visibleForTesting
DesktopUpdaterController.forTesting({
required Uri? appArchiveUrl,
required String expectedPackageId,
required UpdateRecoveryStore recoveryStore,
required Map<String, String> trustedReleasePublicKeys,
DesktopUpdateLocalization? localization,
this.channel = "stable",
this.installationIdentity,
this.preferences,
this.telemetry,
this.isMinimumOSSupported,
this.requestHeadersProvider,
UpdateDiagnosticsRecorder? diagnosticsRecorder,
Future<void> Function(UpdateProblemReport report)? onProblemReport,
FutureOr<void> Function(UpdateCleanupReport report)? onCleanupReport,
bool skipInitialVersionCheck = false,
ReleaseNotesLoader? releaseNotesLoader,
Uri? releaseNotesUrl,
ReleaseNotesFetcher? releaseNotesFetcher,
ExternalUrlLauncher? externalUrlLauncher,
bool? isWindows,
}) : expectedPackageId =
_normalizeControllerExpectedPackageId(expectedPackageId),
recoveryStore = recoveryStore,
trustedReleasePublicKeys =
normalizeReleasePublicKeys(trustedReleasePublicKeys),
_isWindows = isWindows ?? Platform.isWindows,
_localization = localization,
_skipInitialVersionCheck = skipInitialVersionCheck,
_diagnosticsRecorder =
diagnosticsRecorder ?? UpdateDiagnosticsRecorder(channel: channel),
_onProblemReport = onProblemReport,
_onCleanupReport = onCleanupReport,
_releaseNotesLoader = releaseNotesLoader,
_releaseNotesUrl = releaseNotesUrl,
_externalUrlLauncher =
externalUrlLauncher ?? defaultExternalUrlLauncher,
_releaseNotesFetcher = releaseNotesFetcher ??
(releaseNotesUrl == null
? null
: ReleaseNotesFetcher(
requestHeadersProvider: requestHeadersProvider,
)) {
if (appArchiveUrl != null) {
init(appArchiveUrl);
}
}