mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Update the SDK and handle breaking changes. (#2527)
This commit is contained in:
@@ -18,7 +18,7 @@ import Combine
|
||||
import Foundation
|
||||
|
||||
struct ClientProxyMockConfiguration {
|
||||
let userID: String
|
||||
var userID: String = RoomMemberProxyMock.mockMe.userID
|
||||
var deviceID: String?
|
||||
var roomSummaryProvider: RoomSummaryProviderProtocol? = RoomSummaryProviderMock(.init())
|
||||
}
|
||||
@@ -62,8 +62,8 @@ extension ClientProxyMock {
|
||||
searchUsersSearchTermLimitReturnValue = .success(.init(results: [], limited: false))
|
||||
profileForReturnValue = .success(.init(userID: "@a:b.com", displayName: "Some user"))
|
||||
sessionVerificationControllerProxyReturnValue = .failure(.failedRetrievingSessionVerificationController)
|
||||
ignoreUserReturnValue = .failure(.failedIgnoringUser)
|
||||
unignoreUserReturnValue = .failure(.failedUnignoringUser)
|
||||
ignoreUserReturnValue = .success(())
|
||||
unignoreUserReturnValue = .success(())
|
||||
|
||||
loadMediaContentForSourceThrowableError = ClientProxyError.failedLoadingMedia
|
||||
loadMediaThumbnailForSourceWidthHeightThrowableError = ClientProxyError.failedLoadingMedia
|
||||
|
||||
@@ -2253,11 +2253,6 @@ class RoomMemberProxyMock: RoomMemberProxyProtocol {
|
||||
set(value) { underlyingMembership = value }
|
||||
}
|
||||
var underlyingMembership: MembershipState!
|
||||
var isAccountOwner: Bool {
|
||||
get { return underlyingIsAccountOwner }
|
||||
set(value) { underlyingIsAccountOwner = value }
|
||||
}
|
||||
var underlyingIsAccountOwner: Bool!
|
||||
var isIgnored: Bool {
|
||||
get { return underlyingIsIgnored }
|
||||
set(value) { underlyingIsIgnored = value }
|
||||
@@ -2273,77 +2268,7 @@ class RoomMemberProxyMock: RoomMemberProxyProtocol {
|
||||
set(value) { underlyingRole = value }
|
||||
}
|
||||
var underlyingRole: RoomMemberRole!
|
||||
var canInviteUsers: Bool {
|
||||
get { return underlyingCanInviteUsers }
|
||||
set(value) { underlyingCanInviteUsers = value }
|
||||
}
|
||||
var underlyingCanInviteUsers: Bool!
|
||||
var canKickUsers: Bool {
|
||||
get { return underlyingCanKickUsers }
|
||||
set(value) { underlyingCanKickUsers = value }
|
||||
}
|
||||
var underlyingCanKickUsers: Bool!
|
||||
var canBanUsers: Bool {
|
||||
get { return underlyingCanBanUsers }
|
||||
set(value) { underlyingCanBanUsers = value }
|
||||
}
|
||||
var underlyingCanBanUsers: Bool!
|
||||
|
||||
//MARK: - ignoreUser
|
||||
|
||||
var ignoreUserCallsCount = 0
|
||||
var ignoreUserCalled: Bool {
|
||||
return ignoreUserCallsCount > 0
|
||||
}
|
||||
var ignoreUserReturnValue: Result<Void, RoomMemberProxyError>!
|
||||
var ignoreUserClosure: (() async -> Result<Void, RoomMemberProxyError>)?
|
||||
|
||||
func ignoreUser() async -> Result<Void, RoomMemberProxyError> {
|
||||
ignoreUserCallsCount += 1
|
||||
if let ignoreUserClosure = ignoreUserClosure {
|
||||
return await ignoreUserClosure()
|
||||
} else {
|
||||
return ignoreUserReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - unignoreUser
|
||||
|
||||
var unignoreUserCallsCount = 0
|
||||
var unignoreUserCalled: Bool {
|
||||
return unignoreUserCallsCount > 0
|
||||
}
|
||||
var unignoreUserReturnValue: Result<Void, RoomMemberProxyError>!
|
||||
var unignoreUserClosure: (() async -> Result<Void, RoomMemberProxyError>)?
|
||||
|
||||
func unignoreUser() async -> Result<Void, RoomMemberProxyError> {
|
||||
unignoreUserCallsCount += 1
|
||||
if let unignoreUserClosure = unignoreUserClosure {
|
||||
return await unignoreUserClosure()
|
||||
} else {
|
||||
return unignoreUserReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - canSendStateEvent
|
||||
|
||||
var canSendStateEventTypeCallsCount = 0
|
||||
var canSendStateEventTypeCalled: Bool {
|
||||
return canSendStateEventTypeCallsCount > 0
|
||||
}
|
||||
var canSendStateEventTypeReceivedType: StateEventType?
|
||||
var canSendStateEventTypeReceivedInvocations: [StateEventType] = []
|
||||
var canSendStateEventTypeReturnValue: Bool!
|
||||
var canSendStateEventTypeClosure: ((StateEventType) -> Bool)?
|
||||
|
||||
func canSendStateEvent(type: StateEventType) -> Bool {
|
||||
canSendStateEventTypeCallsCount += 1
|
||||
canSendStateEventTypeReceivedType = type
|
||||
canSendStateEventTypeReceivedInvocations.append(type)
|
||||
if let canSendStateEventTypeClosure = canSendStateEventTypeClosure {
|
||||
return canSendStateEventTypeClosure(type)
|
||||
} else {
|
||||
return canSendStateEventTypeReturnValue
|
||||
}
|
||||
}
|
||||
}
|
||||
class RoomNotificationSettingsProxyMock: RoomNotificationSettingsProxyProtocol {
|
||||
var mode: RoomNotificationModeProxy {
|
||||
@@ -2517,27 +2442,6 @@ class RoomProxyMock: RoomProxyProtocol {
|
||||
return reportContentReasonReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - ignoreUser
|
||||
|
||||
var ignoreUserCallsCount = 0
|
||||
var ignoreUserCalled: Bool {
|
||||
return ignoreUserCallsCount > 0
|
||||
}
|
||||
var ignoreUserReceivedUserID: String?
|
||||
var ignoreUserReceivedInvocations: [String] = []
|
||||
var ignoreUserReturnValue: Result<Void, RoomProxyError>!
|
||||
var ignoreUserClosure: ((String) async -> Result<Void, RoomProxyError>)?
|
||||
|
||||
func ignoreUser(_ userID: String) async -> Result<Void, RoomProxyError> {
|
||||
ignoreUserCallsCount += 1
|
||||
ignoreUserReceivedUserID = userID
|
||||
ignoreUserReceivedInvocations.append(userID)
|
||||
if let ignoreUserClosure = ignoreUserClosure {
|
||||
return await ignoreUserClosure(userID)
|
||||
} else {
|
||||
return ignoreUserReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - leaveRoom
|
||||
|
||||
var leaveRoomCallsCount = 0
|
||||
@@ -2846,6 +2750,48 @@ class RoomProxyMock: RoomProxyProtocol {
|
||||
return applyPowerLevelChangesReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - canUser
|
||||
|
||||
var canUserUserIDSendStateEventCallsCount = 0
|
||||
var canUserUserIDSendStateEventCalled: Bool {
|
||||
return canUserUserIDSendStateEventCallsCount > 0
|
||||
}
|
||||
var canUserUserIDSendStateEventReceivedArguments: (userID: String, event: StateEventType)?
|
||||
var canUserUserIDSendStateEventReceivedInvocations: [(userID: String, event: StateEventType)] = []
|
||||
var canUserUserIDSendStateEventReturnValue: Result<Bool, RoomProxyError>!
|
||||
var canUserUserIDSendStateEventClosure: ((String, StateEventType) async -> Result<Bool, RoomProxyError>)?
|
||||
|
||||
func canUser(userID: String, sendStateEvent event: StateEventType) async -> Result<Bool, RoomProxyError> {
|
||||
canUserUserIDSendStateEventCallsCount += 1
|
||||
canUserUserIDSendStateEventReceivedArguments = (userID: userID, event: event)
|
||||
canUserUserIDSendStateEventReceivedInvocations.append((userID: userID, event: event))
|
||||
if let canUserUserIDSendStateEventClosure = canUserUserIDSendStateEventClosure {
|
||||
return await canUserUserIDSendStateEventClosure(userID, event)
|
||||
} else {
|
||||
return canUserUserIDSendStateEventReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - canUserInvite
|
||||
|
||||
var canUserInviteUserIDCallsCount = 0
|
||||
var canUserInviteUserIDCalled: Bool {
|
||||
return canUserInviteUserIDCallsCount > 0
|
||||
}
|
||||
var canUserInviteUserIDReceivedUserID: String?
|
||||
var canUserInviteUserIDReceivedInvocations: [String] = []
|
||||
var canUserInviteUserIDReturnValue: Result<Bool, RoomProxyError>!
|
||||
var canUserInviteUserIDClosure: ((String) async -> Result<Bool, RoomProxyError>)?
|
||||
|
||||
func canUserInvite(userID: String) async -> Result<Bool, RoomProxyError> {
|
||||
canUserInviteUserIDCallsCount += 1
|
||||
canUserInviteUserIDReceivedUserID = userID
|
||||
canUserInviteUserIDReceivedInvocations.append(userID)
|
||||
if let canUserInviteUserIDClosure = canUserInviteUserIDClosure {
|
||||
return await canUserInviteUserIDClosure(userID)
|
||||
} else {
|
||||
return canUserInviteUserIDReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - canUserRedactOther
|
||||
|
||||
var canUserRedactOtherUserIDCallsCount = 0
|
||||
@@ -2888,6 +2834,48 @@ class RoomProxyMock: RoomProxyProtocol {
|
||||
return canUserRedactOwnUserIDReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - canUserKick
|
||||
|
||||
var canUserKickUserIDCallsCount = 0
|
||||
var canUserKickUserIDCalled: Bool {
|
||||
return canUserKickUserIDCallsCount > 0
|
||||
}
|
||||
var canUserKickUserIDReceivedUserID: String?
|
||||
var canUserKickUserIDReceivedInvocations: [String] = []
|
||||
var canUserKickUserIDReturnValue: Result<Bool, RoomProxyError>!
|
||||
var canUserKickUserIDClosure: ((String) async -> Result<Bool, RoomProxyError>)?
|
||||
|
||||
func canUserKick(userID: String) async -> Result<Bool, RoomProxyError> {
|
||||
canUserKickUserIDCallsCount += 1
|
||||
canUserKickUserIDReceivedUserID = userID
|
||||
canUserKickUserIDReceivedInvocations.append(userID)
|
||||
if let canUserKickUserIDClosure = canUserKickUserIDClosure {
|
||||
return await canUserKickUserIDClosure(userID)
|
||||
} else {
|
||||
return canUserKickUserIDReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - canUserBan
|
||||
|
||||
var canUserBanUserIDCallsCount = 0
|
||||
var canUserBanUserIDCalled: Bool {
|
||||
return canUserBanUserIDCallsCount > 0
|
||||
}
|
||||
var canUserBanUserIDReceivedUserID: String?
|
||||
var canUserBanUserIDReceivedInvocations: [String] = []
|
||||
var canUserBanUserIDReturnValue: Result<Bool, RoomProxyError>!
|
||||
var canUserBanUserIDClosure: ((String) async -> Result<Bool, RoomProxyError>)?
|
||||
|
||||
func canUserBan(userID: String) async -> Result<Bool, RoomProxyError> {
|
||||
canUserBanUserIDCallsCount += 1
|
||||
canUserBanUserIDReceivedUserID = userID
|
||||
canUserBanUserIDReceivedInvocations.append(userID)
|
||||
if let canUserBanUserIDClosure = canUserBanUserIDClosure {
|
||||
return await canUserBanUserIDClosure(userID)
|
||||
} else {
|
||||
return canUserBanUserIDReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - canUserTriggerRoomNotification
|
||||
|
||||
var canUserTriggerRoomNotificationUserIDCallsCount = 0
|
||||
|
||||
@@ -21,15 +21,12 @@ struct RoomMemberProxyMockConfiguration {
|
||||
var userID: String
|
||||
var displayName: String?
|
||||
var avatarURL: URL?
|
||||
|
||||
var membership: MembershipState
|
||||
var isAccountOwner = false
|
||||
var isIgnored = false
|
||||
|
||||
var powerLevel = 0
|
||||
var role = RoomMemberRole.user
|
||||
var canInviteUsers = false
|
||||
var canKickUsers = false
|
||||
var canBanUsers = false
|
||||
var canSendStateEvent: (StateEventType) -> Bool = { _ in true }
|
||||
}
|
||||
|
||||
extension RoomMemberProxyMock {
|
||||
@@ -38,15 +35,12 @@ extension RoomMemberProxyMock {
|
||||
userID = configuration.userID
|
||||
displayName = configuration.displayName
|
||||
avatarURL = configuration.avatarURL
|
||||
|
||||
membership = configuration.membership
|
||||
isAccountOwner = configuration.isAccountOwner
|
||||
isIgnored = configuration.isIgnored
|
||||
|
||||
powerLevel = configuration.powerLevel
|
||||
role = configuration.role
|
||||
canInviteUsers = configuration.canInviteUsers
|
||||
canKickUsers = configuration.canKickUsers
|
||||
canBanUsers = configuration.canBanUsers
|
||||
canSendStateEventTypeClosure = configuration.canSendStateEvent
|
||||
}
|
||||
|
||||
// Mocks
|
||||
@@ -54,9 +48,7 @@ extension RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@me:matrix.org",
|
||||
displayName: "Me",
|
||||
avatarURL: URL.picturesDirectory,
|
||||
membership: .join,
|
||||
isAccountOwner: true,
|
||||
canInviteUsers: true))
|
||||
membership: .join))
|
||||
}
|
||||
|
||||
static var mockMeAdmin: RoomMemberProxyMock {
|
||||
@@ -64,12 +56,8 @@ extension RoomMemberProxyMock {
|
||||
displayName: "Me admin",
|
||||
avatarURL: URL.picturesDirectory,
|
||||
membership: .join,
|
||||
isAccountOwner: true,
|
||||
powerLevel: 100,
|
||||
role: .administrator,
|
||||
canInviteUsers: true,
|
||||
canKickUsers: true,
|
||||
canBanUsers: true))
|
||||
role: .administrator))
|
||||
}
|
||||
|
||||
static var mockAlice: RoomMemberProxyMock {
|
||||
@@ -117,15 +105,6 @@ extension RoomMemberProxyMock {
|
||||
isIgnored: true))
|
||||
}
|
||||
|
||||
static func mockOwner(allowedStateEvents: [StateEventType], canInviteUsers: Bool = true) -> RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@foo:some.org",
|
||||
displayName: "User owner",
|
||||
membership: .join,
|
||||
isAccountOwner: true,
|
||||
canInviteUsers: canInviteUsers,
|
||||
canSendStateEvent: { allowedStateEvents.contains($0) }))
|
||||
}
|
||||
|
||||
static var mockAdmin: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@admin:matrix.org",
|
||||
displayName: "Arthur",
|
||||
|
||||
@@ -43,8 +43,9 @@ struct RoomProxyMockConfiguration {
|
||||
|
||||
var members: [RoomMemberProxyMock] = .allMembers
|
||||
var memberForID: RoomMemberProxyMock = .mockMe
|
||||
var ownUserID = "@alice:somewhere.org"
|
||||
|
||||
var ownUserID = RoomMemberProxyMock.mockMe.userID
|
||||
|
||||
var canUserInvite = true
|
||||
var canUserTriggerRoomNotification = false
|
||||
var canUserJoinCall = true
|
||||
}
|
||||
@@ -89,7 +90,17 @@ extension RoomProxyMock {
|
||||
|
||||
currentPowerLevelChangesReturnValue = .success(.init())
|
||||
applyPowerLevelChangesReturnValue = .success(())
|
||||
canUserUserIDSendStateEventClosure = { [weak self] userID, _ in
|
||||
.success(self?.membersPublisher.value.first { $0.userID == userID }?.role ?? .user != .user)
|
||||
}
|
||||
canUserInviteUserIDReturnValue = .success(configuration.canUserInvite)
|
||||
canUserRedactOtherUserIDReturnValue = .success(false)
|
||||
canUserKickUserIDClosure = { [weak self] userID in
|
||||
.success(self?.membersPublisher.value.first { $0.userID == userID }?.role ?? .user != .user)
|
||||
}
|
||||
canUserBanUserIDClosure = { [weak self] userID in
|
||||
.success(self?.membersPublisher.value.first { $0.userID == userID }?.role ?? .user != .user)
|
||||
}
|
||||
canUserTriggerRoomNotificationUserIDReturnValue = .success(configuration.canUserTriggerRoomNotification)
|
||||
canUserJoinCallUserIDReturnValue = .success(configuration.canUserJoinCall)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user