mirror of
https://github.com/ichmagmaus111/ghostgram.git
synced 2026-11-03 14:17:19 +01:00
Ghostgram for iOS, rebuilt from scratch on Telegram iOS 13.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
2.8 KiB
Swift
39 lines
2.8 KiB
Swift
import XCTest
|
|
@testable import TelegramCore
|
|
|
|
final class CdnPartValidationTests: XCTestCase {
|
|
func testRedirectKeyMaterialMustBeAes256CtrSized() {
|
|
XCTAssertTrue(cdnRedirectKeyMaterialIsValid(encryptionKey: Data(count: 32), encryptionIv: Data(count: 16)))
|
|
XCTAssertFalse(cdnRedirectKeyMaterialIsValid(encryptionKey: Data(count: 32), encryptionIv: Data(count: 2)))
|
|
XCTAssertFalse(cdnRedirectKeyMaterialIsValid(encryptionKey: Data(count: 32), encryptionIv: Data()))
|
|
XCTAssertFalse(cdnRedirectKeyMaterialIsValid(encryptionKey: Data(count: 32), encryptionIv: Data(count: 32)))
|
|
XCTAssertFalse(cdnRedirectKeyMaterialIsValid(encryptionKey: Data(count: 16), encryptionIv: Data(count: 16)))
|
|
}
|
|
|
|
func testFullPartsAreAcceptedAndOversizedPartsAreNot() {
|
|
XCTAssertTrue(cdnPartLengthIsAcceptable(offset: 0, requestedLength: 131072, receivedLength: 131072, knownSize: nil))
|
|
XCTAssertTrue(cdnPartLengthIsAcceptable(offset: 131072, requestedLength: 131072, receivedLength: 131072, knownSize: 1_000_000))
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 0, requestedLength: 131072, receivedLength: 131073, knownSize: nil))
|
|
}
|
|
|
|
func testPartsRunningPastTheDeclaredEndAreRejected() {
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 917504, requestedLength: 131072, receivedLength: 131072, knownSize: 1_000_000))
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 917504, requestedLength: 131072, receivedLength: 82497, knownSize: 1_000_000))
|
|
}
|
|
|
|
func testShortPartIsAcceptedOnlyAtTheDeclaredEnd() {
|
|
XCTAssertTrue(cdnPartLengthIsAcceptable(offset: 917504, requestedLength: 131072, receivedLength: 82496, knownSize: 1_000_000))
|
|
XCTAssertTrue(cdnPartLengthIsAcceptable(offset: 1_048_576, requestedLength: 131072, receivedLength: 0, knownSize: 1_048_576))
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 1_048_576, requestedLength: 131072, receivedLength: 0, knownSize: 4_000_000))
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 0, requestedLength: 262144, receivedLength: 131072, knownSize: 4_000_000))
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 917504, requestedLength: 131072, receivedLength: 65536, knownSize: 1_000_000))
|
|
}
|
|
|
|
func testShortPartOfAFileOfUnknownSizeMustEndInsideAHashBlock() {
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 1_048_576, requestedLength: 131072, receivedLength: 0, knownSize: nil))
|
|
XCTAssertFalse(cdnPartLengthIsAcceptable(offset: 0, requestedLength: 262144, receivedLength: 131072, knownSize: nil))
|
|
XCTAssertTrue(cdnPartLengthIsAcceptable(offset: 0, requestedLength: 131072, receivedLength: 1000, knownSize: nil))
|
|
XCTAssertTrue(cdnPartLengthIsAcceptable(offset: 131072, requestedLength: 262144, receivedLength: 131073, knownSize: nil))
|
|
}
|
|
}
|