Files
2021-10-05 18:55:34 +03:00

75 lines
2.5 KiB
Swift

//
// Created by Dimitrios Chatzieleftheriou on 01/06/2020.
// Copyright © 2020 Decimal. All rights reserved.
//
import AudioToolbox.AudioFile
import XCTest
@testable import AudioStreaming
class HTTPHeaderParserTests: XCTestCase {
func testReturnNilWhenHeaderFieldsAreEmpty() throws {
// Given
let parser = HTTPHeaderParser()
// When
let httpURLResponse = HTTPURLResponse(url: URL(string: "www.google.com")!,
statusCode: 200,
httpVersion: "",
headerFields: [:])
let output = parser.parse(input: httpURLResponse!)
// Then
// should return nil on empty headers
XCTAssertNil(output)
}
func testReturnCorrectValuesOnNormalRequest() throws {
// Given
let parser = HTTPHeaderParser()
// When
let headers: [String: String] =
[HeaderField.contentLength: "1000",
HeaderField.contentType: "audio/mp3",
IcyHeaderField.icyMetaint: "16000"]
let httpURLResponse = HTTPURLResponse(url: URL(string: "www.google.com")!,
statusCode: 200,
httpVersion: "",
headerFields: headers)
let output = parser.parse(input: httpURLResponse!)
// Then
XCTAssertNotNil(output)
XCTAssertEqual(output!.fileLength, 1000)
XCTAssertEqual(output!.typeId, kAudioFileMP3Type)
XCTAssertEqual(output!.metadataStep, 16000)
}
func testReturnCorectValuesOnCaseInsensitiveHeaderFiels() throws {
// Given
let parser = HTTPHeaderParser()
// When
let headers: [String: String] =
[HeaderField.contentLength.lowercased(): "1000",
HeaderField.contentType.lowercased(): "audio/mp3",
IcyHeaderField.icyMetaint.lowercased(): "16000"]
let httpURLResponse = HTTPURLResponse(url: URL(string: "www.google.com")!,
statusCode: 200,
httpVersion: "",
headerFields: headers)
let output = parser.parse(input: httpURLResponse!)
// Then
XCTAssertNotNil(output)
XCTAssertEqual(output!.fileLength, 1000)
XCTAssertEqual(output!.typeId, kAudioFileMP3Type)
XCTAssertEqual(output!.metadataStep, 16000)
}
}