MockMediaProvider → MediaProviderMock.

This commit is contained in:
Doug 2024-10-02 17:41:08 +01:00 committed by Doug
parent 77e4fae2fb
commit 5522871dd9
65 changed files with 636 additions and 219 deletions

View File

@ -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 = "<group>"; };
4FA29BAE9B0F2D90E57B261C /* UserSessionFlowCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionFlowCoordinatorTests.swift; sourceTree = "<group>"; };
4FCB2126C091EEF2454B4D56 /* RoomFlowCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomFlowCoordinatorTests.swift; sourceTree = "<group>"; };
4FD6E621CC5E6D4830D96D2D /* MockMediaProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockMediaProvider.swift; sourceTree = "<group>"; };
4FDD775CFD72DD2D3C8A8390 /* NotificationSettingsProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsProxyProtocol.swift; sourceTree = "<group>"; };
502F986D57158674172C58E3 /* AppLockSetupSettingsScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupSettingsScreenModels.swift; sourceTree = "<group>"; };
505208F28007C0FEC14E1FF0 /* HomeScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeScreenViewModelTests.swift; sourceTree = "<group>"; };
@ -1680,6 +1678,7 @@
6F1C3CBBC62C566DDF5E84C1 /* TimelineItemMenuAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemMenuAction.swift; sourceTree = "<group>"; };
6F3DFE5B444F131648066F05 /* StateStoreViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateStoreViewModel.swift; sourceTree = "<group>"; };
6F418426410F3823F3EB0828 /* WebRegistrationScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebRegistrationScreenViewModelProtocol.swift; sourceTree = "<group>"; };
6F65E4BB9E82EB8373207CF8 /* MediaProviderMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaProviderMock.swift; sourceTree = "<group>"; };
6F6E6EDC4BBF962B2ED595A4 /* MessageForwardingScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageForwardingScreenViewModelTests.swift; sourceTree = "<group>"; };
6FA38E813BE14149F173F461 /* PinnedEventsBannerStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinnedEventsBannerStateTests.swift; sourceTree = "<group>"; };
6FC5015B9634698BDB8701AF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = it; path = it.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
@ -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 = "<group>";
@ -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 */,

View File

