Update the SDK. (#3565)

* Update the SDK.

* Add mockMXC URLs to fix all the crashes during tests.

* Refactor Voice Messages to not use a MediaSource for local files.
This commit is contained in:
Doug
2024-11-28 08:34:38 +00:00
committed by GitHub
parent e70a95cfa2
commit 751be7b3a7
75 changed files with 222 additions and 590 deletions
@@ -43,9 +43,7 @@ class VoiceMessageRecorderTests: XCTestCase {
audioPlayer.state = .stopped
mediaPlayerProvider = MediaPlayerProviderMock()
mediaPlayerProvider.playerForClosure = { _ in
.success(self.audioPlayer)
}
mediaPlayerProvider.player = audioPlayer
audioConverter = AudioConverterMock()
voiceMessageCache = VoiceMessageCacheMock()
voiceMessageCache.urlForRecording = FileManager.default.temporaryDirectory.appendingPathComponent("test-voice-message").appendingPathExtension("m4a")
@@ -121,11 +119,10 @@ class VoiceMessageRecorderTests: XCTestCase {
return
}
XCTAssertEqual(voiceMessageRecorder.previewAudioPlayerState?.isAttached, true)
XCTAssert(audioPlayer.loadMediaSourceUsingAutoplayCalled)
XCTAssertEqual(audioPlayer.loadMediaSourceUsingAutoplayReceivedArguments?.url, recordingURL)
XCTAssertEqual(audioPlayer.loadMediaSourceUsingAutoplayReceivedArguments?.mediaSource.mimeType, "audio/m4a")
XCTAssertEqual(audioPlayer.loadMediaSourceUsingAutoplayReceivedArguments?.mediaSource.url, recordingURL)
XCTAssertEqual(audioPlayer.loadMediaSourceUsingAutoplayReceivedArguments?.autoplay, true)
XCTAssert(audioPlayer.loadSourceURLPlaybackURLAutoplayCalled)
XCTAssertEqual(audioPlayer.loadSourceURLPlaybackURLAutoplayReceivedArguments?.sourceURL, recordingURL)
XCTAssertEqual(audioPlayer.loadSourceURLPlaybackURLAutoplayReceivedArguments?.playbackURL, recordingURL)
XCTAssertEqual(audioPlayer.loadSourceURLPlaybackURLAutoplayReceivedArguments?.autoplay, true)
XCTAssertFalse(audioPlayer.playCalled)
}
@@ -141,7 +138,7 @@ class VoiceMessageRecorderTests: XCTestCase {
func testResumePlayback() async throws {
try await setRecordingComplete()
audioPlayer.url = recordingURL
audioPlayer.playbackURL = recordingURL
guard case .success = await voiceMessageRecorder.startPlayback() else {
XCTFail("Playback should start")
@@ -149,7 +146,7 @@ class VoiceMessageRecorderTests: XCTestCase {
}
XCTAssertEqual(voiceMessageRecorder.previewAudioPlayerState?.isAttached, true)
// The media must not have been reloaded
XCTAssertFalse(audioPlayer.loadMediaSourceUsingAutoplayCalled)
XCTAssertFalse(audioPlayer.loadSourceURLPlaybackURLAutoplayCalled)
XCTAssertTrue(audioPlayer.playCalled)
}