diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index 221259ea60..d0a5dfe789 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -322,6 +322,7 @@ 4715FE33667C5899E64DD0E6 /* ResolveVerifiedUserSendFailureScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97287090CA64DAA95386ECED /* ResolveVerifiedUserSendFailureScreen.swift */; }; 4716587A9BA69ED8FD1B986B /* PollOptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6B19D10B102956066AF117B /* PollOptionView.swift */; }; 47305C0911C9E1AA774A4000 /* TemplateScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA90BD288E5AE6BC643AFDDF /* TemplateScreenCoordinator.swift */; }; + 478C363F63A5DFC3C83E334C /* MediaProviderMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F65E4BB9E82EB8373207CF8 /* MediaProviderMock.swift */; }; 4799A852132F1744E2825994 /* CreateRoomViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 340179A0FC1AD4AEDA7FC134 /* CreateRoomViewModelProtocol.swift */; }; 4807E8F51DB54F56B25E1C7E /* AppLockSetupSettingsScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D8C38663020DF2EB2D13F5E /* AppLockSetupSettingsScreenViewModel.swift */; }; 48416BBEB8DDF3E4DED0EDB6 /* ElementCallServiceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FC8B21E86B137BE4E91F82A /* ElementCallServiceProtocol.swift */; }; @@ -360,7 +361,6 @@ 4EA1CE0E88EA68E862FF0EA2 /* NotificationSettingsEditScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B564D748B67A156F413CD97 /* NotificationSettingsEditScreenModels.swift */; }; 4EAC427267424192964B16B3 /* AppSettingsHook.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13BE9781699FB510E9263192 /* AppSettingsHook.swift */; }; 4F2DF6138E87A4B8C2488CA3 /* VoiceMessageCacheProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A84EE187D0C772E18A4E39 /* VoiceMessageCacheProtocol.swift */; }; - 4FC085B1E5D1EB804495E2F4 /* MockMediaProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FD6E621CC5E6D4830D96D2D /* MockMediaProvider.swift */; }; 4FDC8A9764CFDA90CE035725 /* Duration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FB2253D36E81E045E1CB432 /* Duration.swift */; }; 4FE688FE9375B2FBF424146A /* TextBasedRoomTimelineViewProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6EA0D8B0BBD8805F7D5A133 /* TextBasedRoomTimelineViewProtocol.swift */; }; 4FF90E2242DBD596E1ED2E27 /* AppCoordinatorStateMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 077D7C3BE199B6E5DDEC07EC /* AppCoordinatorStateMachine.swift */; }; @@ -824,7 +824,6 @@ B5E455C9689EA600EDB3E9E0 /* NavigationRootCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA28F29C9F93E93CC3C2C715 /* NavigationRootCoordinator.swift */; }; B6048166B4AA4CEFEA9B77A6 /* InfoPlistReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A580295A56B55A856CC4084 /* InfoPlistReader.swift */; }; B6064D82FCDCB829601C1F59 /* SecureBackupLogoutConfirmationScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FEE10AB666891E6A675E5E /* SecureBackupLogoutConfirmationScreen.swift */; }; - B659E3A49889E749E3239EA7 /* MockMediaProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FD6E621CC5E6D4830D96D2D /* MockMediaProvider.swift */; }; B6DA66EFC13A90846B625836 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 91DE43B8815918E590912DDA /* InfoPlist.strings */; }; B6DF6B6FA8734B70F9BF261E /* BlurHashDecode.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5272BC4A60B6AD7553BACA1 /* BlurHashDecode.swift */; }; B6EC2148FA5443C9289BEEBA /* MediaProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17EFA1D3D09FC2F9C5E1CB2 /* MediaProvider.swift */; }; @@ -1556,7 +1555,6 @@ 4F75EF13F49DD2204E760910 /* FileRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileRoomTimelineView.swift; sourceTree = ""; }; 4FA29BAE9B0F2D90E57B261C /* UserSessionFlowCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionFlowCoordinatorTests.swift; sourceTree = ""; }; 4FCB2126C091EEF2454B4D56 /* RoomFlowCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomFlowCoordinatorTests.swift; sourceTree = ""; }; - 4FD6E621CC5E6D4830D96D2D /* MockMediaProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockMediaProvider.swift; sourceTree = ""; }; 4FDD775CFD72DD2D3C8A8390 /* NotificationSettingsProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsProxyProtocol.swift; sourceTree = ""; }; 502F986D57158674172C58E3 /* AppLockSetupSettingsScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupSettingsScreenModels.swift; sourceTree = ""; }; 505208F28007C0FEC14E1FF0 /* HomeScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeScreenViewModelTests.swift; sourceTree = ""; }; @@ -1680,6 +1678,7 @@ 6F1C3CBBC62C566DDF5E84C1 /* TimelineItemMenuAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemMenuAction.swift; sourceTree = ""; }; 6F3DFE5B444F131648066F05 /* StateStoreViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateStoreViewModel.swift; sourceTree = ""; }; 6F418426410F3823F3EB0828 /* WebRegistrationScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebRegistrationScreenViewModelProtocol.swift; sourceTree = ""; }; + 6F65E4BB9E82EB8373207CF8 /* MediaProviderMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaProviderMock.swift; sourceTree = ""; }; 6F6E6EDC4BBF962B2ED595A4 /* MessageForwardingScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageForwardingScreenViewModelTests.swift; sourceTree = ""; }; 6FA38E813BE14149F173F461 /* PinnedEventsBannerStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinnedEventsBannerStateTests.swift; sourceTree = ""; }; 6FC5015B9634698BDB8701AF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = it; path = it.lproj/Localizable.stringsdict; sourceTree = ""; }; @@ -2899,6 +2898,7 @@ E321E840DCC63790049984F4 /* ElementCallServiceMock.swift */, 1B10423B9102086A2D9BFCBA /* EventTimelineItem.swift */, 867DC9530C42F7B5176BE465 /* JoinedRoomProxyMock.swift */, + 6F65E4BB9E82EB8373207CF8 /* MediaProviderMock.swift */, 8DA1E8F287680C8ED25EDBAC /* NetworkMonitorMock.swift */, 382B50F7E379B3DBBD174364 /* NotificationSettingsProxyMock.swift */, B2AD8A56CD37E23071A2F4BF /* PHGPostHogMock.swift */, @@ -4977,7 +4977,6 @@ F17EFA1D3D09FC2F9C5E1CB2 /* MediaProvider.swift */, 85EB16E7FE59A947CA441531 /* MediaProviderProtocol.swift */, D49B9785E3AD7D1C15A29F2F /* MediaSourceProxy.swift */, - 4FD6E621CC5E6D4830D96D2D /* MockMediaProvider.swift */, ); path = Provider; sourceTree = ""; @@ -6035,7 +6034,6 @@ 9DD5AA10E85137140FEA86A3 /* MediaProvider.swift in Sources */, 7A642EE5F1ADC5D520F21924 /* MediaProviderProtocol.swift in Sources */, E2DB696117BAEABAD5718023 /* MediaSourceProxy.swift in Sources */, - 4FC085B1E5D1EB804495E2F4 /* MockMediaProvider.swift in Sources */, 5455147CAC63F71E48F7D699 /* NSELogger.swift in Sources */, 30CC4F796B27BE8B1DFDBF5A /* NSEUserSession.swift in Sources */, 1D5DC685CED904386C89B7DA /* NSRegularExpresion.swift in Sources */, @@ -6566,6 +6564,7 @@ F66BCCC825D6CA51724A94D0 /* MediaPlayerProvider.swift in Sources */, 762DAF94846C7AC8550F1CC1 /* MediaPlayerProviderProtocol.swift in Sources */, B6EC2148FA5443C9289BEEBA /* MediaProvider.swift in Sources */, + 478C363F63A5DFC3C83E334C /* MediaProviderMock.swift in Sources */, 30CC1DB7CE357659C82AA115 /* MediaProviderProtocol.swift in Sources */, 5897A59DDBD3592282092223 /* MediaSourceProxy.swift in Sources */, C67FCC854F3A6FC7A2EC04D0 /* MediaUploadPreviewScreen.swift in Sources */, @@ -6585,7 +6584,6 @@ F54E2D6CAD96E1AC15BC526F /* MessageForwardingScreenViewModel.swift in Sources */, C13128AAA787A4C2CBE4EE82 /* MessageForwardingScreenViewModelProtocol.swift in Sources */, C97325EFDCCEE457432A9E82 /* MessageText.swift in Sources */, - B659E3A49889E749E3239EA7 /* MockMediaProvider.swift in Sources */, 09C83DDDB07C28364F325209 /* MockRoomTimelineController.swift in Sources */, AF2ABA2794E376B64104C964 /* MockSoftLogoutScreenState.swift in Sources */, F9842667B68DC6FA1F9ECCBB /* NSItemProvider.swift in Sources */, diff --git a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift index 1cc39fdd50..356a7b892d 100644 --- a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift +++ b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift @@ -10199,6 +10199,429 @@ class MediaPlayerProviderMock: MediaPlayerProviderProtocol { await detachAllStatesExceptClosure?(exception) } } +class MediaProviderMock: MediaProviderProtocol { + + //MARK: - imageFromSource + + var imageFromSourceSizeUnderlyingCallsCount = 0 + var imageFromSourceSizeCallsCount: Int { + get { + if Thread.isMainThread { + return imageFromSourceSizeUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = imageFromSourceSizeUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + imageFromSourceSizeUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + imageFromSourceSizeUnderlyingCallsCount = newValue + } + } + } + } + var imageFromSourceSizeCalled: Bool { + return imageFromSourceSizeCallsCount > 0 + } + var imageFromSourceSizeReceivedArguments: (source: MediaSourceProxy?, size: CGSize?)? + var imageFromSourceSizeReceivedInvocations: [(source: MediaSourceProxy?, size: CGSize?)] = [] + + var imageFromSourceSizeUnderlyingReturnValue: UIImage? + var imageFromSourceSizeReturnValue: UIImage? { + get { + if Thread.isMainThread { + return imageFromSourceSizeUnderlyingReturnValue + } else { + var returnValue: UIImage?? = nil + DispatchQueue.main.sync { + returnValue = imageFromSourceSizeUnderlyingReturnValue + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + imageFromSourceSizeUnderlyingReturnValue = newValue + } else { + DispatchQueue.main.sync { + imageFromSourceSizeUnderlyingReturnValue = newValue + } + } + } + } + var imageFromSourceSizeClosure: ((MediaSourceProxy?, CGSize?) -> UIImage?)? + + func imageFromSource(_ source: MediaSourceProxy?, size: CGSize?) -> UIImage? { + imageFromSourceSizeCallsCount += 1 + imageFromSourceSizeReceivedArguments = (source: source, size: size) + DispatchQueue.main.async { + self.imageFromSourceSizeReceivedInvocations.append((source: source, size: size)) + } + if let imageFromSourceSizeClosure = imageFromSourceSizeClosure { + return imageFromSourceSizeClosure(source, size) + } else { + return imageFromSourceSizeReturnValue + } + } + //MARK: - loadImageFromSource + + var loadImageFromSourceSizeUnderlyingCallsCount = 0 + var loadImageFromSourceSizeCallsCount: Int { + get { + if Thread.isMainThread { + return loadImageFromSourceSizeUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = loadImageFromSourceSizeUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadImageFromSourceSizeUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + loadImageFromSourceSizeUnderlyingCallsCount = newValue + } + } + } + } + var loadImageFromSourceSizeCalled: Bool { + return loadImageFromSourceSizeCallsCount > 0 + } + var loadImageFromSourceSizeReceivedArguments: (source: MediaSourceProxy, size: CGSize?)? + var loadImageFromSourceSizeReceivedInvocations: [(source: MediaSourceProxy, size: CGSize?)] = [] + + var loadImageFromSourceSizeUnderlyingReturnValue: Result! + var loadImageFromSourceSizeReturnValue: Result! { + get { + if Thread.isMainThread { + return loadImageFromSourceSizeUnderlyingReturnValue + } else { + var returnValue: Result? = nil + DispatchQueue.main.sync { + returnValue = loadImageFromSourceSizeUnderlyingReturnValue + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadImageFromSourceSizeUnderlyingReturnValue = newValue + } else { + DispatchQueue.main.sync { + loadImageFromSourceSizeUnderlyingReturnValue = newValue + } + } + } + } + var loadImageFromSourceSizeClosure: ((MediaSourceProxy, CGSize?) async -> Result)? + + func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result { + loadImageFromSourceSizeCallsCount += 1 + loadImageFromSourceSizeReceivedArguments = (source: source, size: size) + DispatchQueue.main.async { + self.loadImageFromSourceSizeReceivedInvocations.append((source: source, size: size)) + } + if let loadImageFromSourceSizeClosure = loadImageFromSourceSizeClosure { + return await loadImageFromSourceSizeClosure(source, size) + } else { + return loadImageFromSourceSizeReturnValue + } + } + //MARK: - loadImageDataFromSource + + var loadImageDataFromSourceUnderlyingCallsCount = 0 + var loadImageDataFromSourceCallsCount: Int { + get { + if Thread.isMainThread { + return loadImageDataFromSourceUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = loadImageDataFromSourceUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadImageDataFromSourceUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + loadImageDataFromSourceUnderlyingCallsCount = newValue + } + } + } + } + var loadImageDataFromSourceCalled: Bool { + return loadImageDataFromSourceCallsCount > 0 + } + var loadImageDataFromSourceReceivedSource: MediaSourceProxy? + var loadImageDataFromSourceReceivedInvocations: [MediaSourceProxy] = [] + + var loadImageDataFromSourceUnderlyingReturnValue: Result! + var loadImageDataFromSourceReturnValue: Result! { + get { + if Thread.isMainThread { + return loadImageDataFromSourceUnderlyingReturnValue + } else { + var returnValue: Result? = nil + DispatchQueue.main.sync { + returnValue = loadImageDataFromSourceUnderlyingReturnValue + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadImageDataFromSourceUnderlyingReturnValue = newValue + } else { + DispatchQueue.main.sync { + loadImageDataFromSourceUnderlyingReturnValue = newValue + } + } + } + } + var loadImageDataFromSourceClosure: ((MediaSourceProxy) async -> Result)? + + func loadImageDataFromSource(_ source: MediaSourceProxy) async -> Result { + loadImageDataFromSourceCallsCount += 1 + loadImageDataFromSourceReceivedSource = source + DispatchQueue.main.async { + self.loadImageDataFromSourceReceivedInvocations.append(source) + } + if let loadImageDataFromSourceClosure = loadImageDataFromSourceClosure { + return await loadImageDataFromSourceClosure(source) + } else { + return loadImageDataFromSourceReturnValue + } + } + //MARK: - loadImageRetryingOnReconnection + + var loadImageRetryingOnReconnectionSizeUnderlyingCallsCount = 0 + var loadImageRetryingOnReconnectionSizeCallsCount: Int { + get { + if Thread.isMainThread { + return loadImageRetryingOnReconnectionSizeUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = loadImageRetryingOnReconnectionSizeUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadImageRetryingOnReconnectionSizeUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + loadImageRetryingOnReconnectionSizeUnderlyingCallsCount = newValue + } + } + } + } + var loadImageRetryingOnReconnectionSizeCalled: Bool { + return loadImageRetryingOnReconnectionSizeCallsCount > 0 + } + var loadImageRetryingOnReconnectionSizeReceivedArguments: (source: MediaSourceProxy, size: CGSize?)? + var loadImageRetryingOnReconnectionSizeReceivedInvocations: [(source: MediaSourceProxy, size: CGSize?)] = [] + + var loadImageRetryingOnReconnectionSizeUnderlyingReturnValue: Task! + var loadImageRetryingOnReconnectionSizeReturnValue: Task! { + get { + if Thread.isMainThread { + return loadImageRetryingOnReconnectionSizeUnderlyingReturnValue + } else { + var returnValue: Task? = nil + DispatchQueue.main.sync { + returnValue = loadImageRetryingOnReconnectionSizeUnderlyingReturnValue + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadImageRetryingOnReconnectionSizeUnderlyingReturnValue = newValue + } else { + DispatchQueue.main.sync { + loadImageRetryingOnReconnectionSizeUnderlyingReturnValue = newValue + } + } + } + } + var loadImageRetryingOnReconnectionSizeClosure: ((MediaSourceProxy, CGSize?) -> Task)? + + func loadImageRetryingOnReconnection(_ source: MediaSourceProxy, size: CGSize?) -> Task { + loadImageRetryingOnReconnectionSizeCallsCount += 1 + loadImageRetryingOnReconnectionSizeReceivedArguments = (source: source, size: size) + DispatchQueue.main.async { + self.loadImageRetryingOnReconnectionSizeReceivedInvocations.append((source: source, size: size)) + } + if let loadImageRetryingOnReconnectionSizeClosure = loadImageRetryingOnReconnectionSizeClosure { + return loadImageRetryingOnReconnectionSizeClosure(source, size) + } else { + return loadImageRetryingOnReconnectionSizeReturnValue + } + } + //MARK: - loadThumbnailForSource + + var loadThumbnailForSourceSourceSizeUnderlyingCallsCount = 0 + var loadThumbnailForSourceSourceSizeCallsCount: Int { + get { + if Thread.isMainThread { + return loadThumbnailForSourceSourceSizeUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = loadThumbnailForSourceSourceSizeUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadThumbnailForSourceSourceSizeUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + loadThumbnailForSourceSourceSizeUnderlyingCallsCount = newValue + } + } + } + } + var loadThumbnailForSourceSourceSizeCalled: Bool { + return loadThumbnailForSourceSourceSizeCallsCount > 0 + } + var loadThumbnailForSourceSourceSizeReceivedArguments: (source: MediaSourceProxy, size: CGSize)? + var loadThumbnailForSourceSourceSizeReceivedInvocations: [(source: MediaSourceProxy, size: CGSize)] = [] + + var loadThumbnailForSourceSourceSizeUnderlyingReturnValue: Result! + var loadThumbnailForSourceSourceSizeReturnValue: Result! { + get { + if Thread.isMainThread { + return loadThumbnailForSourceSourceSizeUnderlyingReturnValue + } else { + var returnValue: Result? = nil + DispatchQueue.main.sync { + returnValue = loadThumbnailForSourceSourceSizeUnderlyingReturnValue + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadThumbnailForSourceSourceSizeUnderlyingReturnValue = newValue + } else { + DispatchQueue.main.sync { + loadThumbnailForSourceSourceSizeUnderlyingReturnValue = newValue + } + } + } + } + var loadThumbnailForSourceSourceSizeClosure: ((MediaSourceProxy, CGSize) async -> Result)? + + func loadThumbnailForSource(source: MediaSourceProxy, size: CGSize) async -> Result { + loadThumbnailForSourceSourceSizeCallsCount += 1 + loadThumbnailForSourceSourceSizeReceivedArguments = (source: source, size: size) + DispatchQueue.main.async { + self.loadThumbnailForSourceSourceSizeReceivedInvocations.append((source: source, size: size)) + } + if let loadThumbnailForSourceSourceSizeClosure = loadThumbnailForSourceSourceSizeClosure { + return await loadThumbnailForSourceSourceSizeClosure(source, size) + } else { + return loadThumbnailForSourceSourceSizeReturnValue + } + } + //MARK: - loadFileFromSource + + var loadFileFromSourceBodyUnderlyingCallsCount = 0 + var loadFileFromSourceBodyCallsCount: Int { + get { + if Thread.isMainThread { + return loadFileFromSourceBodyUnderlyingCallsCount + } else { + var returnValue: Int? = nil + DispatchQueue.main.sync { + returnValue = loadFileFromSourceBodyUnderlyingCallsCount + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadFileFromSourceBodyUnderlyingCallsCount = newValue + } else { + DispatchQueue.main.sync { + loadFileFromSourceBodyUnderlyingCallsCount = newValue + } + } + } + } + var loadFileFromSourceBodyCalled: Bool { + return loadFileFromSourceBodyCallsCount > 0 + } + var loadFileFromSourceBodyReceivedArguments: (source: MediaSourceProxy, body: String?)? + var loadFileFromSourceBodyReceivedInvocations: [(source: MediaSourceProxy, body: String?)] = [] + + var loadFileFromSourceBodyUnderlyingReturnValue: Result! + var loadFileFromSourceBodyReturnValue: Result! { + get { + if Thread.isMainThread { + return loadFileFromSourceBodyUnderlyingReturnValue + } else { + var returnValue: Result? = nil + DispatchQueue.main.sync { + returnValue = loadFileFromSourceBodyUnderlyingReturnValue + } + + return returnValue! + } + } + set { + if Thread.isMainThread { + loadFileFromSourceBodyUnderlyingReturnValue = newValue + } else { + DispatchQueue.main.sync { + loadFileFromSourceBodyUnderlyingReturnValue = newValue + } + } + } + } + var loadFileFromSourceBodyClosure: ((MediaSourceProxy, String?) async -> Result)? + + func loadFileFromSource(_ source: MediaSourceProxy, body: String?) async -> Result { + loadFileFromSourceBodyCallsCount += 1 + loadFileFromSourceBodyReceivedArguments = (source: source, body: body) + DispatchQueue.main.async { + self.loadFileFromSourceBodyReceivedInvocations.append((source: source, body: body)) + } + if let loadFileFromSourceBodyClosure = loadFileFromSourceBodyClosure { + return await loadFileFromSourceBodyClosure(source, body) + } else { + return loadFileFromSourceBodyReturnValue + } + } +} class NetworkMonitorMock: NetworkMonitorProtocol { var reachabilityPublisher: CurrentValuePublisher { get { return underlyingReachabilityPublisher } diff --git a/ElementX/Sources/Mocks/MediaProviderMock.swift b/ElementX/Sources/Mocks/MediaProviderMock.swift new file mode 100644 index 0000000000..da7a26909f --- /dev/null +++ b/ElementX/Sources/Mocks/MediaProviderMock.swift @@ -0,0 +1,57 @@ +// +// Copyright 2024 New Vector Ltd. +// +// SPDX-License-Identifier: AGPL-3.0-only +// Please see LICENSE in the repository root for full details. +// + +import SwiftUI + +extension MediaProviderMock { + struct Configuration { } + + convenience init(configuration: Configuration) { + self.init() + + imageFromSourceSizeClosure = { mediaSource, _ in + guard mediaSource != nil else { + return nil + } + + if mediaSource?.url == .picturesDirectory { + return Asset.Images.appLogo.image + } + + return UIImage(systemName: "photo") + } + + loadImageFromSourceSizeClosure = { _, _ in + guard let image = UIImage(systemName: "photo") else { + fatalError() + } + + return .success(image) + } + + loadImageDataFromSourceClosure = { _ in + guard let image = UIImage(systemName: "photo"), + let data = image.pngData() else { + fatalError() + } + + return .success(data) + } + + loadFileFromSourceBodyReturnValue = .failure(.failedRetrievingFile) + + loadImageRetryingOnReconnectionSizeClosure = { _, _ in + Task { + guard let image = UIImage(systemName: "photo") else { + fatalError() + } + + return image + } + } + } +} diff --git a/ElementX/Sources/Mocks/UserSessionMock.swift b/ElementX/Sources/Mocks/UserSessionMock.swift index 059b0b07f2..f9d0f510bb 100644 --- a/ElementX/Sources/Mocks/UserSessionMock.swift +++ b/ElementX/Sources/Mocks/UserSessionMock.swift @@ -17,7 +17,7 @@ extension UserSessionMock { self.init() clientProxy = configuration.clientProxy - mediaProvider = MockMediaProvider() + mediaProvider = MediaProviderMock(configuration: .init()) voiceMessageMediaManager = VoiceMessageMediaManagerMock() sessionSecurityStatePublisher = CurrentValueSubject(.init(verificationState: .verified, recoveryState: .enabled)).asCurrentValuePublisher() diff --git a/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift b/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift index 2e96579881..bfa883033c 100644 --- a/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift +++ b/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift @@ -46,7 +46,7 @@ final class PillAttachmentViewProvider: NSTextAttachmentViewProvider, NSSecureCo if ProcessInfo.isXcodePreview || ProcessInfo.isRunningTests { // The mock viewModel simulates the loading logic for testing purposes context = PillContext.mock(type: .loadUser(isOwn: false)) - mediaProvider = MockMediaProvider() + mediaProvider = MediaProviderMock(configuration: .init()) } else if let timelineContext = delegate?.timelineContext { context = PillContext(timelineContext: timelineContext, data: pillData) mediaProvider = timelineContext.mediaProvider diff --git a/ElementX/Sources/Other/Pills/PillView.swift b/ElementX/Sources/Other/Pills/PillView.swift index 91265de629..2a0deee763 100644 --- a/ElementX/Sources/Other/Pills/PillView.swift +++ b/ElementX/Sources/Other/Pills/PillView.swift @@ -37,7 +37,7 @@ struct PillView: View { } struct PillView_Previews: PreviewProvider, TestablePreview { - static let mockMediaProvider = MockMediaProvider() + static let mockMediaProvider = MediaProviderMock(configuration: .init()) static var previews: some View { PillView(mediaProvider: mockMediaProvider, diff --git a/ElementX/Sources/Other/SwiftUI/Views/AvatarHeaderView.swift b/ElementX/Sources/Other/SwiftUI/Views/AvatarHeaderView.swift index 4705b76a13..26d8443bf6 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/AvatarHeaderView.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/AvatarHeaderView.swift @@ -189,7 +189,7 @@ struct AvatarHeaderView_Previews: PreviewProvider, TestablePreview { isEncrypted: true, isPublic: true), avatarSize: .room(on: .details), - mediaProvider: MockMediaProvider()) { + mediaProvider: MediaProviderMock(configuration: .init())) { HStack(spacing: 32) { ShareLink(item: "test") { CompoundIcon(\.shareIos) @@ -203,7 +203,7 @@ struct AvatarHeaderView_Previews: PreviewProvider, TestablePreview { Form { AvatarHeaderView(accountOwner: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockMe), dmRecipient: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockAlice), - mediaProvider: MockMediaProvider()) { + mediaProvider: MediaProviderMock(configuration: .init())) { HStack(spacing: 32) { ShareLink(item: "test") { CompoundIcon(\.shareIos) @@ -218,11 +218,11 @@ struct AvatarHeaderView_Previews: PreviewProvider, TestablePreview { VStack(spacing: 16) { AvatarHeaderView(member: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockAlice), avatarSize: .room(on: .details), - mediaProvider: MockMediaProvider()) { Text("") } + mediaProvider: MediaProviderMock(configuration: .init())) { Text("") } AvatarHeaderView(member: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockBanned[3]), avatarSize: .room(on: .details), - mediaProvider: MockMediaProvider()) { Text("") } + mediaProvider: MediaProviderMock(configuration: .init())) { Text("") } } .padding() .background(Color.compound.bgSubtleSecondaryLevel0) diff --git a/ElementX/Sources/Other/SwiftUI/Views/RoomAvatarImage.swift b/ElementX/Sources/Other/SwiftUI/Views/RoomAvatarImage.swift index 78d4c96e1b..17cf55e783 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/RoomAvatarImage.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/RoomAvatarImage.swift @@ -93,30 +93,30 @@ struct RoomAvatarImage_Previews: PreviewProvider, TestablePreview { name: "Room", avatarURL: nil), avatarSize: .room(on: .home), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) RoomAvatarImage(avatar: .room(id: "!2:server.com", name: "Room", avatarURL: .picturesDirectory), avatarSize: .room(on: .home), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) RoomAvatarImage(avatar: .heroes([.init(userID: "@user:server.com", displayName: "User", avatarURL: nil)]), avatarSize: .room(on: .home), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) RoomAvatarImage(avatar: .heroes([.init(userID: "@user:server.com", displayName: "User", avatarURL: .picturesDirectory)]), avatarSize: .room(on: .home), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) RoomAvatarImage(avatar: .heroes([.init(userID: "@alice:server.com", displayName: "Alice", avatarURL: nil), .init(userID: "@bob:server.net", displayName: "Bob", avatarURL: nil)]), avatarSize: .room(on: .home), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) } } } diff --git a/ElementX/Sources/Other/SwiftUI/Views/RoomInviterLabel.swift b/ElementX/Sources/Other/SwiftUI/Views/RoomInviterLabel.swift index e3fa721ab1..2d7a71eb8f 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/RoomInviterLabel.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/RoomInviterLabel.swift @@ -62,13 +62,13 @@ struct RoomInviterLabel_Previews: PreviewProvider, TestablePreview { static var previews: some View { VStack(spacing: 10) { RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockAlice), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockDan), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockNoName), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockCharlie), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) .foregroundStyle(.compound.textPrimary) } .font(.compound.bodyMD) diff --git a/ElementX/Sources/Other/SwiftUI/Views/UserProfileListRow.swift b/ElementX/Sources/Other/SwiftUI/Views/UserProfileListRow.swift index 762fbce485..4d43bfbd16 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/UserProfileListRow.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/UserProfileListRow.swift @@ -65,21 +65,21 @@ struct UserProfileCell_Previews: PreviewProvider, TestablePreview { static var previews: some View { Form { - UserProfileListRow(user: .mockAlice, membership: nil, mediaProvider: MockMediaProvider(), + UserProfileListRow(user: .mockAlice, membership: nil, mediaProvider: MediaProviderMock(configuration: .init()), kind: .multiSelection(isSelected: true, action: action)) - UserProfileListRow(user: .mockBob, membership: nil, mediaProvider: MockMediaProvider(), + UserProfileListRow(user: .mockBob, membership: nil, mediaProvider: MediaProviderMock(configuration: .init()), kind: .multiSelection(isSelected: false, action: action)) - UserProfileListRow(user: .mockCharlie, membership: .join, mediaProvider: MockMediaProvider(), + UserProfileListRow(user: .mockCharlie, membership: .join, mediaProvider: MediaProviderMock(configuration: .init()), kind: .multiSelection(isSelected: true, action: action)) .disabled(true) - UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: .join, mediaProvider: MockMediaProvider(), + UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: .join, mediaProvider: MediaProviderMock(configuration: .init()), kind: .multiSelection(isSelected: false, action: action)) .disabled(true) - UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: nil, mediaProvider: MockMediaProvider(), + UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: nil, mediaProvider: MediaProviderMock(configuration: .init()), kind: .multiSelection(isSelected: false, action: action)) } .compoundList() diff --git a/ElementX/Sources/Screens/BlockedUsersScreen/View/BlockedUsersScreen.swift b/ElementX/Sources/Screens/BlockedUsersScreen/View/BlockedUsersScreen.swift index 977ae74a15..1922e1f92b 100644 --- a/ElementX/Sources/Screens/BlockedUsersScreen/View/BlockedUsersScreen.swift +++ b/ElementX/Sources/Screens/BlockedUsersScreen/View/BlockedUsersScreen.swift @@ -55,7 +55,7 @@ struct BlockedUsersScreen: View { struct BlockedUsersScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = BlockedUsersScreenViewModel(hideProfiles: true, clientProxy: ClientProxyMock(.init(userID: RoomMemberProxyMock.mockMe.userID)), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: UserIndicatorControllerMock()) static var previews: some View { diff --git a/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreen.swift b/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreen.swift index 25fbd5a2c8..388ee539ae 100644 --- a/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreen.swift +++ b/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreen.swift @@ -206,7 +206,7 @@ private class GlobalSearchTextField: UITextField { struct GlobalSearchScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = GlobalSearchScreenViewModel(roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) static var previews: some View { NavigationStack { diff --git a/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreenCell.swift b/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreenCell.swift index c298a5353a..6a9225facd 100644 --- a/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreenCell.swift +++ b/ElementX/Sources/Screens/GlobalSearchScreen/View/GlobalSearchScreenCell.swift @@ -37,7 +37,7 @@ struct GlobalSearchScreenListRow: View { struct GlobalSearchScreenListRow_Previews: PreviewProvider, TestablePreview { static let viewModel = GlobalSearchScreenViewModel(roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) static var previews: some View { List { diff --git a/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreen.swift b/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreen.swift index 067eb290c7..d677031815 100644 --- a/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreen.swift +++ b/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreen.swift @@ -154,7 +154,7 @@ struct InviteUsersScreen_Previews: PreviewProvider, TestablePreview { return InviteUsersScreenViewModel(clientProxy: ClientProxyMock(.init()), selectedUsers: .init([]), roomType: .draft, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userDiscoveryService: userDiscoveryService, userIndicatorController: UserIndicatorControllerMock()) }() diff --git a/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreenSelectedItem.swift b/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreenSelectedItem.swift index 3f970c812a..5316cd9763 100644 --- a/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreenSelectedItem.swift +++ b/ElementX/Sources/Screens/InviteUsersScreen/View/InviteUsersScreenSelectedItem.swift @@ -50,7 +50,7 @@ struct InviteUsersScreenSelectedItem_Previews: PreviewProvider, TestablePreview ScrollView(.horizontal) { HStack(spacing: 28) { ForEach(people, id: \.userID) { user in - InviteUsersScreenSelectedItem(user: user, mediaProvider: MockMediaProvider(), dismissAction: { }) + InviteUsersScreenSelectedItem(user: user, mediaProvider: MediaProviderMock(configuration: .init()), dismissAction: { }) .frame(width: 72) } } diff --git a/ElementX/Sources/Screens/JoinRoomScreen/View/JoinRoomScreen.swift b/ElementX/Sources/Screens/JoinRoomScreen/View/JoinRoomScreen.swift index 6fa7093b6e..7fe3f317f5 100644 --- a/ElementX/Sources/Screens/JoinRoomScreen/View/JoinRoomScreen.swift +++ b/ElementX/Sources/Screens/JoinRoomScreen/View/JoinRoomScreen.swift @@ -168,7 +168,7 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview { via: [], allowKnocking: true, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController) } } diff --git a/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift b/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift index 5975bfabab..8dc876e85b 100644 --- a/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift +++ b/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift @@ -99,7 +99,7 @@ struct MessageForwardingScreen_Previews: PreviewProvider, TestablePreview { clientProxy: ClientProxyMock(.init()), roomSummaryProvider: summaryProvider, userIndicatorController: UserIndicatorControllerMock(), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) NavigationStack { MessageForwardingScreen(context: viewModel.context) diff --git a/ElementX/Sources/Screens/PinnedEventsTimelineScreen/View/PinnedEventsTimelineScreen.swift b/ElementX/Sources/Screens/PinnedEventsTimelineScreen/View/PinnedEventsTimelineScreen.swift index 8e7f047115..5e8b75eaa2 100644 --- a/ElementX/Sources/Screens/PinnedEventsTimelineScreen/View/PinnedEventsTimelineScreen.swift +++ b/ElementX/Sources/Screens/PinnedEventsTimelineScreen/View/PinnedEventsTimelineScreen.swift @@ -90,7 +90,7 @@ struct PinnedEventsTimelineScreen_Previews: PreviewProvider, TestablePreview { timelineController.timelineItems = [] return TimelineViewModel(roomProxy: JoinedRoomProxyMock(.init(name: "Preview room")), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: UserIndicatorControllerMock(), diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift index 54c328e73f..02975c9bcc 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift @@ -122,7 +122,7 @@ struct RoomChangeRolesScreen_Previews: PreviewProvider, TestablePreview { static func makeViewModel(mode: RoomMemberDetails.Role) -> RoomChangeRolesScreenViewModel { RoomChangeRolesScreenViewModel(mode: mode, roomProxy: JoinedRoomProxyMock(.init(members: .allMembersAsAdmin)), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) } diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift index d9cec3331e..e0db0f7510 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift @@ -39,34 +39,34 @@ struct RoomChangeRolesScreenRow_Previews: PreviewProvider, TestablePreview { static var previews: some View { Form { RoomChangeRolesScreenRow(member: .init(withProxy: RoomMemberProxyMock.mockAlice), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), isSelected: true, action: action) RoomChangeRolesScreenRow(member: .init(withProxy: RoomMemberProxyMock.mockBob), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), isSelected: false, action: action) RoomChangeRolesScreenRow(member: .init(withProxy: RoomMemberProxyMock.mockInvited), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), isSelected: false, action: action) RoomChangeRolesScreenRow(member: .init(withProxy: RoomMemberProxyMock.mockCharlie), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), isSelected: true, action: action) .disabled(true) RoomChangeRolesScreenRow(member: .init(withProxy: RoomMemberProxyMock(with: .init(userID: "@someone:matrix.org", membership: .join))), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), isSelected: false, action: action) .disabled(true) RoomChangeRolesScreenRow(member: .init(withProxy: RoomMemberProxyMock(with: .init(userID: "@someone:matrix.org", membership: .join))), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), isSelected: false, action: action) } diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenSelectedItem.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenSelectedItem.swift index dbbe1d5d5b..435fd33a97 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenSelectedItem.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenSelectedItem.swift @@ -60,7 +60,7 @@ struct RoomChangeRolesScreenSelectedItem_Previews: PreviewProvider, TestablePrev HStack(spacing: 12) { ForEach(members, id: \.id) { member in RoomChangeRolesScreenSelectedItem(member: member, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), dismissAction: { }) .frame(width: 72) } diff --git a/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift b/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift index db4a1c6abc..3f4cd5fd35 100644 --- a/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift +++ b/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift @@ -153,7 +153,7 @@ struct RoomDetailsEditScreen_Previews: PreviewProvider, TestablePreview { members: [.mockMeAdmin])) return RoomDetailsEditScreenViewModel(roomProxy: roomProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: UserIndicatorControllerMock.default) }() @@ -163,7 +163,7 @@ struct RoomDetailsEditScreen_Previews: PreviewProvider, TestablePreview { members: [.mockAlice])) return RoomDetailsEditScreenViewModel(roomProxy: roomProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: UserIndicatorControllerMock.default) }() diff --git a/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift b/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift index 919aa3aff8..1126194ab4 100644 --- a/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift +++ b/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift @@ -321,7 +321,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { return RoomDetailsScreenViewModel(roomProxy: roomProxy, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxy, @@ -347,7 +347,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { return RoomDetailsScreenViewModel(roomProxy: roomProxy, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxy, @@ -372,7 +372,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { return RoomDetailsScreenViewModel(roomProxy: roomProxy, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxy, diff --git a/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectoryCell.swift b/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectoryCell.swift index fab1dd568b..a1c423554a 100644 --- a/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectoryCell.swift +++ b/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectoryCell.swift @@ -55,7 +55,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: "Test title", avatarURL: nil), canBeJoined: true), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } RoomDirectorySearchCell(result: .init(id: "!test_id_2:matrix.org", alias: "#test:example.com", @@ -65,7 +65,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: nil, avatarURL: nil), canBeJoined: true), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } RoomDirectorySearchCell(result: .init(id: "!test_id_3:example.com", alias: "#test_no_topic:example.com", @@ -75,7 +75,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: "Test title no topic", avatarURL: nil), canBeJoined: true), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } RoomDirectorySearchCell(result: .init(id: "!test_id_4:example.com", alias: "#test_no_topic:example.com", @@ -85,7 +85,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: nil, avatarURL: nil), canBeJoined: true), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } RoomDirectorySearchCell(result: .init(id: "!test_id_5:example.com", alias: nil, @@ -95,7 +95,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: "Test title no alias", avatarURL: nil), canBeJoined: false), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } RoomDirectorySearchCell(result: .init(id: "!test_id_6:example.com", alias: nil, @@ -105,7 +105,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: "Test title no alias", avatarURL: nil), canBeJoined: false), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } RoomDirectorySearchCell(result: .init(id: "!test_id_7:example.com", alias: nil, @@ -115,7 +115,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: nil, avatarURL: nil), canBeJoined: false), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } RoomDirectorySearchCell(result: .init(id: "!test_id_8:example.com", alias: nil, name: nil, @@ -124,7 +124,7 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview { name: nil, avatarURL: nil), canBeJoined: false), - mediaProvider: MockMediaProvider()) { } + mediaProvider: MediaProviderMock(configuration: .init())) { } } .compoundList() } diff --git a/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift b/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift index 779a312cf7..95a67e0305 100644 --- a/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift +++ b/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift @@ -93,7 +93,7 @@ struct RoomDirectorySearchScreen_Previews: PreviewProvider, TestablePreview { return RoomDirectorySearchScreenViewModel(clientProxy: clientProxy, userIndicatorController: UserIndicatorControllerMock(), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) }() static var previews: some View { diff --git a/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift b/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift index 358b19d968..680aea69e5 100644 --- a/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift +++ b/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift @@ -147,7 +147,7 @@ struct RoomMemberDetailsScreen_Previews: PreviewProvider, TestablePreview { return RoomMemberDetailsScreenViewModel(userID: member.userID, roomProxy: roomProxyMock, clientProxy: clientProxyMock, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) } diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift index ca99f99108..06d007a59e 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift @@ -100,7 +100,7 @@ private extension RoomMembersListScreenViewModel { static var mock: RoomMembersListScreenViewModel { RoomMembersListScreenViewModel(initialMode: .members, roomProxy: JoinedRoomProxyMock(.init(members: .allMembersAsAdmin)), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) } diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift index ade0098d71..a5ac031b32 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift @@ -174,7 +174,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview { members: members, ownUserID: ownUserID, canUserInvite: false)), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) } diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift index f84e177565..efd25c1706 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift @@ -99,7 +99,7 @@ struct RoomMembersListMemberCell_Previews: PreviewProvider, TestablePreview { static let viewModel = RoomMembersListScreenViewModel(roomProxy: JoinedRoomProxyMock(.init(name: "Some room", members: members)), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) static var previews: some View { diff --git a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/CompletionSuggestionView.swift b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/CompletionSuggestionView.swift index fcb0536b98..29b5ff4cc9 100644 --- a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/CompletionSuggestionView.swift +++ b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/CompletionSuggestionView.swift @@ -116,12 +116,12 @@ struct CompletionSuggestion_Previews: PreviewProvider, TestablePreview { static var previews: some View { // Putting them is VStack allows the preview to work properly in tests VStack(spacing: 8) { - CompletionSuggestionView(mediaProvider: MockMediaProvider(), + CompletionSuggestionView(mediaProvider: MediaProviderMock(configuration: .init()), items: [.user(item: MentionSuggestionItem(id: "@user_mention_1:matrix.org", displayName: "User 1", avatarURL: nil, range: .init())), .user(item: MentionSuggestionItem(id: "@user_mention_2:matrix.org", displayName: "User 2", avatarURL: URL.documentsDirectory, range: .init()))]) { _ in } } VStack(spacing: 8) { - CompletionSuggestionView(mediaProvider: MockMediaProvider(), + CompletionSuggestionView(mediaProvider: MediaProviderMock(configuration: .init()), items: multipleItems) { _ in } } } diff --git a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/ComposerToolbar.swift b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/ComposerToolbar.swift index 0c463ad1e2..c4f4fa384f 100644 --- a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/ComposerToolbar.swift +++ b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/ComposerToolbar.swift @@ -295,7 +295,7 @@ struct ComposerToolbar_Previews: PreviewProvider, TestablePreview { static let wysiwygViewModel = WysiwygComposerViewModel() static let composerViewModel = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: CompletionSuggestionServiceMock(configuration: .init(suggestions: suggestions)), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: ComposerDraftServiceMock()) @@ -338,7 +338,7 @@ extension ComposerToolbar { var composerViewModel: ComposerToolbarViewModel { let model = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: CompletionSuggestionServiceMock(configuration: .init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: ComposerDraftServiceMock()) @@ -355,7 +355,7 @@ extension ComposerToolbar { var composerViewModel: ComposerToolbarViewModel { let model = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: CompletionSuggestionServiceMock(configuration: .init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: ComposerDraftServiceMock()) @@ -372,7 +372,7 @@ extension ComposerToolbar { var composerViewModel: ComposerToolbarViewModel { let model = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: CompletionSuggestionServiceMock(configuration: .init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: ComposerDraftServiceMock()) @@ -390,7 +390,7 @@ extension ComposerToolbar { var composerViewModel: ComposerToolbarViewModel { let model = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: CompletionSuggestionServiceMock(configuration: .init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: ComposerDraftServiceMock()) @@ -411,7 +411,7 @@ extension ComposerToolbar { var composerViewModel: ComposerToolbarViewModel { let model = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: CompletionSuggestionServiceMock(configuration: .init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: ComposerDraftServiceMock()) diff --git a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/MentionSuggestionItemView.swift b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/MentionSuggestionItemView.swift index 41e29b414d..eea817a9e6 100644 --- a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/MentionSuggestionItemView.swift +++ b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/MentionSuggestionItemView.swift @@ -35,7 +35,7 @@ struct MentionSuggestionItemView: View { } struct MentionSuggestionItemView_Previews: PreviewProvider, TestablePreview { - static let mockMediaProvider = MockMediaProvider() + static let mockMediaProvider = MediaProviderMock(configuration: .init()) static var previews: some View { MentionSuggestionItemView(mediaProvider: mockMediaProvider, item: .init(id: "test", displayName: "Test", avatarURL: URL.documentsDirectory, range: .init())) diff --git a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/RoomAttachmentPicker.swift b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/RoomAttachmentPicker.swift index 0871f4f9db..791ee8d548 100644 --- a/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/RoomAttachmentPicker.swift +++ b/ElementX/Sources/Screens/RoomScreen/ComposerToolbar/View/RoomAttachmentPicker.swift @@ -89,7 +89,7 @@ private struct RoomAttachmentPickerButtonStyle: ButtonStyle { struct RoomAttachmentPicker_Previews: PreviewProvider, TestablePreview { static let viewModel = ComposerToolbarViewModel(wysiwygViewModel: WysiwygComposerViewModel(), completionSuggestionService: CompletionSuggestionServiceMock(configuration: .init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: ComposerDraftServiceMock()) diff --git a/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift b/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift index b58e04c1a7..08beb380b2 100644 --- a/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift @@ -196,7 +196,7 @@ extension RoomScreenViewModel { static func mock(roomProxyMock: JoinedRoomProxyMock) -> RoomScreenViewModel { RoomScreenViewModel(roomProxy: roomProxyMock, initialSelectedPinnedEventID: nil, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), ongoingCallRoomIDPublisher: .init(.init(nil)), appMediator: AppMediatorMock.default, appSettings: ServiceLocator.shared.settings, diff --git a/ElementX/Sources/Screens/RoomScreen/View/RoomHeaderView.swift b/ElementX/Sources/Screens/RoomScreen/View/RoomHeaderView.swift index 68dc0a08c2..c7291c4412 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/RoomHeaderView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/RoomHeaderView.swift @@ -42,7 +42,7 @@ struct RoomHeaderView_Previews: PreviewProvider, TestablePreview { roomAvatar: .room(id: "1", name: "Some Room Name", avatarURL: URL.picturesDirectory), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) .previewLayout(.sizeThatFits) .padding() @@ -50,7 +50,7 @@ struct RoomHeaderView_Previews: PreviewProvider, TestablePreview { roomAvatar: .room(id: "1", name: "Some Room Name", avatarURL: nil), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) .previewLayout(.sizeThatFits) .padding() } diff --git a/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift b/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift index e1f1b81ea0..827e7bb229 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift @@ -214,7 +214,7 @@ struct RoomScreen_Previews: PreviewProvider, TestablePreview { static let roomViewModel = RoomScreenViewModel.mock(roomProxyMock: roomProxyMock) static let timelineViewModel = TimelineViewModel(roomProxy: roomProxyMock, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift b/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift index ed6a29f866..9049acea55 100644 --- a/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift +++ b/ElementX/Sources/Screens/Settings/UserDetailsEditScreen/View/UserDetailsEditScreen.swift @@ -116,7 +116,7 @@ struct UserDetailsEditScreen: View { struct UserDetailsEditScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = UserDetailsEditScreenViewModel(clientProxy: ClientProxyMock(.init(userID: "@stefan:matrix.org")), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: UserIndicatorControllerMock.default) static var previews: some View { diff --git a/ElementX/Sources/Screens/Timeline/TimelineViewModel.swift b/ElementX/Sources/Screens/Timeline/TimelineViewModel.swift index 517cc7d568..0b01621447 100644 --- a/ElementX/Sources/Screens/Timeline/TimelineViewModel.swift +++ b/ElementX/Sources/Screens/Timeline/TimelineViewModel.swift @@ -845,7 +845,7 @@ extension TimelineViewModel { static let mock = TimelineViewModel(roomProxy: JoinedRoomProxyMock(.init(name: "Preview room")), focussedEventID: nil, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, @@ -856,7 +856,7 @@ extension TimelineViewModel { static let pinnedEventsTimelineMock = TimelineViewModel(roomProxy: JoinedRoomProxyMock(.init(name: "Preview room")), focussedEventID: nil, timelineController: MockRoomTimelineController(timelineKind: .pinned), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptCell.swift b/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptCell.swift index 033e3c084e..e1328e605f 100644 --- a/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptCell.swift +++ b/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptCell.swift @@ -61,18 +61,18 @@ struct ReadReceiptCell_Previews: PreviewProvider, TestablePreview { formattedTimestamp: "10:00"), memberState: .init(displayName: "Test", avatarURL: nil), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) .previewDisplayName("No Image") ReadReceiptCell(readReceipt: .init(userID: "@test:matrix.org", formattedTimestamp: "10:00"), memberState: .init(displayName: "Test", avatarURL: URL.documentsDirectory), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) .previewDisplayName("With Image") ReadReceiptCell(readReceipt: .init(userID: "@test:matrix.org", formattedTimestamp: "10:00"), memberState: nil, - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) .previewDisplayName("Loading Member") } } diff --git a/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptsSummaryView.swift b/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptsSummaryView.swift index 50294df598..414266fa45 100644 --- a/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptsSummaryView.swift +++ b/ElementX/Sources/Screens/Timeline/View/ReadReceipts/ReadReceiptsSummaryView.swift @@ -45,7 +45,7 @@ struct ReadReceiptsSummaryView_Previews: PreviewProvider, TestablePreview { let roomProxyMock = JoinedRoomProxyMock(.init(name: "Room", members: members)) let mock = TimelineViewModel(roomProxy: roomProxyMock, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: UserIndicatorControllerMock(), diff --git a/ElementX/Sources/Screens/Timeline/View/Style/TimelineItemBubbledStylerView.swift b/ElementX/Sources/Screens/Timeline/View/Style/TimelineItemBubbledStylerView.swift index 894d9ef529..9b0213f25c 100644 --- a/ElementX/Sources/Screens/Timeline/View/Style/TimelineItemBubbledStylerView.swift +++ b/ElementX/Sources/Screens/Timeline/View/Style/TimelineItemBubbledStylerView.swift @@ -359,7 +359,7 @@ struct TimelineItemBubbledStylerView_Previews: PreviewProvider, TestablePreview return TimelineViewModel(roomProxy: roomProxy, focussedEventID: nil, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/ElementX/Sources/Screens/Timeline/View/Supplementary/ReactionsSummaryView.swift b/ElementX/Sources/Screens/Timeline/View/Supplementary/ReactionsSummaryView.swift index 130d612eb9..1920f2d64f 100644 --- a/ElementX/Sources/Screens/Timeline/View/Supplementary/ReactionsSummaryView.swift +++ b/ElementX/Sources/Screens/Timeline/View/Supplementary/ReactionsSummaryView.swift @@ -139,7 +139,7 @@ struct ReactionsSummaryView_Previews: PreviewProvider, TestablePreview { static var previews: some View { ReactionsSummaryView(reactions: AggregatedReaction.mockReactions, members: [:], - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), selectedReactionKey: AggregatedReaction.mockReactions[0].key) } } diff --git a/ElementX/Sources/Screens/Timeline/View/Supplementary/TimelineReadReceiptsView.swift b/ElementX/Sources/Screens/Timeline/View/Supplementary/TimelineReadReceiptsView.swift index 16d63650b6..ddf1c9b63e 100644 --- a/ElementX/Sources/Screens/Timeline/View/Supplementary/TimelineReadReceiptsView.swift +++ b/ElementX/Sources/Screens/Timeline/View/Supplementary/TimelineReadReceiptsView.swift @@ -83,7 +83,7 @@ struct TimelineReadReceiptsView_Previews: PreviewProvider, TestablePreview { static let viewModel = TimelineViewModel(roomProxy: JoinedRoomProxyMock(.init(name: "Test", members: members)), timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/HighlightedTimelineItemModifier.swift b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/HighlightedTimelineItemModifier.swift index 9b61793ff9..efb0566cd1 100644 --- a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/HighlightedTimelineItemModifier.swift +++ b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/HighlightedTimelineItemModifier.swift @@ -90,7 +90,7 @@ struct HighlightedTimelineItemTimeline_Previews: PreviewProvider { static let timelineViewModel = TimelineViewModel(roomProxy: roomProxyMock, focussedEventID: focussedEventID, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/ElementX/Sources/Screens/Timeline/View/TimelineView.swift b/ElementX/Sources/Screens/Timeline/View/TimelineView.swift index c7dbde17d1..1090dbc56c 100644 --- a/ElementX/Sources/Screens/Timeline/View/TimelineView.swift +++ b/ElementX/Sources/Screens/Timeline/View/TimelineView.swift @@ -80,7 +80,7 @@ struct TimelineView_Previews: PreviewProvider, TestablePreview { static let roomViewModel = RoomScreenViewModel.mock(roomProxyMock: roomProxyMock) static let timelineViewModel = TimelineViewModel(roomProxy: roomProxyMock, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/ElementX/Sources/Screens/UserProfileScreen/View/UserProfileScreen.swift b/ElementX/Sources/Screens/UserProfileScreen/View/UserProfileScreen.swift index a635e07319..b8d7f749a7 100644 --- a/ElementX/Sources/Screens/UserProfileScreen/View/UserProfileScreen.swift +++ b/ElementX/Sources/Screens/UserProfileScreen/View/UserProfileScreen.swift @@ -111,7 +111,7 @@ struct UserProfileScreen_Previews: PreviewProvider, TestablePreview { return UserProfileScreenViewModel(userID: userID, isPresentedModally: false, clientProxy: clientProxyMock, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) } diff --git a/ElementX/Sources/Services/Media/Provider/MediaProviderProtocol.swift b/ElementX/Sources/Services/Media/Provider/MediaProviderProtocol.swift index 7306b458e7..bae831b446 100644 --- a/ElementX/Sources/Services/Media/Provider/MediaProviderProtocol.swift +++ b/ElementX/Sources/Services/Media/Provider/MediaProviderProtocol.swift @@ -16,6 +16,7 @@ enum MediaProviderError: Error { case cancelled } +// sourcery: AutoMockable protocol MediaProviderProtocol { func imageFromSource(_ source: MediaSourceProxy?, size: CGSize?) -> UIImage? func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result diff --git a/ElementX/Sources/Services/Media/Provider/MockMediaProvider.swift b/ElementX/Sources/Services/Media/Provider/MockMediaProvider.swift deleted file mode 100644 index 3a77954da2..0000000000 --- a/ElementX/Sources/Services/Media/Provider/MockMediaProvider.swift +++ /dev/null @@ -1,62 +0,0 @@ -// -// Copyright 2022-2024 New Vector Ltd. -// -// SPDX-License-Identifier: AGPL-3.0-only -// Please see LICENSE in the repository root for full details. -// - -import Foundation -import UIKit - -struct MockMediaProvider: MediaProviderProtocol { - func loadThumbnailForSource(source: MediaSourceProxy, size: CGSize) async -> Result { - fatalError("Not implemented") - } - - func imageFromSource(_ source: MediaSourceProxy?, size: CGSize?) -> UIImage? { - guard source != nil else { - return nil - } - - if source?.url == .picturesDirectory { - return Asset.Images.appLogo.image - } - - return UIImage(systemName: "photo") - } - - func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result { - guard let image = UIImage(systemName: "photo") else { - fatalError() - } - - return .success(image) - } - - func loadImageDataFromSource(_ source: MediaSourceProxy) async -> Result { - guard let image = UIImage(systemName: "photo"), - let data = image.pngData() else { - fatalError() - } - - return .success(data) - } - - var loadFileFromSourceReturnValue: MediaFileHandleProxy? - func loadFileFromSource(_ source: MediaSourceProxy, body: String?) async -> Result { - if let loadFileFromSourceReturnValue { - return .success(loadFileFromSourceReturnValue) - } - return .failure(.failedRetrievingFile) - } - - func loadImageRetryingOnReconnection(_ source: MediaSourceProxy, size: CGSize?) -> Task { - Task { - guard let image = UIImage(systemName: "photo") else { - fatalError() - } - - return image - } - } -} diff --git a/ElementX/Sources/UITests/UITestsAppCoordinator.swift b/ElementX/Sources/UITests/UITestsAppCoordinator.swift index 030e58bc37..493e333020 100644 --- a/ElementX/Sources/UITests/UITestsAppCoordinator.swift +++ b/ElementX/Sources/UITests/UITestsAppCoordinator.swift @@ -235,7 +235,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Some room name", avatarURL: nil)), timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -253,7 +253,7 @@ class MockScreen: Identifiable { timelineController.timelineItems = RoomTimelineItemFixtures.smallChunk let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "New room", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -271,7 +271,7 @@ class MockScreen: Identifiable { timelineController.timelineItems = RoomTimelineItemFixtures.default let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "New room", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -289,7 +289,7 @@ class MockScreen: Identifiable { timelineController.timelineItems = RoomTimelineItemFixtures.smallChunkWithReadReceipts let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "New room", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -310,7 +310,7 @@ class MockScreen: Identifiable { timelineController.incomingItems = [RoomTimelineItemFixtures.incomingMessage] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Small timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -331,7 +331,7 @@ class MockScreen: Identifiable { timelineController.backPaginationResponses = [RoomTimelineItemFixtures.largeChunk] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Small timeline, paginating", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -352,7 +352,7 @@ class MockScreen: Identifiable { timelineController.backPaginationResponses = [RoomTimelineItemFixtures.largeChunk] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Large timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -374,7 +374,7 @@ class MockScreen: Identifiable { timelineController.incomingItems = [RoomTimelineItemFixtures.incomingMessage] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Large timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -395,7 +395,7 @@ class MockScreen: Identifiable { timelineController.incomingItems = [RoomTimelineItemFixtures.incomingMessage] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Large timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -415,7 +415,7 @@ class MockScreen: Identifiable { timelineController.timelineItems = RoomTimelineItemFixtures.permalinkChunk let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Timeline highlight", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -449,7 +449,7 @@ class MockScreen: Identifiable { timelineController.incomingItems = [] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -470,7 +470,7 @@ class MockScreen: Identifiable { timelineController.incomingItems = [] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -491,7 +491,7 @@ class MockScreen: Identifiable { timelineController.incomingItems = [] let parameters = RoomScreenCoordinatorParameters(roomProxy: JoinedRoomProxyMock(.init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), emojiProvider: EmojiProvider(), @@ -542,7 +542,7 @@ class MockScreen: Identifiable { case .roomMembersListScreenPendingInvites: let navigationStackCoordinator = NavigationStackCoordinator() let members: [RoomMemberProxyMock] = [.mockInvitedAlice, .mockBob, .mockCharlie] - let coordinator = RoomMembersListScreenCoordinator(parameters: .init(mediaProvider: MockMediaProvider(), + let coordinator = RoomMembersListScreenCoordinator(parameters: .init(mediaProvider: MediaProviderMock(configuration: .init()), roomProxy: JoinedRoomProxyMock(.init(name: "test", members: members)), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics)) @@ -552,7 +552,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator()) let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: .init(roomProxy: JoinedRoomProxyMock(.init(members: .allMembersAsAdmin)), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), navigationStackCoordinator: navigationStackCoordinator, userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics)) diff --git a/UnitTests/Sources/BlockedUsersScreenViewModelTests.swift b/UnitTests/Sources/BlockedUsersScreenViewModelTests.swift index c79e725f32..0852dede1e 100644 --- a/UnitTests/Sources/BlockedUsersScreenViewModelTests.swift +++ b/UnitTests/Sources/BlockedUsersScreenViewModelTests.swift @@ -17,7 +17,7 @@ class BlockedUsersScreenViewModelTests: XCTestCase { let viewModel = BlockedUsersScreenViewModel(hideProfiles: true, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController) let deferred = deferFailure(viewModel.context.$viewState, timeout: 1) { $0.blockedUsers.contains(where: { $0.displayName != nil }) } @@ -32,7 +32,7 @@ class BlockedUsersScreenViewModelTests: XCTestCase { let viewModel = BlockedUsersScreenViewModel(hideProfiles: false, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController) let deferred = deferFulfillment(viewModel.context.$viewState) { $0.blockedUsers.contains(where: { $0.displayName != nil }) } diff --git a/UnitTests/Sources/ComposerToolbarViewModelTests.swift b/UnitTests/Sources/ComposerToolbarViewModelTests.swift index d4bf5fae0a..f869343d32 100644 --- a/UnitTests/Sources/ComposerToolbarViewModelTests.swift +++ b/UnitTests/Sources/ComposerToolbarViewModelTests.swift @@ -28,7 +28,7 @@ class ComposerToolbarViewModelTests: XCTestCase { draftServiceMock = ComposerDraftServiceMock() viewModel = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: completionSuggestionServiceMock, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: draftServiceMock) @@ -105,7 +105,7 @@ class ComposerToolbarViewModelTests: XCTestCase { let mockCompletionSuggestionService = CompletionSuggestionServiceMock(configuration: .init(suggestions: suggestions)) viewModel = ComposerToolbarViewModel(wysiwygViewModel: wysiwygViewModel, completionSuggestionService: mockCompletionSuggestionService, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mentionDisplayHelper: ComposerMentionDisplayHelper.mock, analyticsService: ServiceLocator.shared.analytics, composerDraftService: draftServiceMock) diff --git a/UnitTests/Sources/GlobalSearchScreenViewModelTests.swift b/UnitTests/Sources/GlobalSearchScreenViewModelTests.swift index 40c72f959d..7c6d4bcd28 100644 --- a/UnitTests/Sources/GlobalSearchScreenViewModelTests.swift +++ b/UnitTests/Sources/GlobalSearchScreenViewModelTests.swift @@ -19,7 +19,7 @@ class GlobalSearchScreenViewModelTests: XCTestCase { override func setUpWithError() throws { cancellables.removeAll() viewModel = GlobalSearchScreenViewModel(roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) context = viewModel.context } diff --git a/UnitTests/Sources/InviteUsersViewModelTests.swift b/UnitTests/Sources/InviteUsersViewModelTests.swift index 5e3c463681..fb79524cac 100644 --- a/UnitTests/Sources/InviteUsersViewModelTests.swift +++ b/UnitTests/Sources/InviteUsersViewModelTests.swift @@ -92,7 +92,7 @@ class InviteUsersScreenViewModelTests: XCTestCase { let viewModel = InviteUsersScreenViewModel(clientProxy: ClientProxyMock(.init()), selectedUsers: usersSubject.asCurrentValuePublisher(), roomType: roomType, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userDiscoveryService: userDiscoveryService, userIndicatorController: UserIndicatorControllerMock()) viewModel.state.usersSection = .init(type: .suggestions, users: [.mockAlice, .mockBob, .mockCharlie]) diff --git a/UnitTests/Sources/JoinRoomScreenViewModelTests.swift b/UnitTests/Sources/JoinRoomScreenViewModelTests.swift index ea2ef31a48..c0a0984cee 100644 --- a/UnitTests/Sources/JoinRoomScreenViewModelTests.swift +++ b/UnitTests/Sources/JoinRoomScreenViewModelTests.swift @@ -63,7 +63,7 @@ class JoinRoomScreenViewModelTests: XCTestCase { viewModel = JoinRoomScreenViewModel(roomID: "1", via: [], clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController) } } diff --git a/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift b/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift index e1705b3882..b0c8e2c96d 100644 --- a/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift +++ b/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift @@ -29,7 +29,7 @@ class MessageForwardingScreenViewModelTests: XCTestCase { clientProxy: clientProxy, roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))), userIndicatorController: UserIndicatorControllerMock(), - mediaProvider: MockMediaProvider()) + mediaProvider: MediaProviderMock(configuration: .init())) context = viewModel.context } diff --git a/UnitTests/Sources/PillContextTests.swift b/UnitTests/Sources/PillContextTests.swift index 12b926b481..03b1b462e0 100644 --- a/UnitTests/Sources/PillContextTests.swift +++ b/UnitTests/Sources/PillContextTests.swift @@ -19,7 +19,7 @@ class PillContextTests: XCTestCase { proxyMock.membersPublisher = subject.asCurrentValuePublisher() let mock = TimelineViewModel(roomProxy: proxyMock, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, @@ -47,7 +47,7 @@ class PillContextTests: XCTestCase { proxyMock.membersPublisher = subject.asCurrentValuePublisher() let mock = TimelineViewModel(roomProxy: proxyMock, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, @@ -68,7 +68,7 @@ class PillContextTests: XCTestCase { mockController.roomProxy = proxyMock let mock = TimelineViewModel(roomProxy: proxyMock, timelineController: mockController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift b/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift index 427ff39e90..b78bb60c88 100644 --- a/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift @@ -196,7 +196,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase { roomProxy = JoinedRoomProxyMock(.init(members: .allMembersAsAdmin)) viewModel = RoomChangeRolesScreenViewModel(mode: mode, roomProxy: roomProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) } diff --git a/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift b/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift index ad79d87fa2..a21ec8c104 100644 --- a/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift @@ -111,7 +111,7 @@ class RoomDetailsEditScreenViewModelTests: XCTestCase { private func setupViewModel(roomProxyConfiguration: JoinedRoomProxyMockConfiguration) { userIndicatorController = UserIndicatorControllerMock.default viewModel = .init(roomProxy: JoinedRoomProxyMock(roomProxyConfiguration), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: userIndicatorController) } } diff --git a/UnitTests/Sources/RoomDetailsViewModelTests.swift b/UnitTests/Sources/RoomDetailsViewModelTests.swift index bd8e09abe1..0908be9190 100644 --- a/UnitTests/Sources/RoomDetailsViewModelTests.swift +++ b/UnitTests/Sources/RoomDetailsViewModelTests.swift @@ -26,7 +26,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxyMock, @@ -42,7 +42,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -65,7 +65,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -89,7 +89,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -143,7 +143,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -167,7 +167,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -202,7 +202,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -236,7 +236,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -271,7 +271,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -307,7 +307,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { canUserInvite: false)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -325,7 +325,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isPublic: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -362,7 +362,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { } viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -386,7 +386,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { } viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -410,7 +410,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { } viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -431,7 +431,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -452,7 +452,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { roomProxyMock = JoinedRoomProxyMock(.init(name: "Test", isDirect: true, isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()), @@ -471,7 +471,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneThrowableError = NotificationSettingsError.Generic(msg: "error") viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), analyticsService: ServiceLocator.shared.analytics, userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxyMock, diff --git a/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift b/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift index aa79f28b8a..25c8f61014 100644 --- a/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift +++ b/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift @@ -29,7 +29,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { viewModel = RoomMemberDetailsScreenViewModel(userID: roomMemberProxyMock.userID, roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) @@ -46,7 +46,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { viewModel = RoomMemberDetailsScreenViewModel(userID: roomMemberProxyMock.userID, roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) @@ -84,7 +84,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { viewModel = RoomMemberDetailsScreenViewModel(userID: roomMemberProxyMock.userID, roomProxy: roomProxyMock, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) @@ -121,7 +121,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { viewModel = RoomMemberDetailsScreenViewModel(userID: roomMemberProxyMock.userID, roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) @@ -157,7 +157,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { viewModel = RoomMemberDetailsScreenViewModel(userID: roomMemberProxyMock.userID, roomProxy: roomProxyMock, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) @@ -193,7 +193,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { viewModel = RoomMemberDetailsScreenViewModel(userID: roomMemberProxyMock.userID, roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) @@ -210,7 +210,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { viewModel = RoomMemberDetailsScreenViewModel(userID: roomMemberProxyMock.userID, roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) diff --git a/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift b/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift index ba4ccfb24e..8dd9f0cc9e 100644 --- a/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift @@ -279,7 +279,7 @@ class RoomMembersListScreenViewModelTests: XCTestCase { private func setup(with members: [RoomMemberProxyMock]) { roomProxy = JoinedRoomProxyMock(.init(name: "test", members: members)) viewModel = .init(roomProxy: roomProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) } diff --git a/UnitTests/Sources/RoomScreenViewModelTests.swift b/UnitTests/Sources/RoomScreenViewModelTests.swift index 20207bf013..da9196d2cb 100644 --- a/UnitTests/Sources/RoomScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomScreenViewModelTests.swift @@ -35,7 +35,7 @@ class RoomScreenViewModelTests: XCTestCase { roomProxyMock.underlyingActionsPublisher = updateSubject.eraseToAnyPublisher() let viewModel = RoomScreenViewModel(roomProxy: roomProxyMock, initialSelectedPinnedEventID: nil, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), ongoingCallRoomIDPublisher: .init(.init(nil)), appMediator: AppMediatorMock.default, appSettings: ServiceLocator.shared.settings, @@ -113,7 +113,7 @@ class RoomScreenViewModelTests: XCTestCase { roomProxyMock.underlyingPinnedEventsTimeline = pinnedTimelineMock let viewModel = RoomScreenViewModel(roomProxy: roomProxyMock, initialSelectedPinnedEventID: "test1", - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), ongoingCallRoomIDPublisher: .init(.init(nil)), appMediator: AppMediatorMock.default, appSettings: ServiceLocator.shared.settings, @@ -160,7 +160,7 @@ class RoomScreenViewModelTests: XCTestCase { roomProxyMock.underlyingActionsPublisher = updateSubject.eraseToAnyPublisher() let viewModel = RoomScreenViewModel(roomProxy: roomProxyMock, initialSelectedPinnedEventID: nil, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), ongoingCallRoomIDPublisher: .init(.init(nil)), appMediator: AppMediatorMock.default, appSettings: ServiceLocator.shared.settings, @@ -197,7 +197,7 @@ class RoomScreenViewModelTests: XCTestCase { let roomProxyMock = JoinedRoomProxyMock(.init(id: "MyRoomID")) let viewModel = RoomScreenViewModel(roomProxy: roomProxyMock, initialSelectedPinnedEventID: nil, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), ongoingCallRoomIDPublisher: ongoingCallRoomIDSubject.asCurrentValuePublisher(), appMediator: AppMediatorMock.default, appSettings: ServiceLocator.shared.settings, diff --git a/UnitTests/Sources/TimelineViewModelTests.swift b/UnitTests/Sources/TimelineViewModelTests.swift index 062aff86c7..d1dcfc69b3 100644 --- a/UnitTests/Sources/TimelineViewModelTests.swift +++ b/UnitTests/Sources/TimelineViewModelTests.swift @@ -303,7 +303,7 @@ class TimelineViewModelTests: XCTestCase { let viewModel = TimelineViewModel(roomProxy: roomProxy, timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: userIndicatorControllerMock, @@ -327,7 +327,7 @@ class TimelineViewModelTests: XCTestCase { timelineController.timelineItems = [message] let viewModel = TimelineViewModel(roomProxy: JoinedRoomProxyMock(.init(name: "", members: [RoomMemberProxyMock.mockAlice, RoomMemberProxyMock.mockCharlie])), timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: userIndicatorControllerMock, @@ -353,7 +353,7 @@ class TimelineViewModelTests: XCTestCase { let viewModel = TimelineViewModel(roomProxy: roomProxyMock, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: userIndicatorControllerMock, @@ -381,7 +381,7 @@ class TimelineViewModelTests: XCTestCase { let viewModel = TimelineViewModel(roomProxy: roomProxyMock, timelineController: MockRoomTimelineController(), - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: userIndicatorControllerMock, @@ -410,7 +410,7 @@ class TimelineViewModelTests: XCTestCase { TimelineViewModel(roomProxy: roomProxy ?? JoinedRoomProxyMock(.init(name: "")), focussedEventID: focussedEventID, timelineController: timelineController, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), mediaPlayerProvider: MediaPlayerProviderMock(), voiceMessageMediaManager: VoiceMessageMediaManagerMock(), userIndicatorController: userIndicatorControllerMock, diff --git a/UnitTests/Sources/UserProfileScreenViewModelTests.swift b/UnitTests/Sources/UserProfileScreenViewModelTests.swift index ecd4d2efda..f040de8c28 100644 --- a/UnitTests/Sources/UserProfileScreenViewModelTests.swift +++ b/UnitTests/Sources/UserProfileScreenViewModelTests.swift @@ -22,7 +22,7 @@ class UserProfileScreenViewModelTests: XCTestCase { viewModel = UserProfileScreenViewModel(userID: profile.userID, isPresentedModally: false, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) @@ -42,7 +42,7 @@ class UserProfileScreenViewModelTests: XCTestCase { viewModel = UserProfileScreenViewModel(userID: profile.userID, isPresentedModally: false, clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), + mediaProvider: MediaProviderMock(configuration: .init()), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) diff --git a/UnitTests/Sources/VoiceMessageMediaManagerTests.swift b/UnitTests/Sources/VoiceMessageMediaManagerTests.swift index 644bdd62ea..8d8ed12812 100644 --- a/UnitTests/Sources/VoiceMessageMediaManagerTests.swift +++ b/UnitTests/Sources/VoiceMessageMediaManagerTests.swift @@ -14,14 +14,14 @@ import XCTest class VoiceMessageMediaManagerTests: XCTestCase { private var voiceMessageMediaManager: VoiceMessageMediaManager! private var voiceMessageCache: VoiceMessageCacheMock! - private var mediaProvider: MockMediaProvider! + private var mediaProvider: MediaProviderMock! private let someURL = URL("/some/url") private let audioOGGMimeType = "audio/ogg" override func setUp() async throws { voiceMessageCache = VoiceMessageCacheMock() - mediaProvider = MockMediaProvider() + mediaProvider = MediaProviderMock(configuration: .init()) voiceMessageMediaManager = VoiceMessageMediaManager(mediaProvider: mediaProvider, voiceMessageCache: voiceMessageCache) } @@ -50,7 +50,7 @@ class VoiceMessageMediaManagerTests: XCTestCase { voiceMessageCache.fileURLForReturnValue = nil let mediaSource = MediaSourceProxy(url: someURL, mimeType: "audio/ogg; codecs=opus") - mediaProvider.loadFileFromSourceReturnValue = MediaFileHandleProxy.unmanaged(url: loadedFile) + mediaProvider.loadFileFromSourceBodyReturnValue = .success(MediaFileHandleProxy.unmanaged(url: loadedFile)) voiceMessageCache.cacheMediaSourceUsingMoveReturnValue = .success(cachedConvertedFileURL) voiceMessageMediaManager = VoiceMessageMediaManager(mediaProvider: mediaProvider, @@ -103,7 +103,7 @@ class VoiceMessageMediaManagerTests: XCTestCase { // Check if the file is not already present in cache voiceMessageCache.fileURLForReturnValue = nil let mediaSource = MediaSourceProxy(url: someURL, mimeType: audioOGGMimeType) - mediaProvider.loadFileFromSourceReturnValue = MediaFileHandleProxy.unmanaged(url: loadedFile) + mediaProvider.loadFileFromSourceBodyReturnValue = .success(MediaFileHandleProxy.unmanaged(url: loadedFile)) let audioConverter = AudioConverterMock() voiceMessageCache.cacheMediaSourceUsingMoveReturnValue = .success(cachedConvertedFileURL) voiceMessageMediaManager = VoiceMessageMediaManager(mediaProvider: mediaProvider, @@ -139,7 +139,7 @@ class VoiceMessageMediaManagerTests: XCTestCase { } let audioConverter = AudioConverterMock() - mediaProvider.loadFileFromSourceReturnValue = MediaFileHandleProxy.unmanaged(url: loadedFile) + mediaProvider.loadFileFromSourceBodyReturnValue = .success(MediaFileHandleProxy.unmanaged(url: loadedFile)) voiceMessageMediaManager = VoiceMessageMediaManager(mediaProvider: mediaProvider, voiceMessageCache: voiceMessageCache,