@ -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<UIImage, MediaProviderError>!
var loadImageFromSourceSizeReturnValue: Result<UIImage, MediaProviderError>! {
get {
if Thread.isMainThread {
return loadImageFromSourceSizeUnderlyingReturnValue
} else {
var returnValue: Result<UIImage, MediaProviderError>? = 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<UIImage, MediaProviderError>)?
func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result<UIImage, MediaProviderError> {
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<Data, MediaProviderError>!
var loadImageDataFromSourceReturnValue: Result<Data, MediaProviderError>! {
get {
if Thread.isMainThread {
return loadImageDataFromSourceUnderlyingReturnValue
} else {
var returnValue: Result<Data, MediaProviderError>? = 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<Data, MediaProviderError>)?
func loadImageDataFromSource(_ source: MediaSourceProxy) async -> Result<Data, MediaProviderError> {
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<UIImage, Error>!
var loadImageRetryingOnReconnectionSizeReturnValue: Task<UIImage, Error>! {
get {
if Thread.isMainThread {
return loadImageRetryingOnReconnectionSizeUnderlyingReturnValue
} else {
var returnValue: Task<UIImage, Error>? = 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<UIImage, Error>)?
func loadImageRetryingOnReconnection(_ source: MediaSourceProxy, size: CGSize?) -> Task<UIImage, Error> {
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<Data, MediaProviderError>!
var loadThumbnailForSourceSourceSizeReturnValue: Result<Data, MediaProviderError>! {
get {
if Thread.isMainThread {
return loadThumbnailForSourceSourceSizeUnderlyingReturnValue
} else {
var returnValue: Result<Data, MediaProviderError>? = 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<Data, MediaProviderError>)?
func loadThumbnailForSource(source: MediaSourceProxy, size: CGSize) async -> Result<Data, MediaProviderError> {
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<MediaFileHandleProxy, MediaProviderError>!
var loadFileFromSourceBodyReturnValue: Result<MediaFileHandleProxy, MediaProviderError>! {
get {
if Thread.isMainThread {
return loadFileFromSourceBodyUnderlyingReturnValue
} else {
var returnValue: Result<MediaFileHandleProxy, MediaProviderError>? = 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<MediaFileHandleProxy, MediaProviderError>)?
func loadFileFromSource(_ source: MediaSourceProxy, body: String?) async -> Result<MediaFileHandleProxy, MediaProviderError> {
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<NetworkMonitorReachability, Never> {
get { return underlyingReachabilityPublisher }

View File

@ -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
}
}
}
}

View File

@ -17,7 +17,7 @@ extension UserSessionMock {
self.init()
clientProxy = configuration.clientProxy
mediaProvider = MockMediaProvider()
mediaProvider = MediaProviderMock(configuration: .init())
voiceMessageMediaManager = VoiceMessageMediaManagerMock()
sessionSecurityStatePublisher = CurrentValueSubject<SessionSecurityState, Never>(.init(verificationState: .verified, recoveryState: .enabled)).asCurrentValuePublisher()

View File

@ -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

View File

@ -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,

View File

@ -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)

View File

@ -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()))
}
}
}

View File

@ -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)

View File

@ -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()

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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())
}()

View File

@ -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)
}
}

View File

@ -168,7 +168,7 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
via: [],
allowKnocking: true,
clientProxy: clientProxy,
mediaProvider: MockMediaProvider(),
mediaProvider: MediaProviderMock(configuration: .init()),
userIndicatorController: ServiceLocator.shared.userIndicatorController)
}
}

View File

@ -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)

View File

@ -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(),

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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)
}()

View File

@ -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,

View File

@ -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()
}

View File

@ -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 {

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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 {

View File

@ -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 }
}
}

View File

@ -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())

View File

@ -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()))

View File

@ -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())

View File

@ -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,

View File

@ -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()
}

View File

@ -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,

View File

@ -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 {

View File

@ -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,

View File

@ -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")
}
}

View File

@ -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(),

View File

@ -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,

View File

@ -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)
}
}

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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)
}

View File

@ -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<UIImage, MediaProviderError>

View File

@ -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<Data, MediaProviderError> {
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<UIImage, MediaProviderError> {
guard let image = UIImage(systemName: "photo") else {
fatalError()
}
return .success(image)
}
func loadImageDataFromSource(_ source: MediaSourceProxy) async -> Result<Data, MediaProviderError> {
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<MediaFileHandleProxy, MediaProviderError> {
if let loadFileFromSourceReturnValue {
return .success(loadFileFromSourceReturnValue)
}
return .failure(.failedRetrievingFile)
}
func loadImageRetryingOnReconnection(_ source: MediaSourceProxy, size: CGSize?) -> Task<UIImage, any Error> {
Task {
guard let image = UIImage(systemName: "photo") else {
fatalError()
}
return image
}
}
}

View File

@ -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))

View File

@ -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 }) }

View File

@ -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)

View File

@ -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
}

View File

@ -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])

View File

@ -63,7 +63,7 @@ class JoinRoomScreenViewModelTests: XCTestCase {
viewModel = JoinRoomScreenViewModel(roomID: "1",
via: [],
clientProxy: clientProxy,
mediaProvider: MockMediaProvider(),
mediaProvider: MediaProviderMock(configuration: .init()),
userIndicatorController: ServiceLocator.shared.userIndicatorController)
}
}

View File

@ -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
}

View File

@ -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,

View File

@ -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)
}

View File

@ -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)
}
}

View File

@ -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,

View File

@ -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)

View File

@ -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)
}

View File

@ -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,

View File

@ -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,

View File

@ -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)

View File

@ -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,