From 9a2482aa3b062ae5c04e092e74e59e029e193441 Mon Sep 17 00:00:00 2001 From: GErP83 Date: Tue, 14 Mar 2023 20:25:57 +0100 Subject: [PATCH 1/2] simplify md outputs --- .../Codable/TestResultMarkdownEncoder.swift | 24 +- Sources/testify/main.swift | 8 +- Tests/Assets/md/Alamofire.md | 1556 ++++++++--------- Tests/Assets/md/Kitura.md | 720 ++++---- Tests/Assets/md/PromiseFailure.md | 240 +-- Tests/Assets/md/PromiseUnexpectedFailure.md | 8 +- Tests/Assets/md/Shell.md | 18 +- Tests/Assets/md/ShellFailure.md | 20 +- Tests/Assets/md/ShellOutFailure.md | 34 +- .../TestifyMarkdownTests.swift | 4 +- 10 files changed, 1307 insertions(+), 1325 deletions(-) diff --git a/Sources/TestifySDK/Codable/TestResultMarkdownEncoder.swift b/Sources/TestifySDK/Codable/TestResultMarkdownEncoder.swift index 877e246..5713464 100644 --- a/Sources/TestifySDK/Codable/TestResultMarkdownEncoder.swift +++ b/Sources/TestifySDK/Codable/TestResultMarkdownEncoder.swift @@ -25,17 +25,15 @@ public struct TestResultMarkdownEncoder: TestResultEncoder { let successCount = suite.cases.reduce(0) { $0 + ($1.outcome == .success ? 1 : 0) } let failureCount = suite.cases.reduce(0) { $0 + ($1.outcome == .failure ? 1 : 0) } - result += "\(name): \(count) tests were completed in \(time) with \(successCount) passed, \(failureCount) failed and \(0) skipped.\n\n" - result += "| Test case | Passed | Failed | Skipped | Time |\n" - result += "| :--- | ---: | ---: | ---: | ---: |\n" + result += "\(name): \(count) tests were completed in \(time) with \(successCount) passed, \(failureCount) failed.\n\n" + result += "| Test case | Result | Time |\n" + result += "| :--- | ---: | ---: |\n" for testCase in suite.cases { let name = testCase.testName - let passed = testCase.outcome == .success ? "✅" : "" - let failed = testCase.outcome == .failure ? "❌" : "" - let skipped = "🔀" + let testResult = testCase.outcome == .success ? "✅" : "❌" let time = "\(testCase.duration)s ⌛️" - result += "| \(name) | \(passed) | \(failed) | \(skipped) | \(time) |\n" + result += "| \(name) | \(testResult) | \(time) |\n" } } @@ -43,15 +41,3 @@ public struct TestResultMarkdownEncoder: TestResultEncoder { return result } } - -/* -| git status lorem ipsum dolor sit amet | git status | git status | 0 | 12.32s | -| git diff | git diff | git diff | 0 | 123.323s | -| git diff | git diff | git diff | 0 | 123.323s | -| git diff | git diff | git diff | 0 | 123.323s | -| [git diff](Sources/test/test.swift#L4) | git diff ✅ | git diff ❌ | 0 🔀 | 123.323s ⌛️ | -| git diff | git diff ✅ | git diff ❌ | 0 🔀 | 123.323s ⌛️ | -| git diff | git diff ✅ | git diff ❌ | 0 🔀 | 123.323s ⌛️ | -| git diff | git diff ✅ | git diff ❌ | 0 🔀 | 123.323s ⌛️ | -| git diff | git diff ✅ | git diff ❌ | 0 🔀 | 123.323s ⌛️ | -*/ diff --git a/Sources/testify/main.swift b/Sources/testify/main.swift index fb85b26..c790794 100644 --- a/Sources/testify/main.swift +++ b/Sources/testify/main.swift @@ -10,16 +10,12 @@ import TestifySDK let args = CommandLine.arguments var format: String = OutputFormat.json.rawValue -let msg = "Testify output format is" if (args.count >= 2) { if let enumCase = OutputFormat(rawValue: args[1]) { format = enumCase.rawValue - print(msg, "'\(format)'") } else { - print("Unknown Testify output format, the format is 'json' for now. Available formats: 'json', 'junit', 'md'") + fatalError("Error: Unknown output format. Available formats: 'json', 'junit', 'md'") } -} else { - print(msg, "'json'") } var data: Data @@ -50,5 +46,5 @@ case OutputFormat.md.rawValue: print(mdData) default: - print("Unknown output format") + fatalError("Error: Unknown output format") } diff --git a/Tests/Assets/md/Alamofire.md b/Tests/Assets/md/Alamofire.md index 1073ea3..51fe1f0 100644 --- a/Tests/Assets/md/Alamofire.md +++ b/Tests/Assets/md/Alamofire.md @@ -1,778 +1,778 @@ -AutomaticValidationTestCase: 5 tests were completed in 1.502 with 5 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatValidationForRequestWithAcceptableComplexContentTypeResponseSucceeds | ✅ | | 🔀 | 0.786s ⌛️ | -| testThatValidationForRequestWithAcceptableStatusCodeAndContentTypeResponseSucceeds | ✅ | | 🔀 | 0.178s ⌛️ | -| testThatValidationForRequestWithAcceptableWildcardContentTypeResponseSucceeds | ✅ | | 🔀 | 0.179s ⌛️ | -| testThatValidationForRequestWithUnacceptableContentTypeResponseFails | ✅ | | 🔀 | 0.18s ⌛️ | -| testThatValidationForRequestWithUnacceptableStatusCodeResponseFails | ✅ | | 🔀 | 0.179s ⌛️ | - -BasicAuthenticationTestCase: 3 tests were completed in 2.3680000000000003 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testHiddenHTTPBasicAuthentication | ✅ | | 🔀 | 0.348s ⌛️ | -| testHTTPBasicAuthenticationWithInvalidCredentials | ✅ | | 🔀 | 1.066s ⌛️ | -| testHTTPBasicAuthenticationWithValidCredentials | ✅ | | 🔀 | 0.954s ⌛️ | - -CacheTestCase: 5 tests were completed in 13.501999999999999 with 5 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testDefaultCachePolicy | ✅ | | 🔀 | 3.235s ⌛️ | -| testIgnoreLocalCacheDataPolicy | ✅ | | 🔀 | 3.221s ⌛️ | -| testURLCacheContainsCachedResponsesForAllRequests | ✅ | | 🔀 | 2.298s ⌛️ | -| testUseLocalCacheDataAndDontLoadFromNetworkPolicy | ✅ | | 🔀 | 2.364s ⌛️ | -| testUseLocalCacheDataIfExistsOtherwiseLoadFromNetworkPolicy | ✅ | | 🔀 | 2.384s ⌛️ | - -ContentTypeValidationTestCase: 6 tests were completed in 1.605 with 6 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatValidationForRequestWithAcceptableContentTypeResponseSucceeds | ✅ | | 🔀 | 0.184s ⌛️ | -| testThatValidationForRequestWithAcceptableWildcardContentTypeResponseSucceeds | ✅ | | 🔀 | 0.182s ⌛️ | -| testThatValidationForRequestWithAcceptableWildcardContentTypeResponseSucceedsWhenResponseIsNil | ✅ | | 🔀 | 0.679s ⌛️ | -| testThatValidationForRequestWithNoAcceptableContentTypeResponseFails | ✅ | | 🔀 | 0.183s ⌛️ | -| testThatValidationForRequestWithNoAcceptableContentTypeResponseSucceedsWhenNoDataIsReturned | ✅ | | 🔀 | 0.185s ⌛️ | -| testThatValidationForRequestWithUnacceptableContentTypeResponseFails | ✅ | | 🔀 | 0.192s ⌛️ | - -CustomResponseSerializerTestCases: 1 tests were completed in 0.187 with 1 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatCustomResponseSerializersCanBeWrittenWithoutCompilerIssues | ✅ | | 🔀 | 0.187s ⌛️ | - -CustomValidationTestCase: 4 tests were completed in 0.73 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatCustomValidationCanThrowCustomError | ✅ | | 🔀 | 0.193s ⌛️ | -| testThatCustomValidationClosureHasAccessToServerResponseData | ✅ | | 🔀 | 0.179s ⌛️ | -| testThatValidationExtensionCanThrowCustomError | ✅ | | 🔀 | 0.177s ⌛️ | -| testThatValidationExtensionHasAccessToServerResponseData | ✅ | | 🔀 | 0.181s ⌛️ | - -DataResponseSerializationTestCase: 22 tests were completed in 0.059000000000000025 with 22 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatDataResponseSerializerFailsWhenDataIsNil | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDataResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDataResponseSerializerFailsWhenErrorIsNotNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDataResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDataResponseSerializerSucceedsWhenDataIsNotNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONResponseSerializerFailsWhenDataIsEmpty | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONResponseSerializerFailsWhenDataIsInvalidJSON | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatJSONResponseSerializerFailsWhenDataIsNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONResponseSerializerFailsWhenErrorIsNotNil | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerSucceedsWhenDataIsValidJSON | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWhenDataIsEmpty | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWhenDataIsNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatStringResponseSerializerFailsWhenErrorIsNotNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ProvidedEncoding | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ResponseEncoding | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerSucceedsWithUTF8DataAndNoProvidedEncoding | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerSucceedsWithUTF8DataAndUTF8ProvidedEncoding | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatStringResponseSerializerSucceedsWithUTF8DataUsingResponseTextEncodingName | ✅ | | 🔀 | 0.003s ⌛️ | - -DecodableResponseSerializerTests: 7 tests were completed in 0.019 with 7 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatDecodableResponseSerializerFailsWhenDataIsEmpty | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDecodableResponseSerializerFailsWhenDataIsInvalidRepresentation | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatDecodableResponseSerializerFailsWhenDataIsNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDecodableResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDecodableResponseSerializerFailsWhenErrorIsNotNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDecodableResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDecodableResponseSerializerSucceedsWhenDataIsValidJSON | ✅ | | 🔀 | 0.003s ⌛️ | - -DownloadInitializationTestCase: 2 tests were completed in 0.335 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testDownloadClassMethodWithMethodURLAndDestination | ✅ | | 🔀 | 0.169s ⌛️ | -| testDownloadClassMethodWithMethodURLHeadersAndDestination | ✅ | | 🔀 | 0.166s ⌛️ | - -DownloadResponseFlatMapErrorTestCase: 3 tests were completed in 3.105 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatFlatMapErrorCatchesTransformationError | ✅ | | 🔀 | 2.919s ⌛️ | -| testThatFlatMapErrorPreservesSuccessValue | ✅ | | 🔀 | 0.176s ⌛️ | -| testThatFlatMapErrorTransformsError | ✅ | | 🔀 | 0.01s ⌛️ | - -DownloadResponseFlatMapTestCase: 3 tests were completed in 0.371 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatFlatMapCatchesTransformationError | ✅ | | 🔀 | 0.189s ⌛️ | -| testThatFlatMapPreservesFailureError | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatFlatMapTransformsSuccessValue | ✅ | | 🔀 | 0.173s ⌛️ | - -DownloadResponseMapErrorTestCase: 2 tests were completed in 0.18 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatMapErrorPreservesSuccessValue | ✅ | | 🔀 | 0.172s ⌛️ | -| testThatMapErrorTransformsFailureValue | ✅ | | 🔀 | 0.008s ⌛️ | - -DownloadResponseMapTestCase: 2 tests were completed in 0.183 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatMapPreservesFailureError | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatMapTransformsSuccessValue | ✅ | | 🔀 | 0.174s ⌛️ | - -DownloadResponseSerializationTestCase: 26 tests were completed in 0.07300000000000002 with 26 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatDataResponseSerializerFailsWhenErrorIsNotNil | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDataResponseSerializerFailsWhenFileDataIsEmpty | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDataResponseSerializerFailsWhenFileURLIsInvalid | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDataResponseSerializerFailsWhenFileURLIsNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDataResponseSerializerFailsWhenFileURLIsNilWithNonEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDataResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDataResponseSerializerSucceedsWhenFileDataIsNotNil | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerFailsWhenDataIsInvalidJSON | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONResponseSerializerFailsWhenErrorIsNotNil | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerFailsWhenFileDataIsEmpty | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerFailsWhenFileURLIsInvalid | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerFailsWhenFileURLIsNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatJSONResponseSerializerSucceedsWhenDataIsValidJSON | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatStringResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWhenErrorIsNotNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWhenFileDataIsEmpty | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWhenFileURLIsInvalid | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWhenFileURLIsNil | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ProvidedEncoding | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ResponseEncoding | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatStringResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatStringResponseSerializerSucceedsWithUTF8DataAndNoProvidedEncoding | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatStringResponseSerializerSucceedsWithUTF8DataAndUTF8ProvidedEncoding | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatStringResponseSerializerSucceedsWithUTF8DataUsingResponseTextEncodingName | ✅ | | 🔀 | 0.004s ⌛️ | - -DownloadResponseTestCase: 9 tests were completed in 2.138 with 9 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testCancelledDownloadRequest | ✅ | | 🔀 | 0.005s ⌛️ | -| testDownloadRequest | ✅ | | 🔀 | 0.329s ⌛️ | -| testDownloadRequestWithHeaders | ✅ | | 🔀 | 0.169s ⌛️ | -| testDownloadRequestWithParameters | ✅ | | 🔀 | 0.175s ⌛️ | -| testDownloadRequestWithProgress | ✅ | | 🔀 | 0.696s ⌛️ | -| testThatDownloadingFileAndMovingToDestinationThatIsOccupiedThrowsError | ✅ | | 🔀 | 0.202s ⌛️ | -| testThatDownloadingFileAndMovingToDirectoryThatDoesNotExistThrowsError | ✅ | | 🔀 | 0.184s ⌛️ | -| testThatDownloadOptionsCanCreateIntermediateDirectoriesPriorToMovingFile | ✅ | | 🔀 | 0.192s ⌛️ | -| testThatDownloadOptionsCanRemovePreviousFilePriorToMovingFile | ✅ | | 🔀 | 0.186s ⌛️ | - -DownloadResumeDataTestCase: 3 tests were completed in 5.079000000000001 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatCancelledDownloadCanBeResumedWithResumeData | ✅ | | 🔀 | 4.014s ⌛️ | -| testThatCancelledDownloadResponseDataMatchesResumeData | ✅ | | 🔀 | 0.546s ⌛️ | -| testThatCancelledDownloadResumeDataIsAvailableWithJSONResponseSerializer | ✅ | | 🔀 | 0.519s ⌛️ | - -HTTPDigestAuthenticationTestCase: 2 tests were completed in 1.915 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testHTTPDigestAuthenticationWithInvalidCredentials | ✅ | | 🔀 | 1.057s ⌛️ | -| testHTTPDigestAuthenticationWithValidCredentials | ✅ | | 🔀 | 0.858s ⌛️ | - -HTTPHeadersTests: 6 tests were completed in 0.013000000000000001 with 6 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testHeadersAreStoreUniquelyByCaseInsensitiveName | ✅ | | 🔀 | 0.003s ⌛️ | -| testHeadersCanBeProperlySortedByName | ✅ | | 🔀 | 0.002s ⌛️ | -| testHeadersCanInsensitivelyGetAndSetThroughSubscript | ✅ | | 🔀 | 0.002s ⌛️ | -| testHeadersHaveUnsortedDescription | ✅ | | 🔀 | 0.002s ⌛️ | -| testHeadersPreserveLastFormAndValueOfAName | ✅ | | 🔀 | 0.002s ⌛️ | -| testHeadersPreserveOrderOfInsertion | ✅ | | 🔀 | 0.002s ⌛️ | - -JSONParameterEncoderTests: 5 tests were completed in 0.013 with 5 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatDataIsProperlyEncodedAndProperContentTypeIsSet | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDataIsProperlyEncodedButContentTypeIsNotSetIfRequestAlreadyHasAContentType | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONEncoderCanBeCustomized | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatJSONEncoderDefaultWorks | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatJSONEncoderPrettyPrintedPrintsPretty | ✅ | | 🔀 | 0.002s ⌛️ | - -JSONParameterEncodingTestCase: 4 tests were completed in 0.01 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testJSONParameterEncodeArray | ✅ | | 🔀 | 0.003s ⌛️ | -| testJSONParameterEncodeComplexParameters | ✅ | | 🔀 | 0.003s ⌛️ | -| testJSONParameterEncodeNilParameters | ✅ | | 🔀 | 0.002s ⌛️ | -| testJSONParameterEncodeParametersRetainsCustomContentType | ✅ | | 🔀 | 0.002s ⌛️ | - -MultipartFormDataEncodingTestCase: 7 tests were completed in 0.049 with 7 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testEncodingDataBodyPart | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncodingFileBodyPart | ✅ | | 🔀 | 0.021s ⌛️ | -| testEncodingMultipleBodyPartsWithVaryingTypes | ✅ | | 🔀 | 0.006s ⌛️ | -| testEncodingMultipleDataBodyParts | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncodingMultipleFileBodyParts | ✅ | | 🔀 | 0.007s ⌛️ | -| testEncodingMultipleStreamBodyParts | ✅ | | 🔀 | 0.005s ⌛️ | -| testEncodingStreamBodyPart | ✅ | | 🔀 | 0.004s ⌛️ | - -MultipartFormDataFailureTestCase: 6 tests were completed in 0.021 with 6 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatAppendingFileBodyPartThatIsDirectoryReturnsError | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatAppendingFileBodyPartThatIsNotFileURLReturnsError | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatAppendingFileBodyPartThatIsNotReachableReturnsError | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatAppendingFileBodyPartWithInvalidLastPathComponentReturnsError | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatWritingEncodedDataToBadURLFails | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatWritingEncodedDataToExistingFileURLFails | ✅ | | 🔀 | 0.005s ⌛️ | - -MultipartFormDataPropertiesTestCase: 2 tests were completed in 0.006 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatContentLengthMatchesTotalBodyPartSize | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatContentTypeContainsBoundary | ✅ | | 🔀 | 0.003s ⌛️ | - -MultipartFormDataWriteEncodedDataToDiskTestCase: 7 tests were completed in 0.041999999999999996 with 7 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testWritingEncodedDataBodyPartToDisk | ✅ | | 🔀 | 0.004s ⌛️ | -| testWritingEncodedFileBodyPartToDisk | ✅ | | 🔀 | 0.006s ⌛️ | -| testWritingEncodedStreamBodyPartToDisk | ✅ | | 🔀 | 0.005s ⌛️ | -| testWritingMultipleEncodedBodyPartsWithVaryingTypesToDisk | ✅ | | 🔀 | 0.008s ⌛️ | -| testWritingMultipleEncodedDataBodyPartsToDisk | ✅ | | 🔀 | 0.003s ⌛️ | -| testWritingMultipleEncodedFileBodyPartsToDisk | ✅ | | 🔀 | 0.011s ⌛️ | -| testWritingMultipleEncodedStreamBodyPartsToDisk | ✅ | | 🔀 | 0.005s ⌛️ | - -MultipleValidationTestCase: 3 tests were completed in 0.5429999999999999 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatValidationForRequestWithAcceptableStatusCodeAndContentTypeResponseSucceeds | ✅ | | 🔀 | 0.178s ⌛️ | -| testThatValidationForRequestWithUnacceptableStatusCodeAndContentTypeResponseFailsWithContentTypeError | ✅ | | 🔀 | 0.181s ⌛️ | -| testThatValidationForRequestWithUnacceptableStatusCodeAndContentTypeResponseFailsWithStatusCodeError | ✅ | | 🔀 | 0.184s ⌛️ | - -NetworkReachabilityManagerTestCase: 17 tests were completed in 0.05200000000000002 with 17 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatAddressManagerCanBeDeinitialized | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatAddressManagerIsNotifiedWhenStartListeningIsCalled | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatAddressManagerStartsWithReachableStatus | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatHostManagerCanBeDeinitialized | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatHostManagerIsNotifiedWhenStartListeningIsCalled | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatHostManagerIsReachableOnWiFi | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatHostManagerStartsWithReachableStatus | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatManagerCanBeInitializedFromAddress | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatManagerCanBeInitializedFromHost | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatManagerReturnsNotReachableOnWWANStatusWhenIsWWANAndConnectionIsRequired | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatManagerReturnsNotReachableStatusWhenConnectionIsRequired | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatManagerReturnsNotReachableStatusWhenInterventionIsRequired | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatManagerReturnsNotReachableStatusWhenReachableFlagIsAbsent | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatManagerReturnsReachableOnWiFiStatusWhenConnectionIsNotRequired | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatManagerReturnsReachableOnWiFiStatusWhenConnectionIsOnDemand | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatManagerReturnsReachableOnWiFiStatusWhenConnectionIsOnTraffic | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatManagerReturnsReachableOnWWANStatusWhenIsWWAN | ✅ | | 🔀 | 0.003s ⌛️ | - -RequestDebugDescriptionTestCase: 9 tests were completed in 4.523999999999999 with 9 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testGETRequestDebugDescription | ✅ | | 🔀 | 0.646s ⌛️ | -| testGETRequestWithDuplicateHeadersDebugDescription | ✅ | | 🔀 | 0.658s ⌛️ | -| testGETRequestWithJSONHeaderDebugDescription | ✅ | | 🔀 | 0.652s ⌛️ | -| testMultipartFormDataRequestWithDuplicateHeadersDebugDescription | ✅ | | 🔀 | 0.599s ⌛️ | -| testPOSTRequestDebugDescription | ✅ | | 🔀 | 0.605s ⌛️ | -| testPOSTRequestWithCookieDebugDescription | ✅ | | 🔀 | 0.682s ⌛️ | -| testPOSTRequestWithCookiesDisabledDebugDescription | ✅ | | 🔀 | 0.004s ⌛️ | -| testPOSTRequestWithJSONParametersDebugDescription | ✅ | | 🔀 | 0.666s ⌛️ | -| testThatRequestWithInvalidURLDebugDescription | ✅ | | 🔀 | 0.012s ⌛️ | - -RequestDescriptionTestCase: 1 tests were completed in 0.733 with 1 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testRequestDescription | ✅ | | 🔀 | 0.733s ⌛️ | - -RequestResponseTestCase: 8 tests were completed in 3.2600000000000002 with 8 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testPOSTRequestWithBase64EncodedImages | ✅ | | 🔀 | 1.134s ⌛️ | -| testPOSTRequestWithUnicodeParameters | ✅ | | 🔀 | 0.188s ⌛️ | -| testRequestResponse | ✅ | | 🔀 | 0.191s ⌛️ | -| testRequestResponseWithProgress | ✅ | | 🔀 | 0.578s ⌛️ | -| testThatRequestsCanPassEncodableParametersAsAURLQuery | ✅ | | 🔀 | 0.184s ⌛️ | -| testThatRequestsCanPassEncodableParametersAsJSONBodyData | ✅ | | 🔀 | 0.184s ⌛️ | -| testThatRequestsCanPassEncodableParametersAsURLEncodedBodyData | ✅ | | 🔀 | 0.188s ⌛️ | -| testThatResponseSerializationWorksWithSerializationQueue | ✅ | | 🔀 | 0.613s ⌛️ | - -ResponseDataTestCase: 2 tests were completed in 0.191 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatResponseDataReturnsFailureResultWithOptionalDataAndError | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatResponseDataReturnsSuccessResultWithValidData | ✅ | | 🔀 | 0.18s ⌛️ | - -ResponseFlatMapErrorTestCase: 3 tests were completed in 0.201 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatFlatMapErrorCatchesTransformationError | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatFlatMapErrorPreservesSuccessValue | ✅ | | 🔀 | 0.182s ⌛️ | -| testThatFlatMapErrorTransformsError | ✅ | | 🔀 | 0.01s ⌛️ | - -ResponseFlatMapTestCase: 3 tests were completed in 0.38 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatFlatMapCatchesTransformationError | ✅ | | 🔀 | 0.182s ⌛️ | -| testThatFlatMapPreservesFailureError | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatFlatMapTransformsSuccessValue | ✅ | | 🔀 | 0.187s ⌛️ | - -ResponseJSONDecodableTestCase: 2 tests were completed in 0.192 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatResponseJSONReturnsSuccessResultWithValidJSON | ✅ | | 🔀 | 0.182s ⌛️ | -| testThatResponseStringReturnsFailureResultWithOptionalDataAndError | ✅ | | 🔀 | 0.01s ⌛️ | - -ResponseJSONTestCase: 4 tests were completed in 0.564 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatResponseJSONReturnsSuccessResultForGETRequest | ✅ | | 🔀 | 0.186s ⌛️ | -| testThatResponseJSONReturnsSuccessResultForPOSTRequest | ✅ | | 🔀 | 0.18s ⌛️ | -| testThatResponseJSONReturnsSuccessResultWithValidJSON | ✅ | | 🔀 | 0.187s ⌛️ | -| testThatResponseStringReturnsFailureResultWithOptionalDataAndError | ✅ | | 🔀 | 0.011s ⌛️ | - -ResponseMapErrorTestCase: 2 tests were completed in 0.193 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatMapErrorPreservesSuccessValue | ✅ | | 🔀 | 0.183s ⌛️ | -| testThatMapErrorTransformsFailureValue | ✅ | | 🔀 | 0.01s ⌛️ | - -ResponseMapTestCase: 2 tests were completed in 0.218 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatMapPreservesFailureError | ✅ | | 🔀 | 0.012s ⌛️ | -| testThatMapTransformsSuccessValue | ✅ | | 🔀 | 0.206s ⌛️ | - -ResponseStringTestCase: 2 tests were completed in 0.193 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatResponseStringReturnsFailureResultWithOptionalDataAndError | ✅ | | 🔀 | 0.013s ⌛️ | -| testThatResponseStringReturnsSuccessResultWithValidString | ✅ | | 🔀 | 0.18s ⌛️ | - -ResponseTestCase: 2 tests were completed in 0.199 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatResponseReturnsFailureResultWithOptionalDataAndError | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatResponseReturnsSuccessResultWithValidData | ✅ | | 🔀 | 0.189s ⌛️ | - -ResultTestCase: 34 tests were completed in 0.08800000000000005 with 34 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testFlatMapErrorCapturesThrownError | ✅ | | 🔀 | 0.002s ⌛️ | -| testFlatMapErrorTransformsErrorValue | ✅ | | 🔀 | 0.002s ⌛️ | -| testFunctionalMethodsCanBeChained | ✅ | | 🔀 | 0.002s ⌛️ | -| testIfFailureDoesNotExecuteWhenSuccess | ✅ | | 🔀 | 0.003s ⌛️ | -| testIfFailureExecutesWhenFailure | ✅ | | 🔀 | 0.003s ⌛️ | -| testIfSuccessDoesNotExecutesWhenFailure | ✅ | | 🔀 | 0.003s ⌛️ | -| testIfSuccessExecutesWhenSuccess | ✅ | | 🔀 | 0.003s ⌛️ | -| testMapErrorPreservesSuccessError | ✅ | | 🔀 | 0.003s ⌛️ | -| testMapErrorTransformsErrorValue | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDebugDescriptionStringMatchesExpectedValueForFailureCase | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDebugDescriptionStringMatchesExpectedValueForSuccessCase | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatDescriptionStringMatchesExpectedValueForFailureCase | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatDescriptionStringMatchesExpectedValueForSuccessCase | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatErrorPropertyReturnsErrorForFailureCase | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatErrorPropertyReturnsNilForSuccessCase | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatFlatMapCatchesTransformationError | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatFlatMapPreservesFailureError | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatFlatMapTransformsSuccessValue | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatInitializerFromThrowingClosureCatchesErrorAsAFailure | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatInitializerFromThrowingClosureStoresResultAsASuccess | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatIsFailurePropertyReturnsFalseForSuccessCase | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatIsFailurePropertyReturnsTrueForFailureCase | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatIsSuccessPropertyReturnsFalseForFailureCase | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatIsSuccessPropertyReturnsTrueForSuccessCase | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatMapPreservesFailureError | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatMapTransformsSuccessValue | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatUnwrapReturnsSuccessValue | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatUnwrapThrowsFailureError | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatValuePropertyReturnsNilForFailureCase | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatValuePropertyReturnsValueForSuccessCase | ✅ | | 🔀 | 0.003s ⌛️ | -| testWithErrorDoesNotExecuteWhenSuccess | ✅ | | 🔀 | 0.003s ⌛️ | -| testWithErrorExecutesWhenFailure | ✅ | | 🔀 | 0.003s ⌛️ | -| testWithValueDoesNotExecutesWhenFailure | ✅ | | 🔀 | 0.002s ⌛️ | -| testWithValueExecutesWhenSuccess | ✅ | | 🔀 | 0.003s ⌛️ | - -ServerTrustPolicyCertificatesInBundleTestCase: 1 tests were completed in 0.019 with 1 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testOnlyValidCertificatesAreDetected | ✅ | | 🔀 | 0.019s ⌛️ | - -ServerTrustPolicyCompositeTestCase: 3 tests were completed in 0.041 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatExpiredLeafCertificateFailsDefaultAndRevocationComposite | ✅ | | 🔀 | 0.017s ⌛️ | -| testThatNonAnchoredRootCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatValidCertificateChainPassesDefaultAndRevocationCompositeChecks | ✅ | | 🔀 | 0.015s ⌛️ | - -ServerTrustPolicyDisableEvaluationTestCase: 2 tests were completed in 0.005 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatCertificateChainMissingIntermediateCertificatePassesEvaluation | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatExpiredLeafCertificatePassesEvaluation | ✅ | | 🔀 | 0.003s ⌛️ | - -ServerTrustPolicyExplorationBasicX509PolicyValidationTestCase: 4 tests were completed in 0.03 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatAnchoredRootCertificatePassesBasicX509ValidationWithoutRootInTrust | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatAnchoredRootCertificatePassesBasicX509ValidationWithRootInTrust | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatCertificateMissingDNSNamePassesBasicX509Validation | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatExpiredCertificateFailsBasicX509Validation | ✅ | | 🔀 | 0.01s ⌛️ | - -ServerTrustPolicyExplorationSSLPolicyValidationTestCase: 9 tests were completed in 0.066 with 9 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatAnchoredRootCertificatePassesSSLValidationWithoutRootInTrust | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatAnchoredRootCertificatePassesSSLValidationWithRootInTrust | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatCertificateMissingDNSNameFailsSSLValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatDNSNameCertificatePassesSSLValidation | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatExpiredCertificateFailsSSLValidation | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatMultipleDNSNamesCertificatePassesSSLValidationForAllEntries | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatPassingNilForHostParameterAllowsCertificateMissingDNSNameToPassSSLValidation | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatURICertificateFailsSSLValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatWildcardCertificatePassesSSLValidation | ✅ | | 🔀 | 0.012s ⌛️ | - -ServerTrustPolicyPerformDefaultEvaluationTestCase: 11 tests were completed in 0.094 with 11 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatExpiredCertificateChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatExpiredCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatMissingDNSNameLeafCertificateFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatMissingDNSNameLeafCertificatePassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatMissingIntermediateCertificateInChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatMissingIntermediateCertificateInChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatNonAnchoredRootCertificateChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatNonAnchoredRootCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatValidCertificateChainPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatValidCertificateChainPassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatWildcardedLeafCertificateChainPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.012s ⌛️ | - -ServerTrustPolicyPerformRevokedEvaluationTestCase: 11 tests were completed in 0.11699999999999999 with 11 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatExpiredCertificateChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatExpiredCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatMissingDNSNameLeafCertificateFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.014s ⌛️ | -| testThatMissingDNSNameLeafCertificatePassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatMissingIntermediateCertificateInChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatMissingIntermediateCertificateInChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatNonAnchoredRootCertificateChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatNonAnchoredRootCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatValidCertificateChainPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.018s ⌛️ | -| testThatValidCertificateChainPassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.012s ⌛️ | -| testThatWildcardedLeafCertificateChainPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.015s ⌛️ | - -ServerTrustPolicyPinCertificatesTestCase: 23 tests were completed in 0.23100000000000007 with 23 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatPinnedIntermediateCertificatePassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatPinnedIntermediateCertificatePassesEvaluationWithSelfSignedSupportAndHostValidation | ✅ | | 🔀 | 0.014s ⌛️ | -| testThatPinnedIntermediateCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatPinnedLeafCertificatePassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatPinnedLeafCertificatePassesEvaluationWithSelfSignedSupportAndHostValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatPinnedLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatPinnedRootCertificatePassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatPinnedRootCertificatePassesEvaluationWithSelfSignedSupportAndHostValidation | ✅ | | 🔀 | 0.012s ⌛️ | -| testThatPinnedRootCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatPinningExpiredLeafCertificateFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatPinningExpiredLeafCertificateFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatPinningExpiredLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatPinningIntermediateCertificateNotInCertificateChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatPinningIntermediateCertificateNotInCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatPinningIntermediateCertificateNotInCertificateChainWithoutCertificateChainValidationFailsEvaluation | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatPinningIntermediateCertificateWithExpiredLeafCertificateFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatPinningIntermediateCertificateWithExpiredLeafCertificateFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.012s ⌛️ | -| testThatPinningIntermediateCertificateWithExpiredLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatPinningLeafCertificateNotInCertificateChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatPinningLeafCertificateNotInCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatPinningLeafCertificateNotInCertificateChainWithoutCertificateChainValidationFailsEvaluation | ✅ | | 🔀 | 0.013s ⌛️ | -| testThatPinningMultipleCertificatesWithoutCertificateChainValidationPassesEvaluation | ✅ | | 🔀 | 0.012s ⌛️ | -| testThatPinningRootCertificateWithExpiredLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ | | 🔀 | 0.009s ⌛️ | - -ServerTrustPolicyPinPublicKeysTestCase: 16 tests were completed in 0.14100000000000001 with 16 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatPinningBackupKeyPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatPinningBackupKeyPassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatPinningIntermediateKeyPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.01s ⌛️ | -| testThatPinningIntermediateKeyPassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatPinningIntermediateKeyWithoutCertificateChainValidationPassesEvaluationWithExpiredLeafCertificate | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatPinningKeyNotInCertificateChainFailsEvaluationWithHostValidation | ✅ | | 🔀 | 0.013s ⌛️ | -| testThatPinningKeyNotInCertificateChainFailsEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatPinningLeafKeyPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.012s ⌛️ | -| testThatPinningLeafKeyPassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.008s ⌛️ | -| testThatPinningLeafKeyWithoutCertificateChainValidationPassesEvaluationWithExpiredLeafCertificate | ✅ | | 🔀 | 0.009s ⌛️ | -| testThatPinningLeafKeyWithoutCertificateChainValidationPassesEvaluationWithIncorrectIntermediateCertificate | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatPinningLeafKeyWithoutCertificateChainValidationPassesEvaluationWithMissingIntermediateCertificate | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatPinningRootKeyPassesEvaluationWithHostValidation | ✅ | | 🔀 | 0.014s ⌛️ | -| testThatPinningRootKeyPassesEvaluationWithoutHostValidation | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatPinningRootKeyWithoutCertificateChainValidationFailsEvaluationWithMissingIntermediateCertificate | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatPinningRootKeyWithoutCertificateChainValidationPassesEvaluationWithExpiredLeafCertificate | ✅ | | 🔀 | 0.011s ⌛️ | - -SessionDelegateTestCase: 4 tests were completed in 3.583 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatAppropriateNotificationsAreCalledWithRequestForDataRequest | ✅ | | 🔀 | 0.735s ⌛️ | -| testThatDidCompleteNotificationIsCalledWithRequestForDownloadRequests | ✅ | | 🔀 | 0.631s ⌛️ | -| testThatRequestWillPerformHTTPRedirectionByDefault | ✅ | | 🔀 | 0.85s ⌛️ | -| testThatRequestWillPerformRedirectionMultipleTimesByDefault | ✅ | | 🔀 | 1.367s ⌛️ | - -SessionManagerConfigurationHeadersTestCase: 2 tests were completed in 1.287 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatDefaultConfigurationHeadersAreSentWithRequest | ✅ | | 🔀 | 0.609s ⌛️ | -| testThatEphemeralConfigurationHeadersAreSentWithRequest | ✅ | | 🔀 | 0.678s ⌛️ | - -SessionTestCase: 29 tests were completed in 6.391999999999998 with 29 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testDefaultAcceptEncodingSupportsAppropriateEncodingsOnAppropriateSystems | ✅ | | 🔀 | 0.722s ⌛️ | -| testDefaultUserAgentHeader | ✅ | | 🔀 | 0.003s ⌛️ | -| testInitializerWithDefaultArguments | ✅ | | 🔀 | 0.004s ⌛️ | -| testInitializerWithSpecifiedArguments | ✅ | | 🔀 | 0.003s ⌛️ | -| testReleasingManagerWithPendingCanceledRequestDeinitializesSuccessfully | ✅ | | 🔀 | 0.003s ⌛️ | -| testReleasingManagerWithPendingRequestDeinitializesSuccessfully | ✅ | | 🔀 | 0.005s ⌛️ | -| testSetStartRequestsImmediatelyToFalseAndCancelledCallsResponseHandlers | ✅ | | 🔀 | 0.005s ⌛️ | -| testSetStartRequestsImmediatelyToFalseAndCancelThenResumeRequestDoesntCreateTaskAndStaysCancelled | ✅ | | 🔀 | 0.006s ⌛️ | -| testSetStartRequestsImmediatelyToFalseAndResumeRequest | ✅ | | 🔀 | 0.636s ⌛️ | -| testSetStartRequestsImmediatelyToFalseAndResumeThenCancelRequestHasCorrectOutput | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatDataRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatDownloadRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatRequestAdapterErrorThrowsResponseHandlerError | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatRequestAdapterErrorThrowsResponseHandlerErrorWhenRequestIsRetried | ✅ | | 🔀 | 0.896s ⌛️ | -| testThatSessionInitializerSucceedsWithDefaultArguments | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatSessionInitializerSucceedsWithSpecifiedArguments | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatSessionManagerCallsAdapterWhenRequestIsRetried | ✅ | | 🔀 | 0.997s ⌛️ | -| testThatSessionManagerCallsRequestAdapterWhenCreatingDataRequest | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatSessionManagerCallsRequestAdapterWhenCreatingDownloadRequest | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatSessionManagerCallsRequestAdapterWhenCreatingUploadRequestWithData | ✅ | | 🔀 | 0.007s ⌛️ | -| testThatSessionManagerCallsRequestAdapterWhenCreatingUploadRequestWithFile | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatSessionManagerCallsRequestAdapterWhenCreatingUploadRequestWithInputStream | ✅ | | 🔀 | 0.006s ⌛️ | -| testThatSessionManagerCallsRequestRetrierWhenDownloadInitiallyEncountersAdaptError | ✅ | | 🔀 | 0.629s ⌛️ | -| testThatSessionManagerCallsRequestRetrierWhenRequestEncountersError | ✅ | | 🔀 | 1.097s ⌛️ | -| testThatSessionManagerCallsRequestRetrierWhenRequestInitiallyEncountersAdaptError | ✅ | | 🔀 | 0.686s ⌛️ | -| testThatSessionManagerCallsRequestRetrierWhenUploadInitiallyEncountersAdaptError | ✅ | | 🔀 | 0.629s ⌛️ | -| testThatUploadDataRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatUploadFileRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatUploadStreamRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ | | 🔀 | 0.005s ⌛️ | - -SortedKeysJSONParameterEncoderTests: 1 tests were completed in 0.004 with 1 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testTestJSONEncoderSortedKeysHasSortedKeys | ✅ | | 🔀 | 0.004s ⌛️ | - -StatusCodeValidationTestCase: 3 tests were completed in 0.5389999999999999 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatValidationForRequestWithAcceptableStatusCodeResponseSucceeds | ✅ | | 🔀 | 0.18s ⌛️ | -| testThatValidationForRequestWithNoAcceptableStatusCodesFails | ✅ | | 🔀 | 0.18s ⌛️ | -| testThatValidationForRequestWithUnacceptableStatusCodeResponseFails | ✅ | | 🔀 | 0.179s ⌛️ | - -TLSEvaluationExpiredLeafCertificateTestCase: 14 tests were completed in 6.6690000000000005 with 14 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatExpiredCertificateRequestFailsWhenPinningAllCertificatesWithCertificateChainValidation | ✅ | | 🔀 | 0.58s ⌛️ | -| testThatExpiredCertificateRequestFailsWhenPinningLeafCertificateWithCertificateChainValidation | ✅ | | 🔀 | 0.323s ⌛️ | -| testThatExpiredCertificateRequestFailsWhenPinningLeafPublicKeyWithCertificateChainValidation | ✅ | | 🔀 | 0.318s ⌛️ | -| testThatExpiredCertificateRequestFailsWithDefaultServerTrustPolicy | ✅ | | 🔀 | 0.322s ⌛️ | -| testThatExpiredCertificateRequestFailsWithNoServerTrustPolicy | ✅ | | 🔀 | 0.329s ⌛️ | -| testThatExpiredCertificateRequestFailsWithRevokedServerTrustPolicy | ✅ | | 🔀 | 0.319s ⌛️ | -| testThatExpiredCertificateRequestSucceedsWhenDisablingEvaluation | ✅ | | 🔀 | 0.631s ⌛️ | -| testThatExpiredCertificateRequestSucceedsWhenPinningIntermediateCACertificateWithoutCertificateChainOrHostValidation | ✅ | | 🔀 | 0.627s ⌛️ | -| testThatExpiredCertificateRequestSucceedsWhenPinningIntermediateCAPublicKeyWithoutCertificateChainOrHostValidation | ✅ | | 🔀 | 0.626s ⌛️ | -| testThatExpiredCertificateRequestSucceedsWhenPinningLeafCertificateWithoutCertificateChainOrHostValidation | ✅ | | 🔀 | 0.686s ⌛️ | -| testThatExpiredCertificateRequestSucceedsWhenPinningLeafPublicKeyWithoutCertificateChainOrHostValidation | ✅ | | 🔀 | 0.626s ⌛️ | -| testThatExpiredCertificateRequestSucceedsWhenPinningRootCACertificateWithoutCertificateChainValidation | ✅ | | 🔀 | 0.335s ⌛️ | -| testThatExpiredCertificateRequestSucceedsWhenPinningRootCAPublicKeyWithoutCertificateChainValidation | ✅ | | 🔀 | 0.325s ⌛️ | -| testThatRevokedCertificateRequestFailsWithRevokedServerTrustPolicy | ✅ | | 🔀 | 0.622s ⌛️ | - -URLEncodedFormEncoderTests: 38 tests were completed in 0.12600000000000006 with 38 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testEncoderCanEncodeDictionary | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeDouble | ✅ | | 🔀 | 0.004s ⌛️ | -| testEncoderCanEncodeFloat | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeInt16 | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeInt32 | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeInt64 | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeInt8 | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeUInt | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeUInt16 | ✅ | | 🔀 | 0.004s ⌛️ | -| testEncoderCanEncodeUInt32 | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeUInt64 | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderCanEncodeUInt8 | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderThrowsErrorWhenAttemptingToEncodeNilInKeyedContainer | ✅ | | 🔀 | 0.003s ⌛️ | -| testEncoderThrowsErrorWhenAttemptingToEncodeNilInUnkeyedContainer | ✅ | | 🔀 | 0.003s ⌛️ | -| testStringWithThousandsOfChineseCharactersIsPercentEscaped | ✅ | | 🔀 | 0.011s ⌛️ | -| testThatAmpersandsInKeysAndValuesArePercentEscaped | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatARootArrayCannotBeEncoded | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatARootValueCannotBeEncoded | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatArraysCanBeEncodedWithoutBrackets | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatBoolsCanBeLiteralEncoded | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatEncodableClassWithNoInheritanceCanBeEncoded | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatEncodableStructCanBeEncoded | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatEncodableSubclassCanBeEncoded | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatEscapedCharactersCanBeCustomized | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatIllegalASCIICharactersArePercentEscaped | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatManuallyEncodableStructCanBeEncoded | ✅ | | 🔀 | 0.005s ⌛️ | -| testThatManuallyEncodableSubclassCanBeEncoded | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatNestedDictionariesHaveBracketedKeys | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatNonLatinCharactersArePercentEscaped | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatOptionalValuesCannotBeEncoded | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatPercentsInKeysAndValuesArePercentEscaped | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatPlusesInKeysAndValuesArePercentEscaped | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatQuestionMarksInKeysAndValuesAreNotPercentEscaped | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatReseredCharactersArePercentEscaped | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatSlashesInKeysAndValuesAreNotPercentEscaped | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatSpacesCanBeEncodedAsPluses | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatSpacesInKeysAndValuesArePercentEscaped | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatUnreservedCharactersAreNotPercentEscaped | ✅ | | 🔀 | 0.002s ⌛️ | - -URLEncodedFormParameterEncoderTests: 4 tests were completed in 0.011000000000000001 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatEncoderCanBeCustomized | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatQueryIsBodyEncodedAndProperContentTypeIsSetForPOSTRequest | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatQueryIsBodyEncodedButContentTypeIsNotSetWhenRequestAlreadyHasContentType | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatQueryIsInURLWhenDestinationIsURLAndMethodIsPOST | ✅ | | 🔀 | 0.002s ⌛️ | - -URLParameterEncodingTestCase: 36 tests were completed in 0.11400000000000007 with 36 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatIllegalASCIICharactersArePercentEscaped | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatReservedCharactersArePercentEscapedMinusQuestionMarkAndForwardSlash | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatReservedCharactersQuestionMarkAndForwardSlashAreNotPercentEscaped | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatUnreservedLowercaseCharactersAreNotPercentEscaped | ✅ | | 🔀 | 0.004s ⌛️ | -| testThatUnreservedNumericCharactersAreNotPercentEscaped | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatUnreservedUppercaseCharactersAreNotPercentEscaped | ✅ | | 🔀 | 0.002s ⌛️ | -| testThatURLEncodedInURLParameterEncodingEncodesPOSTParametersInURL | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatURLParameterEncodingEncodesGETParametersInURL | ✅ | | 🔀 | 0.003s ⌛️ | -| testThatURLParameterEncodingEncodesPOSTParametersInHTTPBody | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeEmptyDictionaryParameter | ✅ | | 🔀 | 0.002s ⌛️ | -| testURLParameterEncodeNilParameters | ✅ | | 🔀 | 0.002s ⌛️ | -| testURLParameterEncodeOneStringKeyStringValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeOneStringKeyStringValueParameterAppendedToQuery | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringForRequestWithPrecomposedQuery | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringKeyArrayValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringKeyArrayValueParameterWithoutBrackets | ✅ | | 🔀 | 0.004s ⌛️ | -| testURLParameterEncodeStringKeyBoolValueParameter | ✅ | | 🔀 | 0.004s ⌛️ | -| testURLParameterEncodeStringKeyDictionaryValueParameter | ✅ | | 🔀 | 0.004s ⌛️ | -| testURLParameterEncodeStringKeyDoubleValueParameter | ✅ | | 🔀 | 0.004s ⌛️ | -| testURLParameterEncodeStringKeyIntegerValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringKeyNestedDictionaryArrayValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringKeyNestedDictionaryArrayValueParameterWithoutBrackets | ✅ | | 🔀 | 0.002s ⌛️ | -| testURLParameterEncodeStringKeyNestedDictionaryValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringKeyNonLatinStringValueParameter | ✅ | | 🔀 | 0.002s ⌛️ | -| testURLParameterEncodeStringKeyNSNumberBoolValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringKeyNSNumberIntegerValueParameter | ✅ | | 🔀 | 0.002s ⌛️ | -| testURLParameterEncodeStringKeyPercentEncodedStringValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringWithAmpersandKeyStringWithAmpersandValueParameter | ✅ | | 🔀 | 0.002s ⌛️ | -| testURLParameterEncodeStringWithPlusKeyStringWithPlusValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringWithPlusKeyStringWithPlusValueParameterForRequestWithPrecomposedQuery | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringWithQuestionMarkKeyStringWithQuestionMarkValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringWithSlashKeyStringWithQuestionMarkValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringWithSpaceKeyStringWithSpaceValueParameter | ✅ | | 🔀 | 0.003s ⌛️ | -| testURLParameterEncodeStringWithThousandsOfChineseCharacters | ✅ | | 🔀 | 0.008s ⌛️ | -| testURLParameterEncodeTwoStringKeyStringValueParameters | ✅ | | 🔀 | 0.004s ⌛️ | -| testURLParameterLiteralBoolEncodingWorksAndDoesNotAffectNumbers | ✅ | | 🔀 | 0.004s ⌛️ | - -URLProtocolTestCase: 1 tests were completed in 0.636 with 1 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatURLProtocolReceivesRequestHeadersAndSessionConfigurationHeaders | ✅ | | 🔀 | 0.636s ⌛️ | - -UploadDataInitializationTestCase: 2 tests were completed in 0.361 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testUploadClassMethodWithMethodURLAndData | ✅ | | 🔀 | 0.181s ⌛️ | -| testUploadClassMethodWithMethodURLHeadersAndData | ✅ | | 🔀 | 0.18s ⌛️ | - -UploadDataTestCase: 2 tests were completed in 0.405 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testUploadDataRequest | ✅ | | 🔀 | 0.183s ⌛️ | -| testUploadDataRequestWithProgress | ✅ | | 🔀 | 0.222s ⌛️ | - -UploadFileInitializationTestCase: 2 tests were completed in 0.479 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testUploadClassMethodWithMethodURLAndFile | ✅ | | 🔀 | 0.237s ⌛️ | -| testUploadClassMethodWithMethodURLHeadersAndFile | ✅ | | 🔀 | 0.242s ⌛️ | - -UploadMultipartFormDataTestCase: 8 tests were completed in 2.012 with 8 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThatUploadingMultipartFormDataAboveMemoryThresholdSetsContentTypeHeader | ✅ | | 🔀 | 0.196s ⌛️ | -| testThatUploadingMultipartFormDataAboveMemoryThresholdStreamsFromDisk | ✅ | | 🔀 | 0.183s ⌛️ | -| testThatUploadingMultipartFormDataBelowMemoryThresholdSetsContentTypeHeader | ✅ | | 🔀 | 0.183s ⌛️ | -| testThatUploadingMultipartFormDataBelowMemoryThresholdStreamsFromMemory | ✅ | | 🔀 | 0.224s ⌛️ | -| testThatUploadingMultipartFormDataSetsContentTypeHeader | ✅ | | 🔀 | 0.286s ⌛️ | -| testThatUploadingMultipartFormDataSucceedsWithDefaultParameters | ✅ | | 🔀 | 0.28s ⌛️ | -| testThatUploadingMultipartFormDataWhileStreamingFromDiskMonitorsProgress | ✅ | | 🔀 | 0.32s ⌛️ | -| testThatUploadingMultipartFormDataWhileStreamingFromMemoryMonitorsProgress | ✅ | | 🔀 | 0.34s ⌛️ | - -UploadStreamInitializationTestCase: 2 tests were completed in 0.653 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testUploadClassMethodWithMethodURLAndStream | ✅ | | 🔀 | 0.346s ⌛️ | -| testUploadClassMethodWithMethodURLHeadersAndStream | ✅ | | 🔀 | 0.307s ⌛️ | +AutomaticValidationTestCase: 5 tests were completed in 1.502 with 5 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatValidationForRequestWithAcceptableComplexContentTypeResponseSucceeds | ✅ |0.786s ⌛️ | +| testThatValidationForRequestWithAcceptableStatusCodeAndContentTypeResponseSucceeds | ✅ |0.178s ⌛️ | +| testThatValidationForRequestWithAcceptableWildcardContentTypeResponseSucceeds | ✅ |0.179s ⌛️ | +| testThatValidationForRequestWithUnacceptableContentTypeResponseFails | ✅ |0.18s ⌛️ | +| testThatValidationForRequestWithUnacceptableStatusCodeResponseFails | ✅ |0.179s ⌛️ | + +BasicAuthenticationTestCase: 3 tests were completed in 2.3680000000000003 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testHiddenHTTPBasicAuthentication | ✅ |0.348s ⌛️ | +| testHTTPBasicAuthenticationWithInvalidCredentials | ✅ |1.066s ⌛️ | +| testHTTPBasicAuthenticationWithValidCredentials | ✅ |0.954s ⌛️ | + +CacheTestCase: 5 tests were completed in 13.501999999999999 with 5 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testDefaultCachePolicy | ✅ |3.235s ⌛️ | +| testIgnoreLocalCacheDataPolicy | ✅ |3.221s ⌛️ | +| testURLCacheContainsCachedResponsesForAllRequests | ✅ |2.298s ⌛️ | +| testUseLocalCacheDataAndDontLoadFromNetworkPolicy | ✅ |2.364s ⌛️ | +| testUseLocalCacheDataIfExistsOtherwiseLoadFromNetworkPolicy | ✅ |2.384s ⌛️ | + +ContentTypeValidationTestCase: 6 tests were completed in 1.605 with 6 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatValidationForRequestWithAcceptableContentTypeResponseSucceeds | ✅ |0.184s ⌛️ | +| testThatValidationForRequestWithAcceptableWildcardContentTypeResponseSucceeds | ✅ |0.182s ⌛️ | +| testThatValidationForRequestWithAcceptableWildcardContentTypeResponseSucceedsWhenResponseIsNil | ✅ |0.679s ⌛️ | +| testThatValidationForRequestWithNoAcceptableContentTypeResponseFails | ✅ |0.183s ⌛️ | +| testThatValidationForRequestWithNoAcceptableContentTypeResponseSucceedsWhenNoDataIsReturned | ✅ |0.185s ⌛️ | +| testThatValidationForRequestWithUnacceptableContentTypeResponseFails | ✅ |0.192s ⌛️ | + +CustomResponseSerializerTestCases: 1 tests were completed in 0.187 with 1 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatCustomResponseSerializersCanBeWrittenWithoutCompilerIssues | ✅ |0.187s ⌛️ | + +CustomValidationTestCase: 4 tests were completed in 0.73 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatCustomValidationCanThrowCustomError | ✅ |0.193s ⌛️ | +| testThatCustomValidationClosureHasAccessToServerResponseData | ✅ |0.179s ⌛️ | +| testThatValidationExtensionCanThrowCustomError | ✅ |0.177s ⌛️ | +| testThatValidationExtensionHasAccessToServerResponseData | ✅ |0.181s ⌛️ | + +DataResponseSerializationTestCase: 22 tests were completed in 0.059000000000000025 with 22 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatDataResponseSerializerFailsWhenDataIsNil | ✅ |0.003s ⌛️ | +| testThatDataResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatDataResponseSerializerFailsWhenErrorIsNotNil | ✅ |0.002s ⌛️ | +| testThatDataResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatDataResponseSerializerSucceedsWhenDataIsNotNil | ✅ |0.002s ⌛️ | +| testThatJSONResponseSerializerFailsWhenDataIsEmpty | ✅ |0.002s ⌛️ | +| testThatJSONResponseSerializerFailsWhenDataIsInvalidJSON | ✅ |0.004s ⌛️ | +| testThatJSONResponseSerializerFailsWhenDataIsNil | ✅ |0.002s ⌛️ | +| testThatJSONResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatJSONResponseSerializerFailsWhenErrorIsNotNil | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerSucceedsWhenDataIsValidJSON | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWhenDataIsEmpty | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWhenDataIsNil | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ |0.003s ⌛️ | +| testThatStringResponseSerializerFailsWhenErrorIsNotNil | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ProvidedEncoding | ✅ |0.009s ⌛️ | +| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ResponseEncoding | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerSucceedsWithUTF8DataAndNoProvidedEncoding | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerSucceedsWithUTF8DataAndUTF8ProvidedEncoding | ✅ |0.003s ⌛️ | +| testThatStringResponseSerializerSucceedsWithUTF8DataUsingResponseTextEncodingName | ✅ |0.003s ⌛️ | + +DecodableResponseSerializerTests: 7 tests were completed in 0.019 with 7 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatDecodableResponseSerializerFailsWhenDataIsEmpty | ✅ |0.003s ⌛️ | +| testThatDecodableResponseSerializerFailsWhenDataIsInvalidRepresentation | ✅ |0.004s ⌛️ | +| testThatDecodableResponseSerializerFailsWhenDataIsNil | ✅ |0.002s ⌛️ | +| testThatDecodableResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatDecodableResponseSerializerFailsWhenErrorIsNotNil | ✅ |0.002s ⌛️ | +| testThatDecodableResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ |0.003s ⌛️ | +| testThatDecodableResponseSerializerSucceedsWhenDataIsValidJSON | ✅ |0.003s ⌛️ | + +DownloadInitializationTestCase: 2 tests were completed in 0.335 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testDownloadClassMethodWithMethodURLAndDestination | ✅ |0.169s ⌛️ | +| testDownloadClassMethodWithMethodURLHeadersAndDestination | ✅ |0.166s ⌛️ | + +DownloadResponseFlatMapErrorTestCase: 3 tests were completed in 3.105 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatFlatMapErrorCatchesTransformationError | ✅ |2.919s ⌛️ | +| testThatFlatMapErrorPreservesSuccessValue | ✅ |0.176s ⌛️ | +| testThatFlatMapErrorTransformsError | ✅ |0.01s ⌛️ | + +DownloadResponseFlatMapTestCase: 3 tests were completed in 0.371 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatFlatMapCatchesTransformationError | ✅ |0.189s ⌛️ | +| testThatFlatMapPreservesFailureError | ✅ |0.009s ⌛️ | +| testThatFlatMapTransformsSuccessValue | ✅ |0.173s ⌛️ | + +DownloadResponseMapErrorTestCase: 2 tests were completed in 0.18 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatMapErrorPreservesSuccessValue | ✅ |0.172s ⌛️ | +| testThatMapErrorTransformsFailureValue | ✅ |0.008s ⌛️ | + +DownloadResponseMapTestCase: 2 tests were completed in 0.183 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatMapPreservesFailureError | ✅ |0.009s ⌛️ | +| testThatMapTransformsSuccessValue | ✅ |0.174s ⌛️ | + +DownloadResponseSerializationTestCase: 26 tests were completed in 0.07300000000000002 with 26 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatDataResponseSerializerFailsWhenErrorIsNotNil | ✅ |0.003s ⌛️ | +| testThatDataResponseSerializerFailsWhenFileDataIsEmpty | ✅ |0.003s ⌛️ | +| testThatDataResponseSerializerFailsWhenFileURLIsInvalid | ✅ |0.003s ⌛️ | +| testThatDataResponseSerializerFailsWhenFileURLIsNil | ✅ |0.002s ⌛️ | +| testThatDataResponseSerializerFailsWhenFileURLIsNilWithNonEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatDataResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatDataResponseSerializerSucceedsWhenFileDataIsNotNil | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerFailsWhenDataIsInvalidJSON | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatJSONResponseSerializerFailsWhenErrorIsNotNil | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerFailsWhenFileDataIsEmpty | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerFailsWhenFileURLIsInvalid | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerFailsWhenFileURLIsNil | ✅ |0.002s ⌛️ | +| testThatJSONResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ |0.003s ⌛️ | +| testThatJSONResponseSerializerSucceedsWhenDataIsValidJSON | ✅ |0.003s ⌛️ | +| testThatStringResponseSerializerFailsWhenDataIsNilWithNonEmptyResponseStatusCode | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWhenErrorIsNotNil | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWhenFileDataIsEmpty | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWhenFileURLIsInvalid | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWhenFileURLIsNil | ✅ |0.002s ⌛️ | +| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ProvidedEncoding | ✅ |0.005s ⌛️ | +| testThatStringResponseSerializerFailsWithUTF32DataAndUTF8ResponseEncoding | ✅ |0.003s ⌛️ | +| testThatStringResponseSerializerSucceedsWhenDataIsNilWithEmptyResponseStatusCode | ✅ |0.003s ⌛️ | +| testThatStringResponseSerializerSucceedsWithUTF8DataAndNoProvidedEncoding | ✅ |0.003s ⌛️ | +| testThatStringResponseSerializerSucceedsWithUTF8DataAndUTF8ProvidedEncoding | ✅ |0.005s ⌛️ | +| testThatStringResponseSerializerSucceedsWithUTF8DataUsingResponseTextEncodingName | ✅ |0.004s ⌛️ | + +DownloadResponseTestCase: 9 tests were completed in 2.138 with 9 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testCancelledDownloadRequest | ✅ |0.005s ⌛️ | +| testDownloadRequest | ✅ |0.329s ⌛️ | +| testDownloadRequestWithHeaders | ✅ |0.169s ⌛️ | +| testDownloadRequestWithParameters | ✅ |0.175s ⌛️ | +| testDownloadRequestWithProgress | ✅ |0.696s ⌛️ | +| testThatDownloadingFileAndMovingToDestinationThatIsOccupiedThrowsError | ✅ |0.202s ⌛️ | +| testThatDownloadingFileAndMovingToDirectoryThatDoesNotExistThrowsError | ✅ |0.184s ⌛️ | +| testThatDownloadOptionsCanCreateIntermediateDirectoriesPriorToMovingFile | ✅ |0.192s ⌛️ | +| testThatDownloadOptionsCanRemovePreviousFilePriorToMovingFile | ✅ |0.186s ⌛️ | + +DownloadResumeDataTestCase: 3 tests were completed in 5.079000000000001 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatCancelledDownloadCanBeResumedWithResumeData | ✅ |4.014s ⌛️ | +| testThatCancelledDownloadResponseDataMatchesResumeData | ✅ |0.546s ⌛️ | +| testThatCancelledDownloadResumeDataIsAvailableWithJSONResponseSerializer | ✅ |0.519s ⌛️ | + +HTTPDigestAuthenticationTestCase: 2 tests were completed in 1.915 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testHTTPDigestAuthenticationWithInvalidCredentials | ✅ |1.057s ⌛️ | +| testHTTPDigestAuthenticationWithValidCredentials | ✅ |0.858s ⌛️ | + +HTTPHeadersTests: 6 tests were completed in 0.013000000000000001 with 6 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testHeadersAreStoreUniquelyByCaseInsensitiveName | ✅ |0.003s ⌛️ | +| testHeadersCanBeProperlySortedByName | ✅ |0.002s ⌛️ | +| testHeadersCanInsensitivelyGetAndSetThroughSubscript | ✅ |0.002s ⌛️ | +| testHeadersHaveUnsortedDescription | ✅ |0.002s ⌛️ | +| testHeadersPreserveLastFormAndValueOfAName | ✅ |0.002s ⌛️ | +| testHeadersPreserveOrderOfInsertion | ✅ |0.002s ⌛️ | + +JSONParameterEncoderTests: 5 tests were completed in 0.013 with 5 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatDataIsProperlyEncodedAndProperContentTypeIsSet | ✅ |0.003s ⌛️ | +| testThatDataIsProperlyEncodedButContentTypeIsNotSetIfRequestAlreadyHasAContentType | ✅ |0.002s ⌛️ | +| testThatJSONEncoderCanBeCustomized | ✅ |0.002s ⌛️ | +| testThatJSONEncoderDefaultWorks | ✅ |0.004s ⌛️ | +| testThatJSONEncoderPrettyPrintedPrintsPretty | ✅ |0.002s ⌛️ | + +JSONParameterEncodingTestCase: 4 tests were completed in 0.01 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testJSONParameterEncodeArray | ✅ |0.003s ⌛️ | +| testJSONParameterEncodeComplexParameters | ✅ |0.003s ⌛️ | +| testJSONParameterEncodeNilParameters | ✅ |0.002s ⌛️ | +| testJSONParameterEncodeParametersRetainsCustomContentType | ✅ |0.002s ⌛️ | + +MultipartFormDataEncodingTestCase: 7 tests were completed in 0.049 with 7 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testEncodingDataBodyPart | ✅ |0.003s ⌛️ | +| testEncodingFileBodyPart | ✅ |0.021s ⌛️ | +| testEncodingMultipleBodyPartsWithVaryingTypes | ✅ |0.006s ⌛️ | +| testEncodingMultipleDataBodyParts | ✅ |0.003s ⌛️ | +| testEncodingMultipleFileBodyParts | ✅ |0.007s ⌛️ | +| testEncodingMultipleStreamBodyParts | ✅ |0.005s ⌛️ | +| testEncodingStreamBodyPart | ✅ |0.004s ⌛️ | + +MultipartFormDataFailureTestCase: 6 tests were completed in 0.021 with 6 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatAppendingFileBodyPartThatIsDirectoryReturnsError | ✅ |0.003s ⌛️ | +| testThatAppendingFileBodyPartThatIsNotFileURLReturnsError | ✅ |0.003s ⌛️ | +| testThatAppendingFileBodyPartThatIsNotReachableReturnsError | ✅ |0.004s ⌛️ | +| testThatAppendingFileBodyPartWithInvalidLastPathComponentReturnsError | ✅ |0.003s ⌛️ | +| testThatWritingEncodedDataToBadURLFails | ✅ |0.003s ⌛️ | +| testThatWritingEncodedDataToExistingFileURLFails | ✅ |0.005s ⌛️ | + +MultipartFormDataPropertiesTestCase: 2 tests were completed in 0.006 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatContentLengthMatchesTotalBodyPartSize | ✅ |0.003s ⌛️ | +| testThatContentTypeContainsBoundary | ✅ |0.003s ⌛️ | + +MultipartFormDataWriteEncodedDataToDiskTestCase: 7 tests were completed in 0.041999999999999996 with 7 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testWritingEncodedDataBodyPartToDisk | ✅ |0.004s ⌛️ | +| testWritingEncodedFileBodyPartToDisk | ✅ |0.006s ⌛️ | +| testWritingEncodedStreamBodyPartToDisk | ✅ |0.005s ⌛️ | +| testWritingMultipleEncodedBodyPartsWithVaryingTypesToDisk | ✅ |0.008s ⌛️ | +| testWritingMultipleEncodedDataBodyPartsToDisk | ✅ |0.003s ⌛️ | +| testWritingMultipleEncodedFileBodyPartsToDisk | ✅ |0.011s ⌛️ | +| testWritingMultipleEncodedStreamBodyPartsToDisk | ✅ |0.005s ⌛️ | + +MultipleValidationTestCase: 3 tests were completed in 0.5429999999999999 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatValidationForRequestWithAcceptableStatusCodeAndContentTypeResponseSucceeds | ✅ |0.178s ⌛️ | +| testThatValidationForRequestWithUnacceptableStatusCodeAndContentTypeResponseFailsWithContentTypeError | ✅ |0.181s ⌛️ | +| testThatValidationForRequestWithUnacceptableStatusCodeAndContentTypeResponseFailsWithStatusCodeError | ✅ |0.184s ⌛️ | + +NetworkReachabilityManagerTestCase: 17 tests were completed in 0.05200000000000002 with 17 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatAddressManagerCanBeDeinitialized | ✅ |0.003s ⌛️ | +| testThatAddressManagerIsNotifiedWhenStartListeningIsCalled | ✅ |0.004s ⌛️ | +| testThatAddressManagerStartsWithReachableStatus | ✅ |0.003s ⌛️ | +| testThatHostManagerCanBeDeinitialized | ✅ |0.002s ⌛️ | +| testThatHostManagerIsNotifiedWhenStartListeningIsCalled | ✅ |0.004s ⌛️ | +| testThatHostManagerIsReachableOnWiFi | ✅ |0.004s ⌛️ | +| testThatHostManagerStartsWithReachableStatus | ✅ |0.004s ⌛️ | +| testThatManagerCanBeInitializedFromAddress | ✅ |0.003s ⌛️ | +| testThatManagerCanBeInitializedFromHost | ✅ |0.003s ⌛️ | +| testThatManagerReturnsNotReachableOnWWANStatusWhenIsWWANAndConnectionIsRequired | ✅ |0.003s ⌛️ | +| testThatManagerReturnsNotReachableStatusWhenConnectionIsRequired | ✅ |0.003s ⌛️ | +| testThatManagerReturnsNotReachableStatusWhenInterventionIsRequired | ✅ |0.003s ⌛️ | +| testThatManagerReturnsNotReachableStatusWhenReachableFlagIsAbsent | ✅ |0.003s ⌛️ | +| testThatManagerReturnsReachableOnWiFiStatusWhenConnectionIsNotRequired | ✅ |0.003s ⌛️ | +| testThatManagerReturnsReachableOnWiFiStatusWhenConnectionIsOnDemand | ✅ |0.002s ⌛️ | +| testThatManagerReturnsReachableOnWiFiStatusWhenConnectionIsOnTraffic | ✅ |0.002s ⌛️ | +| testThatManagerReturnsReachableOnWWANStatusWhenIsWWAN | ✅ |0.003s ⌛️ | + +RequestDebugDescriptionTestCase: 9 tests were completed in 4.523999999999999 with 9 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testGETRequestDebugDescription | ✅ |0.646s ⌛️ | +| testGETRequestWithDuplicateHeadersDebugDescription | ✅ |0.658s ⌛️ | +| testGETRequestWithJSONHeaderDebugDescription | ✅ |0.652s ⌛️ | +| testMultipartFormDataRequestWithDuplicateHeadersDebugDescription | ✅ |0.599s ⌛️ | +| testPOSTRequestDebugDescription | ✅ |0.605s ⌛️ | +| testPOSTRequestWithCookieDebugDescription | ✅ |0.682s ⌛️ | +| testPOSTRequestWithCookiesDisabledDebugDescription | ✅ |0.004s ⌛️ | +| testPOSTRequestWithJSONParametersDebugDescription | ✅ |0.666s ⌛️ | +| testThatRequestWithInvalidURLDebugDescription | ✅ |0.012s ⌛️ | + +RequestDescriptionTestCase: 1 tests were completed in 0.733 with 1 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testRequestDescription | ✅ |0.733s ⌛️ | + +RequestResponseTestCase: 8 tests were completed in 3.2600000000000002 with 8 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testPOSTRequestWithBase64EncodedImages | ✅ |1.134s ⌛️ | +| testPOSTRequestWithUnicodeParameters | ✅ |0.188s ⌛️ | +| testRequestResponse | ✅ |0.191s ⌛️ | +| testRequestResponseWithProgress | ✅ |0.578s ⌛️ | +| testThatRequestsCanPassEncodableParametersAsAURLQuery | ✅ |0.184s ⌛️ | +| testThatRequestsCanPassEncodableParametersAsJSONBodyData | ✅ |0.184s ⌛️ | +| testThatRequestsCanPassEncodableParametersAsURLEncodedBodyData | ✅ |0.188s ⌛️ | +| testThatResponseSerializationWorksWithSerializationQueue | ✅ |0.613s ⌛️ | + +ResponseDataTestCase: 2 tests were completed in 0.191 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatResponseDataReturnsFailureResultWithOptionalDataAndError | ✅ |0.011s ⌛️ | +| testThatResponseDataReturnsSuccessResultWithValidData | ✅ |0.18s ⌛️ | + +ResponseFlatMapErrorTestCase: 3 tests were completed in 0.201 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatFlatMapErrorCatchesTransformationError | ✅ |0.009s ⌛️ | +| testThatFlatMapErrorPreservesSuccessValue | ✅ |0.182s ⌛️ | +| testThatFlatMapErrorTransformsError | ✅ |0.01s ⌛️ | + +ResponseFlatMapTestCase: 3 tests were completed in 0.38 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatFlatMapCatchesTransformationError | ✅ |0.182s ⌛️ | +| testThatFlatMapPreservesFailureError | ✅ |0.011s ⌛️ | +| testThatFlatMapTransformsSuccessValue | ✅ |0.187s ⌛️ | + +ResponseJSONDecodableTestCase: 2 tests were completed in 0.192 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatResponseJSONReturnsSuccessResultWithValidJSON | ✅ |0.182s ⌛️ | +| testThatResponseStringReturnsFailureResultWithOptionalDataAndError | ✅ |0.01s ⌛️ | + +ResponseJSONTestCase: 4 tests were completed in 0.564 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatResponseJSONReturnsSuccessResultForGETRequest | ✅ |0.186s ⌛️ | +| testThatResponseJSONReturnsSuccessResultForPOSTRequest | ✅ |0.18s ⌛️ | +| testThatResponseJSONReturnsSuccessResultWithValidJSON | ✅ |0.187s ⌛️ | +| testThatResponseStringReturnsFailureResultWithOptionalDataAndError | ✅ |0.011s ⌛️ | + +ResponseMapErrorTestCase: 2 tests were completed in 0.193 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatMapErrorPreservesSuccessValue | ✅ |0.183s ⌛️ | +| testThatMapErrorTransformsFailureValue | ✅ |0.01s ⌛️ | + +ResponseMapTestCase: 2 tests were completed in 0.218 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatMapPreservesFailureError | ✅ |0.012s ⌛️ | +| testThatMapTransformsSuccessValue | ✅ |0.206s ⌛️ | + +ResponseStringTestCase: 2 tests were completed in 0.193 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatResponseStringReturnsFailureResultWithOptionalDataAndError | ✅ |0.013s ⌛️ | +| testThatResponseStringReturnsSuccessResultWithValidString | ✅ |0.18s ⌛️ | + +ResponseTestCase: 2 tests were completed in 0.199 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatResponseReturnsFailureResultWithOptionalDataAndError | ✅ |0.01s ⌛️ | +| testThatResponseReturnsSuccessResultWithValidData | ✅ |0.189s ⌛️ | + +ResultTestCase: 34 tests were completed in 0.08800000000000005 with 34 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testFlatMapErrorCapturesThrownError | ✅ |0.002s ⌛️ | +| testFlatMapErrorTransformsErrorValue | ✅ |0.002s ⌛️ | +| testFunctionalMethodsCanBeChained | ✅ |0.002s ⌛️ | +| testIfFailureDoesNotExecuteWhenSuccess | ✅ |0.003s ⌛️ | +| testIfFailureExecutesWhenFailure | ✅ |0.003s ⌛️ | +| testIfSuccessDoesNotExecutesWhenFailure | ✅ |0.003s ⌛️ | +| testIfSuccessExecutesWhenSuccess | ✅ |0.003s ⌛️ | +| testMapErrorPreservesSuccessError | ✅ |0.003s ⌛️ | +| testMapErrorTransformsErrorValue | ✅ |0.003s ⌛️ | +| testThatDebugDescriptionStringMatchesExpectedValueForFailureCase | ✅ |0.003s ⌛️ | +| testThatDebugDescriptionStringMatchesExpectedValueForSuccessCase | ✅ |0.002s ⌛️ | +| testThatDescriptionStringMatchesExpectedValueForFailureCase | ✅ |0.003s ⌛️ | +| testThatDescriptionStringMatchesExpectedValueForSuccessCase | ✅ |0.002s ⌛️ | +| testThatErrorPropertyReturnsErrorForFailureCase | ✅ |0.003s ⌛️ | +| testThatErrorPropertyReturnsNilForSuccessCase | ✅ |0.003s ⌛️ | +| testThatFlatMapCatchesTransformationError | ✅ |0.002s ⌛️ | +| testThatFlatMapPreservesFailureError | ✅ |0.002s ⌛️ | +| testThatFlatMapTransformsSuccessValue | ✅ |0.002s ⌛️ | +| testThatInitializerFromThrowingClosureCatchesErrorAsAFailure | ✅ |0.003s ⌛️ | +| testThatInitializerFromThrowingClosureStoresResultAsASuccess | ✅ |0.003s ⌛️ | +| testThatIsFailurePropertyReturnsFalseForSuccessCase | ✅ |0.002s ⌛️ | +| testThatIsFailurePropertyReturnsTrueForFailureCase | ✅ |0.003s ⌛️ | +| testThatIsSuccessPropertyReturnsFalseForFailureCase | ✅ |0.003s ⌛️ | +| testThatIsSuccessPropertyReturnsTrueForSuccessCase | ✅ |0.002s ⌛️ | +| testThatMapPreservesFailureError | ✅ |0.002s ⌛️ | +| testThatMapTransformsSuccessValue | ✅ |0.002s ⌛️ | +| testThatUnwrapReturnsSuccessValue | ✅ |0.003s ⌛️ | +| testThatUnwrapThrowsFailureError | ✅ |0.003s ⌛️ | +| testThatValuePropertyReturnsNilForFailureCase | ✅ |0.002s ⌛️ | +| testThatValuePropertyReturnsValueForSuccessCase | ✅ |0.003s ⌛️ | +| testWithErrorDoesNotExecuteWhenSuccess | ✅ |0.003s ⌛️ | +| testWithErrorExecutesWhenFailure | ✅ |0.003s ⌛️ | +| testWithValueDoesNotExecutesWhenFailure | ✅ |0.002s ⌛️ | +| testWithValueExecutesWhenSuccess | ✅ |0.003s ⌛️ | + +ServerTrustPolicyCertificatesInBundleTestCase: 1 tests were completed in 0.019 with 1 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testOnlyValidCertificatesAreDetected | ✅ |0.019s ⌛️ | + +ServerTrustPolicyCompositeTestCase: 3 tests were completed in 0.041 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatExpiredLeafCertificateFailsDefaultAndRevocationComposite | ✅ |0.017s ⌛️ | +| testThatNonAnchoredRootCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.009s ⌛️ | +| testThatValidCertificateChainPassesDefaultAndRevocationCompositeChecks | ✅ |0.015s ⌛️ | + +ServerTrustPolicyDisableEvaluationTestCase: 2 tests were completed in 0.005 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatCertificateChainMissingIntermediateCertificatePassesEvaluation | ✅ |0.002s ⌛️ | +| testThatExpiredLeafCertificatePassesEvaluation | ✅ |0.003s ⌛️ | + +ServerTrustPolicyExplorationBasicX509PolicyValidationTestCase: 4 tests were completed in 0.03 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatAnchoredRootCertificatePassesBasicX509ValidationWithoutRootInTrust | ✅ |0.009s ⌛️ | +| testThatAnchoredRootCertificatePassesBasicX509ValidationWithRootInTrust | ✅ |0.005s ⌛️ | +| testThatCertificateMissingDNSNamePassesBasicX509Validation | ✅ |0.006s ⌛️ | +| testThatExpiredCertificateFailsBasicX509Validation | ✅ |0.01s ⌛️ | + +ServerTrustPolicyExplorationSSLPolicyValidationTestCase: 9 tests were completed in 0.066 with 9 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatAnchoredRootCertificatePassesSSLValidationWithoutRootInTrust | ✅ |0.007s ⌛️ | +| testThatAnchoredRootCertificatePassesSSLValidationWithRootInTrust | ✅ |0.007s ⌛️ | +| testThatCertificateMissingDNSNameFailsSSLValidation | ✅ |0.007s ⌛️ | +| testThatDNSNameCertificatePassesSSLValidation | ✅ |0.006s ⌛️ | +| testThatExpiredCertificateFailsSSLValidation | ✅ |0.008s ⌛️ | +| testThatMultipleDNSNamesCertificatePassesSSLValidationForAllEntries | ✅ |0.007s ⌛️ | +| testThatPassingNilForHostParameterAllowsCertificateMissingDNSNameToPassSSLValidation | ✅ |0.005s ⌛️ | +| testThatURICertificateFailsSSLValidation | ✅ |0.007s ⌛️ | +| testThatWildcardCertificatePassesSSLValidation | ✅ |0.012s ⌛️ | + +ServerTrustPolicyPerformDefaultEvaluationTestCase: 11 tests were completed in 0.094 with 11 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatExpiredCertificateChainFailsEvaluationWithHostValidation | ✅ |0.01s ⌛️ | +| testThatExpiredCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.01s ⌛️ | +| testThatMissingDNSNameLeafCertificateFailsEvaluationWithHostValidation | ✅ |0.009s ⌛️ | +| testThatMissingDNSNameLeafCertificatePassesEvaluationWithoutHostValidation | ✅ |0.007s ⌛️ | +| testThatMissingIntermediateCertificateInChainFailsEvaluationWithHostValidation | ✅ |0.006s ⌛️ | +| testThatMissingIntermediateCertificateInChainFailsEvaluationWithoutHostValidation | ✅ |0.004s ⌛️ | +| testThatNonAnchoredRootCertificateChainFailsEvaluationWithHostValidation | ✅ |0.009s ⌛️ | +| testThatNonAnchoredRootCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.009s ⌛️ | +| testThatValidCertificateChainPassesEvaluationWithHostValidation | ✅ |0.011s ⌛️ | +| testThatValidCertificateChainPassesEvaluationWithoutHostValidation | ✅ |0.007s ⌛️ | +| testThatWildcardedLeafCertificateChainPassesEvaluationWithHostValidation | ✅ |0.012s ⌛️ | + +ServerTrustPolicyPerformRevokedEvaluationTestCase: 11 tests were completed in 0.11699999999999999 with 11 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatExpiredCertificateChainFailsEvaluationWithHostValidation | ✅ |0.008s ⌛️ | +| testThatExpiredCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.01s ⌛️ | +| testThatMissingDNSNameLeafCertificateFailsEvaluationWithHostValidation | ✅ |0.014s ⌛️ | +| testThatMissingDNSNameLeafCertificatePassesEvaluationWithoutHostValidation | ✅ |0.011s ⌛️ | +| testThatMissingIntermediateCertificateInChainFailsEvaluationWithHostValidation | ✅ |0.006s ⌛️ | +| testThatMissingIntermediateCertificateInChainFailsEvaluationWithoutHostValidation | ✅ |0.006s ⌛️ | +| testThatNonAnchoredRootCertificateChainFailsEvaluationWithHostValidation | ✅ |0.008s ⌛️ | +| testThatNonAnchoredRootCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.009s ⌛️ | +| testThatValidCertificateChainPassesEvaluationWithHostValidation | ✅ |0.018s ⌛️ | +| testThatValidCertificateChainPassesEvaluationWithoutHostValidation | ✅ |0.012s ⌛️ | +| testThatWildcardedLeafCertificateChainPassesEvaluationWithHostValidation | ✅ |0.015s ⌛️ | + +ServerTrustPolicyPinCertificatesTestCase: 23 tests were completed in 0.23100000000000007 with 23 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatPinnedIntermediateCertificatePassesEvaluationWithoutHostValidation | ✅ |0.009s ⌛️ | +| testThatPinnedIntermediateCertificatePassesEvaluationWithSelfSignedSupportAndHostValidation | ✅ |0.014s ⌛️ | +| testThatPinnedIntermediateCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ |0.01s ⌛️ | +| testThatPinnedLeafCertificatePassesEvaluationWithoutHostValidation | ✅ |0.011s ⌛️ | +| testThatPinnedLeafCertificatePassesEvaluationWithSelfSignedSupportAndHostValidation | ✅ |0.007s ⌛️ | +| testThatPinnedLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ |0.01s ⌛️ | +| testThatPinnedRootCertificatePassesEvaluationWithoutHostValidation | ✅ |0.01s ⌛️ | +| testThatPinnedRootCertificatePassesEvaluationWithSelfSignedSupportAndHostValidation | ✅ |0.012s ⌛️ | +| testThatPinnedRootCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ |0.01s ⌛️ | +| testThatPinningExpiredLeafCertificateFailsEvaluationWithHostValidation | ✅ |0.01s ⌛️ | +| testThatPinningExpiredLeafCertificateFailsEvaluationWithoutHostValidation | ✅ |0.011s ⌛️ | +| testThatPinningExpiredLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ |0.009s ⌛️ | +| testThatPinningIntermediateCertificateNotInCertificateChainFailsEvaluationWithHostValidation | ✅ |0.011s ⌛️ | +| testThatPinningIntermediateCertificateNotInCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.01s ⌛️ | +| testThatPinningIntermediateCertificateNotInCertificateChainWithoutCertificateChainValidationFailsEvaluation | ✅ |0.008s ⌛️ | +| testThatPinningIntermediateCertificateWithExpiredLeafCertificateFailsEvaluationWithHostValidation | ✅ |0.007s ⌛️ | +| testThatPinningIntermediateCertificateWithExpiredLeafCertificateFailsEvaluationWithoutHostValidation | ✅ |0.012s ⌛️ | +| testThatPinningIntermediateCertificateWithExpiredLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ |0.009s ⌛️ | +| testThatPinningLeafCertificateNotInCertificateChainFailsEvaluationWithHostValidation | ✅ |0.008s ⌛️ | +| testThatPinningLeafCertificateNotInCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.009s ⌛️ | +| testThatPinningLeafCertificateNotInCertificateChainWithoutCertificateChainValidationFailsEvaluation | ✅ |0.013s ⌛️ | +| testThatPinningMultipleCertificatesWithoutCertificateChainValidationPassesEvaluation | ✅ |0.012s ⌛️ | +| testThatPinningRootCertificateWithExpiredLeafCertificateWithoutCertificateChainValidationPassesEvaluation | ✅ |0.009s ⌛️ | + +ServerTrustPolicyPinPublicKeysTestCase: 16 tests were completed in 0.14100000000000001 with 16 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatPinningBackupKeyPassesEvaluationWithHostValidation | ✅ |0.011s ⌛️ | +| testThatPinningBackupKeyPassesEvaluationWithoutHostValidation | ✅ |0.007s ⌛️ | +| testThatPinningIntermediateKeyPassesEvaluationWithHostValidation | ✅ |0.01s ⌛️ | +| testThatPinningIntermediateKeyPassesEvaluationWithoutHostValidation | ✅ |0.006s ⌛️ | +| testThatPinningIntermediateKeyWithoutCertificateChainValidationPassesEvaluationWithExpiredLeafCertificate | ✅ |0.008s ⌛️ | +| testThatPinningKeyNotInCertificateChainFailsEvaluationWithHostValidation | ✅ |0.013s ⌛️ | +| testThatPinningKeyNotInCertificateChainFailsEvaluationWithoutHostValidation | ✅ |0.008s ⌛️ | +| testThatPinningLeafKeyPassesEvaluationWithHostValidation | ✅ |0.012s ⌛️ | +| testThatPinningLeafKeyPassesEvaluationWithoutHostValidation | ✅ |0.008s ⌛️ | +| testThatPinningLeafKeyWithoutCertificateChainValidationPassesEvaluationWithExpiredLeafCertificate | ✅ |0.009s ⌛️ | +| testThatPinningLeafKeyWithoutCertificateChainValidationPassesEvaluationWithIncorrectIntermediateCertificate | ✅ |0.004s ⌛️ | +| testThatPinningLeafKeyWithoutCertificateChainValidationPassesEvaluationWithMissingIntermediateCertificate | ✅ |0.007s ⌛️ | +| testThatPinningRootKeyPassesEvaluationWithHostValidation | ✅ |0.014s ⌛️ | +| testThatPinningRootKeyPassesEvaluationWithoutHostValidation | ✅ |0.007s ⌛️ | +| testThatPinningRootKeyWithoutCertificateChainValidationFailsEvaluationWithMissingIntermediateCertificate | ✅ |0.006s ⌛️ | +| testThatPinningRootKeyWithoutCertificateChainValidationPassesEvaluationWithExpiredLeafCertificate | ✅ |0.011s ⌛️ | + +SessionDelegateTestCase: 4 tests were completed in 3.583 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatAppropriateNotificationsAreCalledWithRequestForDataRequest | ✅ |0.735s ⌛️ | +| testThatDidCompleteNotificationIsCalledWithRequestForDownloadRequests | ✅ |0.631s ⌛️ | +| testThatRequestWillPerformHTTPRedirectionByDefault | ✅ |0.85s ⌛️ | +| testThatRequestWillPerformRedirectionMultipleTimesByDefault | ✅ |1.367s ⌛️ | + +SessionManagerConfigurationHeadersTestCase: 2 tests were completed in 1.287 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatDefaultConfigurationHeadersAreSentWithRequest | ✅ |0.609s ⌛️ | +| testThatEphemeralConfigurationHeadersAreSentWithRequest | ✅ |0.678s ⌛️ | + +SessionTestCase: 29 tests were completed in 6.391999999999998 with 29 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testDefaultAcceptEncodingSupportsAppropriateEncodingsOnAppropriateSystems | ✅ |0.722s ⌛️ | +| testDefaultUserAgentHeader | ✅ |0.003s ⌛️ | +| testInitializerWithDefaultArguments | ✅ |0.004s ⌛️ | +| testInitializerWithSpecifiedArguments | ✅ |0.003s ⌛️ | +| testReleasingManagerWithPendingCanceledRequestDeinitializesSuccessfully | ✅ |0.003s ⌛️ | +| testReleasingManagerWithPendingRequestDeinitializesSuccessfully | ✅ |0.005s ⌛️ | +| testSetStartRequestsImmediatelyToFalseAndCancelledCallsResponseHandlers | ✅ |0.005s ⌛️ | +| testSetStartRequestsImmediatelyToFalseAndCancelThenResumeRequestDoesntCreateTaskAndStaysCancelled | ✅ |0.006s ⌛️ | +| testSetStartRequestsImmediatelyToFalseAndResumeRequest | ✅ |0.636s ⌛️ | +| testSetStartRequestsImmediatelyToFalseAndResumeThenCancelRequestHasCorrectOutput | ✅ |0.006s ⌛️ | +| testThatDataRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ |0.007s ⌛️ | +| testThatDownloadRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ |0.005s ⌛️ | +| testThatRequestAdapterErrorThrowsResponseHandlerError | ✅ |0.004s ⌛️ | +| testThatRequestAdapterErrorThrowsResponseHandlerErrorWhenRequestIsRetried | ✅ |0.896s ⌛️ | +| testThatSessionInitializerSucceedsWithDefaultArguments | ✅ |0.004s ⌛️ | +| testThatSessionInitializerSucceedsWithSpecifiedArguments | ✅ |0.003s ⌛️ | +| testThatSessionManagerCallsAdapterWhenRequestIsRetried | ✅ |0.997s ⌛️ | +| testThatSessionManagerCallsRequestAdapterWhenCreatingDataRequest | ✅ |0.004s ⌛️ | +| testThatSessionManagerCallsRequestAdapterWhenCreatingDownloadRequest | ✅ |0.005s ⌛️ | +| testThatSessionManagerCallsRequestAdapterWhenCreatingUploadRequestWithData | ✅ |0.007s ⌛️ | +| testThatSessionManagerCallsRequestAdapterWhenCreatingUploadRequestWithFile | ✅ |0.006s ⌛️ | +| testThatSessionManagerCallsRequestAdapterWhenCreatingUploadRequestWithInputStream | ✅ |0.006s ⌛️ | +| testThatSessionManagerCallsRequestRetrierWhenDownloadInitiallyEncountersAdaptError | ✅ |0.629s ⌛️ | +| testThatSessionManagerCallsRequestRetrierWhenRequestEncountersError | ✅ |1.097s ⌛️ | +| testThatSessionManagerCallsRequestRetrierWhenRequestInitiallyEncountersAdaptError | ✅ |0.686s ⌛️ | +| testThatSessionManagerCallsRequestRetrierWhenUploadInitiallyEncountersAdaptError | ✅ |0.629s ⌛️ | +| testThatUploadDataRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ |0.004s ⌛️ | +| testThatUploadFileRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ |0.005s ⌛️ | +| testThatUploadStreamRequestWithInvalidURLStringThrowsResponseHandlerError | ✅ |0.005s ⌛️ | + +SortedKeysJSONParameterEncoderTests: 1 tests were completed in 0.004 with 1 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testTestJSONEncoderSortedKeysHasSortedKeys | ✅ |0.004s ⌛️ | + +StatusCodeValidationTestCase: 3 tests were completed in 0.5389999999999999 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatValidationForRequestWithAcceptableStatusCodeResponseSucceeds | ✅ |0.18s ⌛️ | +| testThatValidationForRequestWithNoAcceptableStatusCodesFails | ✅ |0.18s ⌛️ | +| testThatValidationForRequestWithUnacceptableStatusCodeResponseFails | ✅ |0.179s ⌛️ | + +TLSEvaluationExpiredLeafCertificateTestCase: 14 tests were completed in 6.6690000000000005 with 14 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatExpiredCertificateRequestFailsWhenPinningAllCertificatesWithCertificateChainValidation | ✅ |0.58s ⌛️ | +| testThatExpiredCertificateRequestFailsWhenPinningLeafCertificateWithCertificateChainValidation | ✅ |0.323s ⌛️ | +| testThatExpiredCertificateRequestFailsWhenPinningLeafPublicKeyWithCertificateChainValidation | ✅ |0.318s ⌛️ | +| testThatExpiredCertificateRequestFailsWithDefaultServerTrustPolicy | ✅ |0.322s ⌛️ | +| testThatExpiredCertificateRequestFailsWithNoServerTrustPolicy | ✅ |0.329s ⌛️ | +| testThatExpiredCertificateRequestFailsWithRevokedServerTrustPolicy | ✅ |0.319s ⌛️ | +| testThatExpiredCertificateRequestSucceedsWhenDisablingEvaluation | ✅ |0.631s ⌛️ | +| testThatExpiredCertificateRequestSucceedsWhenPinningIntermediateCACertificateWithoutCertificateChainOrHostValidation | ✅ |0.627s ⌛️ | +| testThatExpiredCertificateRequestSucceedsWhenPinningIntermediateCAPublicKeyWithoutCertificateChainOrHostValidation | ✅ |0.626s ⌛️ | +| testThatExpiredCertificateRequestSucceedsWhenPinningLeafCertificateWithoutCertificateChainOrHostValidation | ✅ |0.686s ⌛️ | +| testThatExpiredCertificateRequestSucceedsWhenPinningLeafPublicKeyWithoutCertificateChainOrHostValidation | ✅ |0.626s ⌛️ | +| testThatExpiredCertificateRequestSucceedsWhenPinningRootCACertificateWithoutCertificateChainValidation | ✅ |0.335s ⌛️ | +| testThatExpiredCertificateRequestSucceedsWhenPinningRootCAPublicKeyWithoutCertificateChainValidation | ✅ |0.325s ⌛️ | +| testThatRevokedCertificateRequestFailsWithRevokedServerTrustPolicy | ✅ |0.622s ⌛️ | + +URLEncodedFormEncoderTests: 38 tests were completed in 0.12600000000000006 with 38 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testEncoderCanEncodeDictionary | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeDouble | ✅ |0.004s ⌛️ | +| testEncoderCanEncodeFloat | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeInt16 | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeInt32 | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeInt64 | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeInt8 | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeUInt | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeUInt16 | ✅ |0.004s ⌛️ | +| testEncoderCanEncodeUInt32 | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeUInt64 | ✅ |0.003s ⌛️ | +| testEncoderCanEncodeUInt8 | ✅ |0.003s ⌛️ | +| testEncoderThrowsErrorWhenAttemptingToEncodeNilInKeyedContainer | ✅ |0.003s ⌛️ | +| testEncoderThrowsErrorWhenAttemptingToEncodeNilInUnkeyedContainer | ✅ |0.003s ⌛️ | +| testStringWithThousandsOfChineseCharactersIsPercentEscaped | ✅ |0.011s ⌛️ | +| testThatAmpersandsInKeysAndValuesArePercentEscaped | ✅ |0.004s ⌛️ | +| testThatARootArrayCannotBeEncoded | ✅ |0.004s ⌛️ | +| testThatARootValueCannotBeEncoded | ✅ |0.003s ⌛️ | +| testThatArraysCanBeEncodedWithoutBrackets | ✅ |0.003s ⌛️ | +| testThatBoolsCanBeLiteralEncoded | ✅ |0.003s ⌛️ | +| testThatEncodableClassWithNoInheritanceCanBeEncoded | ✅ |0.003s ⌛️ | +| testThatEncodableStructCanBeEncoded | ✅ |0.004s ⌛️ | +| testThatEncodableSubclassCanBeEncoded | ✅ |0.003s ⌛️ | +| testThatEscapedCharactersCanBeCustomized | ✅ |0.002s ⌛️ | +| testThatIllegalASCIICharactersArePercentEscaped | ✅ |0.004s ⌛️ | +| testThatManuallyEncodableStructCanBeEncoded | ✅ |0.005s ⌛️ | +| testThatManuallyEncodableSubclassCanBeEncoded | ✅ |0.004s ⌛️ | +| testThatNestedDictionariesHaveBracketedKeys | ✅ |0.004s ⌛️ | +| testThatNonLatinCharactersArePercentEscaped | ✅ |0.003s ⌛️ | +| testThatOptionalValuesCannotBeEncoded | ✅ |0.003s ⌛️ | +| testThatPercentsInKeysAndValuesArePercentEscaped | ✅ |0.002s ⌛️ | +| testThatPlusesInKeysAndValuesArePercentEscaped | ✅ |0.002s ⌛️ | +| testThatQuestionMarksInKeysAndValuesAreNotPercentEscaped | ✅ |0.002s ⌛️ | +| testThatReseredCharactersArePercentEscaped | ✅ |0.002s ⌛️ | +| testThatSlashesInKeysAndValuesAreNotPercentEscaped | ✅ |0.002s ⌛️ | +| testThatSpacesCanBeEncodedAsPluses | ✅ |0.003s ⌛️ | +| testThatSpacesInKeysAndValuesArePercentEscaped | ✅ |0.004s ⌛️ | +| testThatUnreservedCharactersAreNotPercentEscaped | ✅ |0.002s ⌛️ | + +URLEncodedFormParameterEncoderTests: 4 tests were completed in 0.011000000000000001 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatEncoderCanBeCustomized | ✅ |0.003s ⌛️ | +| testThatQueryIsBodyEncodedAndProperContentTypeIsSetForPOSTRequest | ✅ |0.003s ⌛️ | +| testThatQueryIsBodyEncodedButContentTypeIsNotSetWhenRequestAlreadyHasContentType | ✅ |0.003s ⌛️ | +| testThatQueryIsInURLWhenDestinationIsURLAndMethodIsPOST | ✅ |0.002s ⌛️ | + +URLParameterEncodingTestCase: 36 tests were completed in 0.11400000000000007 with 36 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatIllegalASCIICharactersArePercentEscaped | ✅ |0.004s ⌛️ | +| testThatReservedCharactersArePercentEscapedMinusQuestionMarkAndForwardSlash | ✅ |0.003s ⌛️ | +| testThatReservedCharactersQuestionMarkAndForwardSlashAreNotPercentEscaped | ✅ |0.003s ⌛️ | +| testThatUnreservedLowercaseCharactersAreNotPercentEscaped | ✅ |0.004s ⌛️ | +| testThatUnreservedNumericCharactersAreNotPercentEscaped | ✅ |0.003s ⌛️ | +| testThatUnreservedUppercaseCharactersAreNotPercentEscaped | ✅ |0.002s ⌛️ | +| testThatURLEncodedInURLParameterEncodingEncodesPOSTParametersInURL | ✅ |0.003s ⌛️ | +| testThatURLParameterEncodingEncodesGETParametersInURL | ✅ |0.003s ⌛️ | +| testThatURLParameterEncodingEncodesPOSTParametersInHTTPBody | ✅ |0.003s ⌛️ | +| testURLParameterEncodeEmptyDictionaryParameter | ✅ |0.002s ⌛️ | +| testURLParameterEncodeNilParameters | ✅ |0.002s ⌛️ | +| testURLParameterEncodeOneStringKeyStringValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeOneStringKeyStringValueParameterAppendedToQuery | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringForRequestWithPrecomposedQuery | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringKeyArrayValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringKeyArrayValueParameterWithoutBrackets | ✅ |0.004s ⌛️ | +| testURLParameterEncodeStringKeyBoolValueParameter | ✅ |0.004s ⌛️ | +| testURLParameterEncodeStringKeyDictionaryValueParameter | ✅ |0.004s ⌛️ | +| testURLParameterEncodeStringKeyDoubleValueParameter | ✅ |0.004s ⌛️ | +| testURLParameterEncodeStringKeyIntegerValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringKeyNestedDictionaryArrayValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringKeyNestedDictionaryArrayValueParameterWithoutBrackets | ✅ |0.002s ⌛️ | +| testURLParameterEncodeStringKeyNestedDictionaryValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringKeyNonLatinStringValueParameter | ✅ |0.002s ⌛️ | +| testURLParameterEncodeStringKeyNSNumberBoolValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringKeyNSNumberIntegerValueParameter | ✅ |0.002s ⌛️ | +| testURLParameterEncodeStringKeyPercentEncodedStringValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringWithAmpersandKeyStringWithAmpersandValueParameter | ✅ |0.002s ⌛️ | +| testURLParameterEncodeStringWithPlusKeyStringWithPlusValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringWithPlusKeyStringWithPlusValueParameterForRequestWithPrecomposedQuery | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringWithQuestionMarkKeyStringWithQuestionMarkValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringWithSlashKeyStringWithQuestionMarkValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringWithSpaceKeyStringWithSpaceValueParameter | ✅ |0.003s ⌛️ | +| testURLParameterEncodeStringWithThousandsOfChineseCharacters | ✅ |0.008s ⌛️ | +| testURLParameterEncodeTwoStringKeyStringValueParameters | ✅ |0.004s ⌛️ | +| testURLParameterLiteralBoolEncodingWorksAndDoesNotAffectNumbers | ✅ |0.004s ⌛️ | + +URLProtocolTestCase: 1 tests were completed in 0.636 with 1 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatURLProtocolReceivesRequestHeadersAndSessionConfigurationHeaders | ✅ |0.636s ⌛️ | + +UploadDataInitializationTestCase: 2 tests were completed in 0.361 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testUploadClassMethodWithMethodURLAndData | ✅ |0.181s ⌛️ | +| testUploadClassMethodWithMethodURLHeadersAndData | ✅ |0.18s ⌛️ | + +UploadDataTestCase: 2 tests were completed in 0.405 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testUploadDataRequest | ✅ |0.183s ⌛️ | +| testUploadDataRequestWithProgress | ✅ |0.222s ⌛️ | + +UploadFileInitializationTestCase: 2 tests were completed in 0.479 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testUploadClassMethodWithMethodURLAndFile | ✅ |0.237s ⌛️ | +| testUploadClassMethodWithMethodURLHeadersAndFile | ✅ |0.242s ⌛️ | + +UploadMultipartFormDataTestCase: 8 tests were completed in 2.012 with 8 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThatUploadingMultipartFormDataAboveMemoryThresholdSetsContentTypeHeader | ✅ |0.196s ⌛️ | +| testThatUploadingMultipartFormDataAboveMemoryThresholdStreamsFromDisk | ✅ |0.183s ⌛️ | +| testThatUploadingMultipartFormDataBelowMemoryThresholdSetsContentTypeHeader | ✅ |0.183s ⌛️ | +| testThatUploadingMultipartFormDataBelowMemoryThresholdStreamsFromMemory | ✅ |0.224s ⌛️ | +| testThatUploadingMultipartFormDataSetsContentTypeHeader | ✅ |0.286s ⌛️ | +| testThatUploadingMultipartFormDataSucceedsWithDefaultParameters | ✅ |0.28s ⌛️ | +| testThatUploadingMultipartFormDataWhileStreamingFromDiskMonitorsProgress | ✅ |0.32s ⌛️ | +| testThatUploadingMultipartFormDataWhileStreamingFromMemoryMonitorsProgress | ✅ |0.34s ⌛️ | + +UploadStreamInitializationTestCase: 2 tests were completed in 0.653 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testUploadClassMethodWithMethodURLAndStream | ✅ | 0.346s ⌛️ | +| testUploadClassMethodWithMethodURLHeadersAndStream | ✅ |0.307s ⌛️ | diff --git a/Tests/Assets/md/Kitura.md b/Tests/Assets/md/Kitura.md index 2b0a2f9..9306acd 100644 --- a/Tests/Assets/md/Kitura.md +++ b/Tests/Assets/md/Kitura.md @@ -1,360 +1,360 @@ -MiscellaneousTests: 2 tests were completed in 0.095 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testHeaders | ✅ | | 🔀 | 0.095s ⌛️ | -| testHeadersHelpers | ✅ | | 🔀 | 0.0s ⌛️ | - -TestBridgingHTTPStatusCode: 1 tests were completed in 0.126 with 1 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testSimpleResponse | ✅ | | 🔀 | 0.126s ⌛️ | - -TestBridgingRequestError: 1 tests were completed in 0.053 with 1 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testRequestError | ✅ | | 🔀 | 0.053s ⌛️ | - -TestCodableRouter: 25 tests were completed in 36.36 with 25 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testBasicDelete | ✅ | | 🔀 | 0.158s ⌛️ | -| testBasicDeleteSingle | ✅ | | 🔀 | 0.155s ⌛️ | -| testBasicGetArray | ✅ | | 🔀 | 0.153s ⌛️ | -| testBasicGetIdentifiersArray | ✅ | | 🔀 | 0.208s ⌛️ | -| testBasicGetSingle | ✅ | | 🔀 | 0.16s ⌛️ | -| testBasicGetSingleton | ✅ | | 🔀 | 0.158s ⌛️ | -| testBasicPatch | ✅ | | 🔀 | 6.195s ⌛️ | -| testBasicPost | ✅ | | 🔀 | 0.364s ⌛️ | -| testBasicPostIdentifier | ✅ | | 🔀 | 0.163s ⌛️ | -| testBasicPut | ✅ | | 🔀 | 6.194s ⌛️ | -| testCodableDeleteQueryParameters | ✅ | | 🔀 | 0.291s ⌛️ | -| testCodableGetArrayQueryParameters | ✅ | | 🔀 | 0.285s ⌛️ | -| testCodableGetSingleQueryParameters | ✅ | | 🔀 | 0.292s ⌛️ | -| testCodablePostSuccessStatuses | ✅ | | 🔀 | 0.158s ⌛️ | -| testCodableRoutesWithBodyParsingFail | ✅ | | 🔀 | 4.194s ⌛️ | -| testErrorOverridesBody | ✅ | | 🔀 | 8.488s ⌛️ | -| testIdentifierNotExpected | ✅ | | 🔀 | 0.05s ⌛️ | -| testIdentifierNotSupplied | ✅ | | 🔀 | 0.053s ⌛️ | -| testInvalidIdentifierSupplied | ✅ | | 🔀 | 0.052s ⌛️ | -| testJoinPath | ✅ | | 🔀 | 0.001s ⌛️ | -| testNoDataCustomStatus | ✅ | | 🔀 | 2.124s ⌛️ | -| testNoDataDefaultStatus | ✅ | | 🔀 | 2.122s ⌛️ | -| testPartialIdentifierSupplied | ✅ | | 🔀 | 0.054s ⌛️ | -| testRouteParameters | ✅ | | 🔀 | 0.05s ⌛️ | -| testRouteWithTrailingSlash | ✅ | | 🔀 | 4.238s ⌛️ | - -TestContentType: 3 tests were completed in 0.0 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testFilename | ✅ | | 🔀 | 0.0s ⌛️ | -| testInitialize | ✅ | | 🔀 | 0.0s ⌛️ | -| testIsContentType | ✅ | | 🔀 | 0.0s ⌛️ | - -TestCookies: 5 tests were completed in 0.36 with 5 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testCookieFromServer | ✅ | | 🔀 | 0.111s ⌛️ | -| testCookieToServerWithSemiColonSeparator | ✅ | | 🔀 | 0.053s ⌛️ | -| testCookieToServerWithSemiColonSpaceSeparator | ✅ | | 🔀 | 0.054s ⌛️ | -| testCookieToServerWithSemiColonWhitespacesSeparator | ✅ | | 🔀 | 0.049s ⌛️ | -| testNoCookies | ✅ | | 🔀 | 0.093s ⌛️ | - -TestCustomCoders: 3 tests were completed in 0.46599999999999997 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testCustomCoder | ✅ | | 🔀 | 0.108s ⌛️ | -| testCustomQueryEncoder | ✅ | | 🔀 | 0.253s ⌛️ | -| testRawCustomCoder | ✅ | | 🔀 | 0.105s ⌛️ | - -TestDecodingErrorExtension: 4 tests were completed in 0.0 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testMalformedJson | ✅ | | 🔀 | 0.0s ⌛️ | -| testMissingRequiredKey | ✅ | | 🔀 | 0.0s ⌛️ | -| testMissingValue | ✅ | | 🔀 | 0.0s ⌛️ | -| testWrongType | ✅ | | 🔀 | 0.0s ⌛️ | - -TestErrors: 3 tests were completed in 0.153 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testInvalidEndpoint | ✅ | | 🔀 | 0.05s ⌛️ | -| testInvalidHeader | ✅ | | 🔀 | 0.049s ⌛️ | -| testInvalidMethod | ✅ | | 🔀 | 0.054s ⌛️ | - -TestMediaType: 10 tests were completed in 0.0 with 10 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAllTextMediaTypeBuilder | ✅ | | 🔀 | 0.0s ⌛️ | -| testAllTextSlashMediaTypeBuilder | ✅ | | 🔀 | 0.0s ⌛️ | -| testHTMLMediaTypeBuilder | ✅ | | 🔀 | 0.0s ⌛️ | -| testIncorrectTopLevelType | ✅ | | 🔀 | 0.0s ⌛️ | -| testInvalidMediaType | ✅ | | 🔀 | 0.0s ⌛️ | -| testMediaCaseInsensitive | ✅ | | 🔀 | 0.0s ⌛️ | -| testPartsAllTextMediaTypeBuilder | ✅ | | 🔀 | 0.0s ⌛️ | -| testPartsHTMLMediaTypeBuilder | ✅ | | 🔀 | 0.0s ⌛️ | -| testPartsMediaCaseInsensitive | ✅ | | 🔀 | 0.0s ⌛️ | -| testValidMediaType | ✅ | | 🔀 | 0.0s ⌛️ | - -TestMultiplicity: 4 tests were completed in 0.594 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testCombined | ✅ | | 🔀 | 0.148s ⌛️ | -| testPlus | ✅ | | 🔀 | 0.151s ⌛️ | -| testQuestion | ✅ | | 🔀 | 0.146s ⌛️ | -| testStar | ✅ | | 🔀 | 0.149s ⌛️ | - -TestRangeHeaderDataExtensions: 3 tests were completed in 0.012 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testPartialDataRead | ✅ | | 🔀 | 0.008s ⌛️ | -| testPartialDataReadEntireFile | ✅ | | 🔀 | 0.002s ⌛️ | -| testPartialDataReadWithErrorFileNotFound | ✅ | | 🔀 | 0.002s ⌛️ | - -TestRangeHeaderParser: 17 tests were completed in 0.001 with 17 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testIsBytesRangeHeader | ✅ | | 🔀 | 0.0s ⌛️ | -| testParseString | ✅ | | 🔀 | 0.001s ⌛️ | -| testReturnNilOnInvalidNonDigitsRanges | ✅ | | 🔀 | 0.0s ⌛️ | -| testReturnNilOnInvalidRanges | ✅ | | 🔀 | 0.0s ⌛️ | -| testReturnNilOnMalformedHeader | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldCapEndAtSize | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldCombineOverlappingRanges | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldCombineOverlappingRangesAndRetainOriginalOrder | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseNonBytesRange | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseNormalString | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseStringAskingForLastByte | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseStringWithBytesEqualZeroZero | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseStringWithMultipleRanges | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseStringWithOnlyEnd | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseStringWithOnlyStart | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseStringWithSomeInvalidRanges | ✅ | | 🔀 | 0.0s ⌛️ | -| testShouldParseWithStartBytesEqualtToZero | ✅ | | 🔀 | 0.0s ⌛️ | - -TestRequests: 8 tests were completed in 0.612 with 8 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testCustomMiddlewareURLParameter | ✅ | | 🔀 | 0.051s ⌛️ | -| testCustomMiddlewareURLParameterWithQueryParam | ✅ | | 🔀 | 0.052s ⌛️ | -| testMultipleParametersMultipleHandlers | ✅ | | 🔀 | 0.098s ⌛️ | -| testOneParameterMultipleHandlers | ✅ | | 🔀 | 0.053s ⌛️ | -| testParameterExit | ✅ | | 🔀 | 0.097s ⌛️ | -| testParameters | ✅ | | 🔀 | 0.097s ⌛️ | -| testQueryParameters | ✅ | | 🔀 | 0.111s ⌛️ | -| testRouteParameters | ✅ | | 🔀 | 0.053s ⌛️ | - -TestResponse: 35 tests were completed in 7.216 with 35 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAcceptEncodingTypes | ✅ | | 🔀 | 0.1s ⌛️ | -| testAcceptTypes | ✅ | | 🔀 | 0.105s ⌛️ | -| testChangeStatusCodeOnInvokedSend | ✅ | | 🔀 | 0.1s ⌛️ | -| testEmptyHandler | ✅ | | 🔀 | 0.05s ⌛️ | -| testErrorHandler | ✅ | | 🔀 | 0.05s ⌛️ | -| testFormat | ✅ | | 🔀 | 0.15s ⌛️ | -| testHeaderModifiers | ✅ | | 🔀 | 0.058s ⌛️ | -| testJsonp | ✅ | | 🔀 | 0.25s ⌛️ | -| testLargeGet | ✅ | | 🔀 | 0.089s ⌛️ | -| testLargePost | ✅ | | 🔀 | 2.146s ⌛️ | -| testLifecycle | ✅ | | 🔀 | 0.05s ⌛️ | -| testLink | ✅ | | 🔀 | 0.104s ⌛️ | -| testMultipartFormParsing | ✅ | | 🔀 | 0.207s ⌛️ | -| testOptionalStringNilResponse | ✅ | | 🔀 | 0.053s ⌛️ | -| testOptionalStringResponse | ✅ | | 🔀 | 0.055s ⌛️ | -| testParameters | ✅ | | 🔀 | 0.048s ⌛️ | -| testParametersPercent20InPath | ✅ | | 🔀 | 0.05s ⌛️ | -| testParametersPercent20InQuery | ✅ | | 🔀 | 0.05s ⌛️ | -| testParametersPercentageEncoding | ✅ | | 🔀 | 0.046s ⌛️ | -| testParametersPlusInPath | ✅ | | 🔀 | 0.052s ⌛️ | -| testParametersPlusInQuery | ✅ | | 🔀 | 0.05s ⌛️ | -| testPostJSONRequest | ✅ | | 🔀 | 0.054s ⌛️ | -| testPostRequest | ✅ | | 🔀 | 0.054s ⌛️ | -| testPostRequestTheHardWay | ✅ | | 🔀 | 0.05s ⌛️ | -| testPostRequestUrlEncoded | ✅ | | 🔀 | 0.157s ⌛️ | -| testPostRequestWithDoubleBodyParser | ✅ | | 🔀 | 0.048s ⌛️ | -| testRawDataPost | ✅ | | 🔀 | 2.061s ⌛️ | -| testRedirect | ✅ | | 🔀 | 0.094s ⌛️ | -| testResponseNoEndOrNext | ✅ | | 🔀 | 0.053s ⌛️ | -| testRouteFunc | ✅ | | 🔀 | 0.107s ⌛️ | -| testSend | ✅ | | 🔀 | 0.37s ⌛️ | -| testSendAfterEnd | ✅ | | 🔀 | 0.051s ⌛️ | -| testSimpleResponse | ✅ | | 🔀 | 0.049s ⌛️ | -| testSubdomains | ✅ | | 🔀 | 0.155s ⌛️ | -| testUserInfo | ✅ | | 🔀 | 0.05s ⌛️ | - -TestRouteRegex: 7 tests were completed in 2.7859999999999996 with 7 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testBuildRegexFromPattern | ✅ | | 🔀 | 0.001s ⌛️ | -| testCustomMatchesWithModifiers | ✅ | | 🔀 | 1.102s ⌛️ | -| testRouteWithPercentEncoding | ✅ | | 🔀 | 0.051s ⌛️ | -| testSimpleCustomMatches | ✅ | | 🔀 | 0.199s ⌛️ | -| testSimpleMatches | ✅ | | 🔀 | 0.254s ⌛️ | -| testSimpleModifiers | ✅ | | 🔀 | 0.786s ⌛️ | -| testSimplePaths | ✅ | | 🔀 | 0.393s ⌛️ | - -TestRouterHTTPVerbsGenerated: 4 tests were completed in 0.004 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testFirstTypeVerbsAdded | ✅ | | 🔀 | 0.001s ⌛️ | -| testFourthTypeVerbsAdded | ✅ | | 🔀 | 0.001s ⌛️ | -| testSecondTypeVerbsAdded | ✅ | | 🔀 | 0.001s ⌛️ | -| testThirdTypeVerbsAdded | ✅ | | 🔀 | 0.001s ⌛️ | - -TestServer: 4 tests were completed in 20.392 with 2 passed, 2 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testServerFail | ✅ | | 🔀 | 0.04s ⌛️ | -| testServerRestart | ✅ | | 🔀 | 0.175s ⌛️ | -| testServerRun | | ❌ | 🔀 | 10.169s ⌛️ | -| testServerStartStop | | ❌ | 🔀 | 10.008s ⌛️ | - -TestStack: 2 tests were completed in 0.0 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testEmpty | ✅ | | 🔀 | 0.0s ⌛️ | -| testPushPop | ✅ | | 🔀 | 0.0s ⌛️ | - -TestStaticFileServer: 30 tests were completed in 2.3390000000000004 with 30 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAbsolutePathFunction | ✅ | | 🔀 | 0.0s ⌛️ | -| testAbsoluteRootPath | ✅ | | 🔀 | 0.0s ⌛️ | -| testDataIsNotCorrupted | ✅ | | 🔀 | 0.195s ⌛️ | -| testFileServer | ✅ | | 🔀 | 0.496s ⌛️ | -| testGetDefaultResponse | ✅ | | 🔀 | 0.05s ⌛️ | -| testGetKituraResource | ✅ | | 🔀 | 0.052s ⌛️ | -| testGetMissingKituraResource | ✅ | | 🔀 | 0.056s ⌛️ | -| testGetTraversedFile | ✅ | | 🔀 | 0.047s ⌛️ | -| testGetTraversedFileKituraResource | ✅ | | 🔀 | 0.047s ⌛️ | -| testGetWithSpecialCharacters | ✅ | | 🔀 | 0.052s ⌛️ | -| testGetWithSpecialCharactersEncoded | ✅ | | 🔀 | 0.051s ⌛️ | -| testGetWithWhiteSpaces | ✅ | | 🔀 | 0.051s ⌛️ | -| testParameterizedSubRouterSubFolderStaticFileServer | ✅ | | 🔀 | 0.089s ⌛️ | -| testParameterizedSubRouterSubFolderStaticFileServerRedirect | ✅ | | 🔀 | 0.118s ⌛️ | -| testRangeRequestIsIgnoredOnNonGetMethod | ✅ | | 🔀 | 0.052s ⌛️ | -| testRangeRequestIsIgnoredOnOptionOff | ✅ | | 🔀 | 0.053s ⌛️ | -| testRangeRequests | ✅ | | 🔀 | 0.052s ⌛️ | -| testRangeRequestsWithLargeLastBytePos | ✅ | | 🔀 | 0.05s ⌛️ | -| testRangeRequestsWithMultipleRanges | ✅ | | 🔀 | 0.056s ⌛️ | -| testRangeRequestWithIfRangeHeaderAsLastModified | ✅ | | 🔀 | 0.099s ⌛️ | -| testRangeRequestWithIfRangeHeaderAsOldLastModified | ✅ | | 🔀 | 0.05s ⌛️ | -| testRangeRequestWithIfRangeHeaderWithETag | ✅ | | 🔀 | 0.117s ⌛️ | -| testRangeRequestWithIfRangeHeaderWithOldETag | ✅ | | 🔀 | 0.055s ⌛️ | -| testRangeRequestWithNotSatisfiableRange | ✅ | | 🔀 | 0.057s ⌛️ | -| testRangeRequestWithSintacticallyInvalidRange | ✅ | | 🔀 | 0.067s ⌛️ | -| testSubRouterStaticFileServer | ✅ | | 🔀 | 0.052s ⌛️ | -| testSubRouterStaticFileServerRedirect | ✅ | | 🔀 | 0.085s ⌛️ | -| testSubRouterSubFolderStaticFileServer | ✅ | | 🔀 | 0.052s ⌛️ | -| testSubRouterSubFolderStaticFileServerRedirect | ✅ | | 🔀 | 0.089s ⌛️ | -| testWelcomePageCanBeDisabled | ✅ | | 🔀 | 0.049s ⌛️ | - -TestSubrouter: 5 tests were completed in 0.502 with 5 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testExternSub | ✅ | | 🔀 | 0.1s ⌛️ | -| testMergeParams | ✅ | | 🔀 | 0.155s ⌛️ | -| testMultipleMiddleware | ✅ | | 🔀 | 0.051s ⌛️ | -| testSimpleSub | ✅ | | 🔀 | 0.097s ⌛️ | -| testSubSubs | ✅ | | 🔀 | 0.099s ⌛️ | - -TestSwaggerGeneration: 9 tests were completed in 0.99 with 9 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testArrayReturnTypes | ✅ | | 🔀 | 0.101s ⌛️ | -| testBasePath | ✅ | | 🔀 | 0.095s ⌛️ | -| testInfo | ✅ | | 🔀 | 0.095s ⌛️ | -| testInputTypesModelled | ✅ | | 🔀 | 0.172s ⌛️ | -| testNestedTypesModelled | ✅ | | 🔀 | 0.1s ⌛️ | -| testSwaggerContent | ✅ | | 🔀 | 0.1s ⌛️ | -| testSwaggerDefinitions | ✅ | | 🔀 | 0.102s ⌛️ | -| testSwaggerQueryParams | ✅ | | 🔀 | 0.104s ⌛️ | -| testSwaggerVersion | ✅ | | 🔀 | 0.121s ⌛️ | - -TestTemplateEngine: 23 tests were completed in 0.37999999999999995 with 23 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAddWithFileExtensions | ✅ | | 🔀 | 0.001s ⌛️ | -| testAddWithFileExtensionsWithoutTheDefaultOne | ✅ | | 🔀 | 0.001s ⌛️ | -| testCodableAddWithFileExtensions | ✅ | | 🔀 | 0.001s ⌛️ | -| testCodableAddWithFileExtensionsWithoutTheDefaultOne | ✅ | | 🔀 | 0.001s ⌛️ | -| testCodableRender | ✅ | | 🔀 | 0.001s ⌛️ | -| testCodableRenderWithExtensionAndWithoutDefaultTemplateEngine | ✅ | | 🔀 | 0.001s ⌛️ | -| testCodableRenderWithExtensionAndWithoutDefaultTemplateEngineAfterSettingViewsPath | ✅ | | 🔀 | 0.001s ⌛️ | -| testCodableRenderWithOptionsWithServer | ✅ | | 🔀 | 0.052s ⌛️ | -| testCodableRenderWithServer | ✅ | | 🔀 | 0.051s ⌛️ | -| testCodableRenderWithServerAndSubRouter | ✅ | | 🔀 | 0.053s ⌛️ | -| testCodableRenderWithTuple | ✅ | | 🔀 | 0.051s ⌛️ | -| testEmptyTemplateName | ✅ | | 🔀 | 0.001s ⌛️ | -| testEmptyTemplateNameCodable | ✅ | | 🔀 | 0.001s ⌛️ | -| testMissingExtension | ✅ | | 🔀 | 0.001s ⌛️ | -| testMissingExtensionCodable | ✅ | | 🔀 | 0.001s ⌛️ | -| testNoDefaultEngine | ✅ | | 🔀 | 0.001s ⌛️ | -| testNoDefaultEngineCodable | ✅ | | 🔀 | 0.001s ⌛️ | -| testRender | ✅ | | 🔀 | 0.001s ⌛️ | -| testRenderWithExtensionAndWithoutDefaultTemplateEngine | ✅ | | 🔀 | 0.001s ⌛️ | -| testRenderWithExtensionAndWithoutDefaultTemplateEngineAfterSettingViewsPath | ✅ | | 🔀 | 0.001s ⌛️ | -| testRenderWithOptionsWithServer | ✅ | | 🔀 | 0.052s ⌛️ | -| testRenderWithServer | ✅ | | 🔀 | 0.054s ⌛️ | -| testRenderWithServerAndSubRouter | ✅ | | 🔀 | 0.051s ⌛️ | - -TestTypeSafeMiddleware: 33 tests were completed in 28.692999999999994 with 33 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testCustomCoder | ✅ | | 🔀 | 4.24s ⌛️ | -| testCustomCoderGet | ✅ | | 🔀 | 0.294s ⌛️ | -| testMiddlewareLogging | ✅ | | 🔀 | 0.059s ⌛️ | -| testMultipleMiddlewareDelete | ✅ | | 🔀 | 0.163s ⌛️ | -| testMultipleMiddlewareDeleteIdentifier | ✅ | | 🔀 | 0.164s ⌛️ | -| testMultipleMiddlewareDeleteOptionalParameters | ✅ | | 🔀 | 0.115s ⌛️ | -| testMultipleMiddlewareDeleteParameters | ✅ | | 🔀 | 0.159s ⌛️ | -| testMultipleMiddlewareGetArray | ✅ | | 🔀 | 0.153s ⌛️ | -| testMultipleMiddlewareGetArrayOptionalParameters | ✅ | | 🔀 | 0.163s ⌛️ | -| testMultipleMiddlewareGetArrayParameters | ✅ | | 🔀 | 0.158s ⌛️ | -| testMultipleMiddlewareGetIdentifier | ✅ | | 🔀 | 0.156s ⌛️ | -| testMultipleMiddlewareGetIdentifierCodableArray | ✅ | | 🔀 | 0.153s ⌛️ | -| testMultipleMiddlewareGetSingleton | ✅ | | 🔀 | 0.155s ⌛️ | -| testMultipleMiddlewareGetSingletonParameters | ✅ | | 🔀 | 0.161s ⌛️ | -| testMultipleMiddlewarePatch | ✅ | | 🔀 | 6.187s ⌛️ | -| testMultipleMiddlewarePost | ✅ | | 🔀 | 0.159s ⌛️ | -| testMultipleMiddlewarePostIdentifier | ✅ | | 🔀 | 0.156s ⌛️ | -| testMultipleMiddlewarePut | ✅ | | 🔀 | 6.181s ⌛️ | -| testSingleMiddlewareDelete | ✅ | | 🔀 | 0.113s ⌛️ | -| testSingleMiddlewareDeleteIdentifier | ✅ | | 🔀 | 0.102s ⌛️ | -| testSingleMiddlewareDeleteOptionalParameters | ✅ | | 🔀 | 0.113s ⌛️ | -| testSingleMiddlewareDeleteParameters | ✅ | | 🔀 | 0.112s ⌛️ | -| testSingleMiddlewareGetArray | ✅ | | 🔀 | 0.104s ⌛️ | -| testSingleMiddlewareGetArrayOptionalParameters | ✅ | | 🔀 | 0.154s ⌛️ | -| testSingleMiddlewareGetArrayParameters | ✅ | | 🔀 | 0.112s ⌛️ | -| testSingleMiddlewareGetIdentifier | ✅ | | 🔀 | 0.104s ⌛️ | -| testSingleMiddlewareGetIdentifierCodableArray | ✅ | | 🔀 | 0.106s ⌛️ | -| testSingleMiddlewareGetSingleton | ✅ | | 🔀 | 0.104s ⌛️ | -| testSingleMiddlewareGetSingletonParameters | ✅ | | 🔀 | 0.115s ⌛️ | -| testSingleMiddlewarePatch | ✅ | | 🔀 | 4.127s ⌛️ | -| testSingleMiddlewarePost | ✅ | | 🔀 | 0.11s ⌛️ | -| testSingleMiddlewarePostIdentifier | ✅ | | 🔀 | 0.108s ⌛️ | -| testSingleMiddlewarePut | ✅ | | 🔀 | 4.133s ⌛️ | +MiscellaneousTests: 2 tests were completed in 0.095 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testHeaders | ✅ |0.095s ⌛️ | +| testHeadersHelpers | ✅ |0.0s ⌛️ | + +TestBridgingHTTPStatusCode: 1 tests were completed in 0.126 with 1 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testSimpleResponse | ✅ |0.126s ⌛️ | + +TestBridgingRequestError: 1 tests were completed in 0.053 with 1 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testRequestError | ✅ |0.053s ⌛️ | + +TestCodableRouter: 25 tests were completed in 36.36 with 25 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testBasicDelete | ✅ |0.158s ⌛️ | +| testBasicDeleteSingle | ✅ |0.155s ⌛️ | +| testBasicGetArray | ✅ |0.153s ⌛️ | +| testBasicGetIdentifiersArray | ✅ |0.208s ⌛️ | +| testBasicGetSingle | ✅ |0.16s ⌛️ | +| testBasicGetSingleton | ✅ |0.158s ⌛️ | +| testBasicPatch | ✅ |6.195s ⌛️ | +| testBasicPost | ✅ |0.364s ⌛️ | +| testBasicPostIdentifier | ✅ |0.163s ⌛️ | +| testBasicPut | ✅ |6.194s ⌛️ | +| testCodableDeleteQueryParameters | ✅ |0.291s ⌛️ | +| testCodableGetArrayQueryParameters | ✅ |0.285s ⌛️ | +| testCodableGetSingleQueryParameters | ✅ |0.292s ⌛️ | +| testCodablePostSuccessStatuses | ✅ |0.158s ⌛️ | +| testCodableRoutesWithBodyParsingFail | ✅ |4.194s ⌛️ | +| testErrorOverridesBody | ✅ |8.488s ⌛️ | +| testIdentifierNotExpected | ✅ |0.05s ⌛️ | +| testIdentifierNotSupplied | ✅ |0.053s ⌛️ | +| testInvalidIdentifierSupplied | ✅ |0.052s ⌛️ | +| testJoinPath | ✅ |0.001s ⌛️ | +| testNoDataCustomStatus | ✅ |2.124s ⌛️ | +| testNoDataDefaultStatus | ✅ |2.122s ⌛️ | +| testPartialIdentifierSupplied | ✅ |0.054s ⌛️ | +| testRouteParameters | ✅ |0.05s ⌛️ | +| testRouteWithTrailingSlash | ✅ |4.238s ⌛️ | + +TestContentType: 3 tests were completed in 0.0 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testFilename | ✅ |0.0s ⌛️ | +| testInitialize | ✅ |0.0s ⌛️ | +| testIsContentType | ✅ |0.0s ⌛️ | + +TestCookies: 5 tests were completed in 0.36 with 5 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testCookieFromServer | ✅ |0.111s ⌛️ | +| testCookieToServerWithSemiColonSeparator | ✅ |0.053s ⌛️ | +| testCookieToServerWithSemiColonSpaceSeparator | ✅ |0.054s ⌛️ | +| testCookieToServerWithSemiColonWhitespacesSeparator | ✅ |0.049s ⌛️ | +| testNoCookies | ✅ |0.093s ⌛️ | + +TestCustomCoders: 3 tests were completed in 0.46599999999999997 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testCustomCoder | ✅ |0.108s ⌛️ | +| testCustomQueryEncoder | ✅ |0.253s ⌛️ | +| testRawCustomCoder | ✅ |0.105s ⌛️ | + +TestDecodingErrorExtension: 4 tests were completed in 0.0 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testMalformedJson | ✅ |0.0s ⌛️ | +| testMissingRequiredKey | ✅ |0.0s ⌛️ | +| testMissingValue | ✅ |0.0s ⌛️ | +| testWrongType | ✅ |0.0s ⌛️ | + +TestErrors: 3 tests were completed in 0.153 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testInvalidEndpoint | ✅ |0.05s ⌛️ | +| testInvalidHeader | ✅ |0.049s ⌛️ | +| testInvalidMethod | ✅ |0.054s ⌛️ | + +TestMediaType: 10 tests were completed in 0.0 with 10 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAllTextMediaTypeBuilder | ✅ |0.0s ⌛️ | +| testAllTextSlashMediaTypeBuilder | ✅ |0.0s ⌛️ | +| testHTMLMediaTypeBuilder | ✅ |0.0s ⌛️ | +| testIncorrectTopLevelType | ✅ |0.0s ⌛️ | +| testInvalidMediaType | ✅ |0.0s ⌛️ | +| testMediaCaseInsensitive | ✅ |0.0s ⌛️ | +| testPartsAllTextMediaTypeBuilder | ✅ |0.0s ⌛️ | +| testPartsHTMLMediaTypeBuilder | ✅ |0.0s ⌛️ | +| testPartsMediaCaseInsensitive | ✅ |0.0s ⌛️ | +| testValidMediaType | ✅ |0.0s ⌛️ | + +TestMultiplicity: 4 tests were completed in 0.594 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testCombined | ✅ |0.148s ⌛️ | +| testPlus | ✅ |0.151s ⌛️ | +| testQuestion | ✅ |0.146s ⌛️ | +| testStar | ✅ |0.149s ⌛️ | + +TestRangeHeaderDataExtensions: 3 tests were completed in 0.012 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testPartialDataRead | ✅ |0.008s ⌛️ | +| testPartialDataReadEntireFile | ✅ |0.002s ⌛️ | +| testPartialDataReadWithErrorFileNotFound | ✅ |0.002s ⌛️ | + +TestRangeHeaderParser: 17 tests were completed in 0.001 with 17 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testIsBytesRangeHeader | ✅ |0.0s ⌛️ | +| testParseString | ✅ |0.001s ⌛️ | +| testReturnNilOnInvalidNonDigitsRanges | ✅ |0.0s ⌛️ | +| testReturnNilOnInvalidRanges | ✅ |0.0s ⌛️ | +| testReturnNilOnMalformedHeader | ✅ |0.0s ⌛️ | +| testShouldCapEndAtSize | ✅ |0.0s ⌛️ | +| testShouldCombineOverlappingRanges | ✅ |0.0s ⌛️ | +| testShouldCombineOverlappingRangesAndRetainOriginalOrder | ✅ |0.0s ⌛️ | +| testShouldParseNonBytesRange | ✅ |0.0s ⌛️ | +| testShouldParseNormalString | ✅ |0.0s ⌛️ | +| testShouldParseStringAskingForLastByte | ✅ |0.0s ⌛️ | +| testShouldParseStringWithBytesEqualZeroZero | ✅ |0.0s ⌛️ | +| testShouldParseStringWithMultipleRanges | ✅ |0.0s ⌛️ | +| testShouldParseStringWithOnlyEnd | ✅ |0.0s ⌛️ | +| testShouldParseStringWithOnlyStart | ✅ |0.0s ⌛️ | +| testShouldParseStringWithSomeInvalidRanges | ✅ |0.0s ⌛️ | +| testShouldParseWithStartBytesEqualtToZero | ✅ |0.0s ⌛️ | + +TestRequests: 8 tests were completed in 0.612 with 8 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testCustomMiddlewareURLParameter | ✅ |0.051s ⌛️ | +| testCustomMiddlewareURLParameterWithQueryParam | ✅ |0.052s ⌛️ | +| testMultipleParametersMultipleHandlers | ✅ |0.098s ⌛️ | +| testOneParameterMultipleHandlers | ✅ |0.053s ⌛️ | +| testParameterExit | ✅ |0.097s ⌛️ | +| testParameters | ✅ |0.097s ⌛️ | +| testQueryParameters | ✅ |0.111s ⌛️ | +| testRouteParameters | ✅ |0.053s ⌛️ | + +TestResponse: 35 tests were completed in 7.216 with 35 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAcceptEncodingTypes | ✅ |0.1s ⌛️ | +| testAcceptTypes | ✅ |0.105s ⌛️ | +| testChangeStatusCodeOnInvokedSend | ✅ |0.1s ⌛️ | +| testEmptyHandler | ✅ |0.05s ⌛️ | +| testErrorHandler | ✅ |0.05s ⌛️ | +| testFormat | ✅ |0.15s ⌛️ | +| testHeaderModifiers | ✅ |0.058s ⌛️ | +| testJsonp | ✅ |0.25s ⌛️ | +| testLargeGet | ✅ |0.089s ⌛️ | +| testLargePost | ✅ |2.146s ⌛️ | +| testLifecycle | ✅ |0.05s ⌛️ | +| testLink | ✅ |0.104s ⌛️ | +| testMultipartFormParsing | ✅ |0.207s ⌛️ | +| testOptionalStringNilResponse | ✅ |0.053s ⌛️ | +| testOptionalStringResponse | ✅ |0.055s ⌛️ | +| testParameters | ✅ |0.048s ⌛️ | +| testParametersPercent20InPath | ✅ |0.05s ⌛️ | +| testParametersPercent20InQuery | ✅ |0.05s ⌛️ | +| testParametersPercentageEncoding | ✅ |0.046s ⌛️ | +| testParametersPlusInPath | ✅ |0.052s ⌛️ | +| testParametersPlusInQuery | ✅ |0.05s ⌛️ | +| testPostJSONRequest | ✅ |0.054s ⌛️ | +| testPostRequest | ✅ |0.054s ⌛️ | +| testPostRequestTheHardWay | ✅ |0.05s ⌛️ | +| testPostRequestUrlEncoded | ✅ |0.157s ⌛️ | +| testPostRequestWithDoubleBodyParser | ✅ |0.048s ⌛️ | +| testRawDataPost | ✅ |2.061s ⌛️ | +| testRedirect | ✅ |0.094s ⌛️ | +| testResponseNoEndOrNext | ✅ |0.053s ⌛️ | +| testRouteFunc | ✅ |0.107s ⌛️ | +| testSend | ✅ |0.37s ⌛️ | +| testSendAfterEnd | ✅ |0.051s ⌛️ | +| testSimpleResponse | ✅ |0.049s ⌛️ | +| testSubdomains | ✅ |0.155s ⌛️ | +| testUserInfo | ✅ |0.05s ⌛️ | + +TestRouteRegex: 7 tests were completed in 2.7859999999999996 with 7 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testBuildRegexFromPattern | ✅ |0.001s ⌛️ | +| testCustomMatchesWithModifiers | ✅ |1.102s ⌛️ | +| testRouteWithPercentEncoding | ✅ |0.051s ⌛️ | +| testSimpleCustomMatches | ✅ |0.199s ⌛️ | +| testSimpleMatches | ✅ |0.254s ⌛️ | +| testSimpleModifiers | ✅ |0.786s ⌛️ | +| testSimplePaths | ✅ |0.393s ⌛️ | + +TestRouterHTTPVerbsGenerated: 4 tests were completed in 0.004 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testFirstTypeVerbsAdded | ✅ |0.001s ⌛️ | +| testFourthTypeVerbsAdded | ✅ |0.001s ⌛️ | +| testSecondTypeVerbsAdded | ✅ |0.001s ⌛️ | +| testThirdTypeVerbsAdded | ✅ |0.001s ⌛️ | + +TestServer: 4 tests were completed in 20.392 with 2 passed, 2 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testServerFail | ✅ |0.04s ⌛️ | +| testServerRestart | ✅ |0.175s ⌛️ | +| testServerRun | ❌ |10.169s ⌛️ | +| testServerStartStop | ❌ | 10.008s ⌛️ | + +TestStack: 2 tests were completed in 0.0 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testEmpty | ✅ |0.0s ⌛️ | +| testPushPop | ✅ |0.0s ⌛️ | + +TestStaticFileServer: 30 tests were completed in 2.3390000000000004 with 30 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAbsolutePathFunction | ✅ |0.0s ⌛️ | +| testAbsoluteRootPath | ✅ |0.0s ⌛️ | +| testDataIsNotCorrupted | ✅ |0.195s ⌛️ | +| testFileServer | ✅ |0.496s ⌛️ | +| testGetDefaultResponse | ✅ |0.05s ⌛️ | +| testGetKituraResource | ✅ |0.052s ⌛️ | +| testGetMissingKituraResource | ✅ |0.056s ⌛️ | +| testGetTraversedFile | ✅ |0.047s ⌛️ | +| testGetTraversedFileKituraResource | ✅ |0.047s ⌛️ | +| testGetWithSpecialCharacters | ✅ |0.052s ⌛️ | +| testGetWithSpecialCharactersEncoded | ✅ |0.051s ⌛️ | +| testGetWithWhiteSpaces | ✅ |0.051s ⌛️ | +| testParameterizedSubRouterSubFolderStaticFileServer | ✅ |0.089s ⌛️ | +| testParameterizedSubRouterSubFolderStaticFileServerRedirect | ✅ |0.118s ⌛️ | +| testRangeRequestIsIgnoredOnNonGetMethod | ✅ |0.052s ⌛️ | +| testRangeRequestIsIgnoredOnOptionOff | ✅ |0.053s ⌛️ | +| testRangeRequests | ✅ |0.052s ⌛️ | +| testRangeRequestsWithLargeLastBytePos | ✅ |0.05s ⌛️ | +| testRangeRequestsWithMultipleRanges | ✅ |0.056s ⌛️ | +| testRangeRequestWithIfRangeHeaderAsLastModified | ✅ |0.099s ⌛️ | +| testRangeRequestWithIfRangeHeaderAsOldLastModified | ✅ |0.05s ⌛️ | +| testRangeRequestWithIfRangeHeaderWithETag | ✅ |0.117s ⌛️ | +| testRangeRequestWithIfRangeHeaderWithOldETag | ✅ |0.055s ⌛️ | +| testRangeRequestWithNotSatisfiableRange | ✅ |0.057s ⌛️ | +| testRangeRequestWithSintacticallyInvalidRange | ✅ |0.067s ⌛️ | +| testSubRouterStaticFileServer | ✅ |0.052s ⌛️ | +| testSubRouterStaticFileServerRedirect | ✅ |0.085s ⌛️ | +| testSubRouterSubFolderStaticFileServer | ✅ |0.052s ⌛️ | +| testSubRouterSubFolderStaticFileServerRedirect | ✅ |0.089s ⌛️ | +| testWelcomePageCanBeDisabled | ✅ |0.049s ⌛️ | + +TestSubrouter: 5 tests were completed in 0.502 with 5 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testExternSub | ✅ |0.1s ⌛️ | +| testMergeParams | ✅ |0.155s ⌛️ | +| testMultipleMiddleware | ✅ |0.051s ⌛️ | +| testSimpleSub | ✅ |0.097s ⌛️ | +| testSubSubs | ✅ |0.099s ⌛️ | + +TestSwaggerGeneration: 9 tests were completed in 0.99 with 9 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testArrayReturnTypes | ✅ |0.101s ⌛️ | +| testBasePath | ✅ |0.095s ⌛️ | +| testInfo | ✅ |0.095s ⌛️ | +| testInputTypesModelled | ✅ |0.172s ⌛️ | +| testNestedTypesModelled | ✅ |0.1s ⌛️ | +| testSwaggerContent | ✅ |0.1s ⌛️ | +| testSwaggerDefinitions | ✅ |0.102s ⌛️ | +| testSwaggerQueryParams | ✅ |0.104s ⌛️ | +| testSwaggerVersion | ✅ |0.121s ⌛️ | + +TestTemplateEngine: 23 tests were completed in 0.37999999999999995 with 23 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAddWithFileExtensions | ✅ |0.001s ⌛️ | +| testAddWithFileExtensionsWithoutTheDefaultOne | ✅ |0.001s ⌛️ | +| testCodableAddWithFileExtensions | ✅ |0.001s ⌛️ | +| testCodableAddWithFileExtensionsWithoutTheDefaultOne | ✅ |0.001s ⌛️ | +| testCodableRender | ✅ |0.001s ⌛️ | +| testCodableRenderWithExtensionAndWithoutDefaultTemplateEngine | ✅ |0.001s ⌛️ | +| testCodableRenderWithExtensionAndWithoutDefaultTemplateEngineAfterSettingViewsPath | ✅ |0.001s ⌛️ | +| testCodableRenderWithOptionsWithServer | ✅ |0.052s ⌛️ | +| testCodableRenderWithServer | ✅ |0.051s ⌛️ | +| testCodableRenderWithServerAndSubRouter | ✅ |0.053s ⌛️ | +| testCodableRenderWithTuple | ✅ |0.051s ⌛️ | +| testEmptyTemplateName | ✅ |0.001s ⌛️ | +| testEmptyTemplateNameCodable | ✅ |0.001s ⌛️ | +| testMissingExtension | ✅ |0.001s ⌛️ | +| testMissingExtensionCodable | ✅ |0.001s ⌛️ | +| testNoDefaultEngine | ✅ |0.001s ⌛️ | +| testNoDefaultEngineCodable | ✅ |0.001s ⌛️ | +| testRender | ✅ |0.001s ⌛️ | +| testRenderWithExtensionAndWithoutDefaultTemplateEngine | ✅ |0.001s ⌛️ | +| testRenderWithExtensionAndWithoutDefaultTemplateEngineAfterSettingViewsPath | ✅ |0.001s ⌛️ | +| testRenderWithOptionsWithServer | ✅ |0.052s ⌛️ | +| testRenderWithServer | ✅ |0.054s ⌛️ | +| testRenderWithServerAndSubRouter | ✅ |0.051s ⌛️ | + +TestTypeSafeMiddleware: 33 tests were completed in 28.692999999999994 with 33 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testCustomCoder | ✅ |4.24s ⌛️ | +| testCustomCoderGet | ✅ |0.294s ⌛️ | +| testMiddlewareLogging | ✅ |0.059s ⌛️ | +| testMultipleMiddlewareDelete | ✅ |0.163s ⌛️ | +| testMultipleMiddlewareDeleteIdentifier | ✅ |0.164s ⌛️ | +| testMultipleMiddlewareDeleteOptionalParameters | ✅ |0.115s ⌛️ | +| testMultipleMiddlewareDeleteParameters | ✅ |0.159s ⌛️ | +| testMultipleMiddlewareGetArray | ✅ |0.153s ⌛️ | +| testMultipleMiddlewareGetArrayOptionalParameters | ✅ |0.163s ⌛️ | +| testMultipleMiddlewareGetArrayParameters | ✅ |0.158s ⌛️ | +| testMultipleMiddlewareGetIdentifier | ✅ |0.156s ⌛️ | +| testMultipleMiddlewareGetIdentifierCodableArray | ✅ |0.153s ⌛️ | +| testMultipleMiddlewareGetSingleton | ✅ |0.155s ⌛️ | +| testMultipleMiddlewareGetSingletonParameters | ✅ |0.161s ⌛️ | +| testMultipleMiddlewarePatch | ✅ |6.187s ⌛️ | +| testMultipleMiddlewarePost | ✅ |0.159s ⌛️ | +| testMultipleMiddlewarePostIdentifier | ✅ |0.156s ⌛️ | +| testMultipleMiddlewarePut | ✅ |6.181s ⌛️ | +| testSingleMiddlewareDelete | ✅ |0.113s ⌛️ | +| testSingleMiddlewareDeleteIdentifier | ✅ |0.102s ⌛️ | +| testSingleMiddlewareDeleteOptionalParameters | ✅ |0.113s ⌛️ | +| testSingleMiddlewareDeleteParameters | ✅ |0.112s ⌛️ | +| testSingleMiddlewareGetArray | ✅ |0.104s ⌛️ | +| testSingleMiddlewareGetArrayOptionalParameters | ✅ |0.154s ⌛️ | +| testSingleMiddlewareGetArrayParameters | ✅ |0.112s ⌛️ | +| testSingleMiddlewareGetIdentifier | ✅ |0.104s ⌛️ | +| testSingleMiddlewareGetIdentifierCodableArray | ✅ |0.106s ⌛️ | +| testSingleMiddlewareGetSingleton | ✅ |0.104s ⌛️ | +| testSingleMiddlewareGetSingletonParameters | ✅ |0.115s ⌛️ | +| testSingleMiddlewarePatch | ✅ |4.127s ⌛️ | +| testSingleMiddlewarePost | ✅ |0.11s ⌛️ | +| testSingleMiddlewarePostIdentifier | ✅ |0.108s ⌛️ | +| testSingleMiddlewarePut | ✅ |4.133s ⌛️ | diff --git a/Tests/Assets/md/PromiseFailure.md b/Tests/Assets/md/PromiseFailure.md index 5064a05..bd3e2a3 100644 --- a/Tests/Assets/md/PromiseFailure.md +++ b/Tests/Assets/md/PromiseFailure.md @@ -1,120 +1,120 @@ -ExecutionContextTests: 6 tests were completed in 18.541 with 6 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testConcurrency | ✅ | | 🔀 | 15.354s ⌛️ | -| testInvalidatableQueueSupportsNonMainQueues | ✅ | | 🔀 | 0.002s ⌛️ | -| testInvalidatedInvalidatableQueue | ✅ | | 🔀 | 0.102s ⌛️ | -| testNonInvalidatedInvalidatableQueue | ✅ | | 🔀 | 0.007s ⌛️ | -| testTapContinuesToFireInvalidatableQueue | ✅ | | 🔀 | 0.001s ⌛️ | -| testThreads | ✅ | | 🔀 | 3.075s ⌛️ | - -PromiseAllTests: 5 tests were completed in 0.271 with 5 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAll | ✅ | | 🔀 | 0.108s ⌛️ | -| testAllWithEmptyArray | ✅ | | 🔀 | 0.001s ⌛️ | -| testAllWithPreFulfilledValues | ✅ | | 🔀 | 0.001s ⌛️ | -| testAllWithRejectionHappeningFirst | ✅ | | 🔀 | 0.058s ⌛️ | -| testAllWithRejectionHappeningLast | ✅ | | 🔀 | 0.103s ⌛️ | - -PromiseAlwaysTests: 4 tests were completed in 1.024 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAlways | ✅ | | 🔀 | 0.507s ⌛️ | -| testAlwaysInstantFulfill | ✅ | | 🔀 | 0.001s ⌛️ | -| testAlwaysInstantReject | ✅ | | 🔀 | 0.001s ⌛️ | -| testAlwaysRejects | ✅ | | 🔀 | 0.515s ⌛️ | - -PromiseDelayTests: 4 tests were completed in 0.9360000000000002 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testDelay | ✅ | | 🔀 | 0.202s ⌛️ | -| testTimeoutFunctionFails | ✅ | | 🔀 | 0.519s ⌛️ | -| testTimeoutFunctionSucceeds | ✅ | | 🔀 | 0.012s ⌛️ | -| testTimeoutPromise | ✅ | | 🔀 | 0.203s ⌛️ | - -PromiseEnsureTests: 3 tests were completed in 0.003 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testEnsureOnlyCalledOnSucceess | ✅ | | 🔀 | 0.001s ⌛️ | -| testEnsureRejects | ✅ | | 🔀 | 0.001s ⌛️ | -| testEnsureSucceeds | ✅ | | 🔀 | 0.001s ⌛️ | - -PromiseKickoffTests: 3 tests were completed in 0.104 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testFailingKickoff | ✅ | | 🔀 | 0.001s ⌛️ | -| testKickoff | ✅ | | 🔀 | 0.001s ⌛️ | -| testPromiseKickoff | ✅ | | 🔀 | 0.102s ⌛️ | - -PromiseRaceTests: 4 tests were completed in 0.111 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testInstantReject | ✅ | | 🔀 | 0.001s ⌛️ | -| testInstantResolve | ✅ | | 🔀 | 0.001s ⌛️ | -| testRace | ✅ | | 🔀 | 0.056s ⌛️ | -| testRaceFailure | ✅ | | 🔀 | 0.053s ⌛️ | - -PromiseRecoverTests: 6 tests were completed in 0.423 with 6 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testIgnoreRecover | ✅ | | 🔀 | 0.107s ⌛️ | -| testIgnoreRecoverInstant | ✅ | | 🔀 | 0.001s ⌛️ | -| testRecover | ✅ | | 🔀 | 0.105s ⌛️ | -| testRecoverInstant | ✅ | | 🔀 | 0.001s ⌛️ | -| testRecoverWithThrowingFunction | ✅ | | 🔀 | 0.106s ⌛️ | -| testRecoverWithThrowingFunctionError | ✅ | | 🔀 | 0.103s ⌛️ | - -PromiseRetryTests: 3 tests were completed in 0.005 with 3 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testRetry | ✅ | | 🔀 | 0.002s ⌛️ | -| testRetryWithInstantSuccess | ✅ | | 🔀 | 0.001s ⌛️ | -| testRetryWithNeverSuccess | ✅ | | 🔀 | 0.002s ⌛️ | - -PromiseTests: 17 tests were completed in 0.503 with 16 passed, 1 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAsync | ✅ | | 🔀 | 0.056s ⌛️ | -| testAsyncRejection | ✅ | | 🔀 | 0.052s ⌛️ | -| testAsyncThrowing | ✅ | | 🔀 | 0.002s ⌛️ | -| testDoubleReject | ✅ | | 🔀 | 0.001s ⌛️ | -| testDoubleResolve | ✅ | | 🔀 | 0.001s ⌛️ | -| testFlatMap | ✅ | | 🔀 | 0.108s ⌛️ | -| testFulfilled | ✅ | | 🔀 | 0.053s ⌛️ | -| testMap | ✅ | | 🔀 | 0.001s ⌛️ | -| testPending | ✅ | | 🔀 | 0.001s ⌛️ | -| testRejected | ✅ | | 🔀 | 0.001s ⌛️ | -| testRejectedAfterFulfilled | ✅ | | 🔀 | 0.051s ⌛️ | -| testRejectThenResolve | ✅ | | 🔀 | 0.001s ⌛️ | -| testResolveThenReject | ✅ | | 🔀 | 0.001s ⌛️ | -| testThen | ✅ | | 🔀 | 0.001s ⌛️ | -| testThenWhenPending | ✅ | | 🔀 | 0.054s ⌛️ | -| testTrailingClosuresCompile | ✅ | | 🔀 | 0.107s ⌛️ | -| testZalgoContained | | ❌ | 🔀 | 0.012s ⌛️ | - -PromiseThrowsTests: 4 tests were completed in 0.004 with 4 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testThrowsInFlatmapping | ✅ | | 🔀 | 0.001s ⌛️ | -| testThrowsInFlatmappingWithError | ✅ | | 🔀 | 0.001s ⌛️ | -| testThrowsInMapping | ✅ | | 🔀 | 0.001s ⌛️ | -| testThrowsInMappingWithError | ✅ | | 🔀 | 0.001s ⌛️ | - -PromiseZipTests: 2 tests were completed in 0.007 with 2 passed, 0 failed and 0 skipped. - -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testMultipleParameters | ✅ | | 🔀 | 0.001s ⌛️ | -| testZipping2 | ✅ | | 🔀 | 0.006s ⌛️ | +ExecutionContextTests: 6 tests were completed in 18.541 with 6 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testConcurrency | ✅ |15.354s ⌛️ | +| testInvalidatableQueueSupportsNonMainQueues | ✅ |0.002s ⌛️ | +| testInvalidatedInvalidatableQueue | ✅ |0.102s ⌛️ | +| testNonInvalidatedInvalidatableQueue | ✅ |0.007s ⌛️ | +| testTapContinuesToFireInvalidatableQueue | ✅ |0.001s ⌛️ | +| testThreads | ✅ |3.075s ⌛️ | + +PromiseAllTests: 5 tests were completed in 0.271 with 5 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAll | ✅ |0.108s ⌛️ | +| testAllWithEmptyArray | ✅ |0.001s ⌛️ | +| testAllWithPreFulfilledValues | ✅ |0.001s ⌛️ | +| testAllWithRejectionHappeningFirst | ✅ |0.058s ⌛️ | +| testAllWithRejectionHappeningLast | ✅ |0.103s ⌛️ | + +PromiseAlwaysTests: 4 tests were completed in 1.024 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAlways | ✅ |0.507s ⌛️ | +| testAlwaysInstantFulfill | ✅ |0.001s ⌛️ | +| testAlwaysInstantReject | ✅ |0.001s ⌛️ | +| testAlwaysRejects | ✅ |0.515s ⌛️ | + +PromiseDelayTests: 4 tests were completed in 0.9360000000000002 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testDelay | ✅ |0.202s ⌛️ | +| testTimeoutFunctionFails | ✅ |0.519s ⌛️ | +| testTimeoutFunctionSucceeds | ✅ |0.012s ⌛️ | +| testTimeoutPromise | ✅ |0.203s ⌛️ | + +PromiseEnsureTests: 3 tests were completed in 0.003 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testEnsureOnlyCalledOnSucceess | ✅ |0.001s ⌛️ | +| testEnsureRejects | ✅ |0.001s ⌛️ | +| testEnsureSucceeds | ✅ |0.001s ⌛️ | + +PromiseKickoffTests: 3 tests were completed in 0.104 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testFailingKickoff | ✅ |0.001s ⌛️ | +| testKickoff | ✅ |0.001s ⌛️ | +| testPromiseKickoff | ✅ |0.102s ⌛️ | + +PromiseRaceTests: 4 tests were completed in 0.111 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testInstantReject | ✅ |0.001s ⌛️ | +| testInstantResolve | ✅ |0.001s ⌛️ | +| testRace | ✅ |0.056s ⌛️ | +| testRaceFailure | ✅ |0.053s ⌛️ | + +PromiseRecoverTests: 6 tests were completed in 0.423 with 6 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testIgnoreRecover | ✅ |0.107s ⌛️ | +| testIgnoreRecoverInstant | ✅ |0.001s ⌛️ | +| testRecover | ✅ |0.105s ⌛️ | +| testRecoverInstant | ✅ |0.001s ⌛️ | +| testRecoverWithThrowingFunction | ✅ |0.106s ⌛️ | +| testRecoverWithThrowingFunctionError | ✅ |0.103s ⌛️ | + +PromiseRetryTests: 3 tests were completed in 0.005 with 3 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testRetry | ✅ |0.002s ⌛️ | +| testRetryWithInstantSuccess | ✅ |0.001s ⌛️ | +| testRetryWithNeverSuccess | ✅ |0.002s ⌛️ | + +PromiseTests: 17 tests were completed in 0.503 with 16 passed, 1 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAsync | ✅ |0.056s ⌛️ | +| testAsyncRejection | ✅ |0.052s ⌛️ | +| testAsyncThrowing | ✅ |0.002s ⌛️ | +| testDoubleReject | ✅ |0.001s ⌛️ | +| testDoubleResolve | ✅ |0.001s ⌛️ | +| testFlatMap | ✅ |0.108s ⌛️ | +| testFulfilled | ✅ |0.053s ⌛️ | +| testMap | ✅ |0.001s ⌛️ | +| testPending | ✅ |0.001s ⌛️ | +| testRejected | ✅ |0.001s ⌛️ | +| testRejectedAfterFulfilled | ✅ |0.051s ⌛️ | +| testRejectThenResolve | ✅ |0.001s ⌛️ | +| testResolveThenReject | ✅ |0.001s ⌛️ | +| testThen | ✅ |0.001s ⌛️ | +| testThenWhenPending | ✅ |0.054s ⌛️ | +| testTrailingClosuresCompile | ✅ |0.107s ⌛️ | +| testZalgoContained | ❌ | 0.012s ⌛️ | + +PromiseThrowsTests: 4 tests were completed in 0.004 with 4 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testThrowsInFlatmapping | ✅ |0.001s ⌛️ | +| testThrowsInFlatmappingWithError | ✅ |0.001s ⌛️ | +| testThrowsInMapping | ✅ |0.001s ⌛️ | +| testThrowsInMappingWithError | ✅ |0.001s ⌛️ | + +PromiseZipTests: 2 tests were completed in 0.007 with 2 passed, 0 failed. + +| Test case | Result | Time | +| :--- | ---: | ---: | +| testMultipleParameters | ✅ |0.001s ⌛️ | +| testZipping2 | ✅ |0.006s ⌛️ | diff --git a/Tests/Assets/md/PromiseUnexpectedFailure.md b/Tests/Assets/md/PromiseUnexpectedFailure.md index 28b4586..1abc1e9 100644 --- a/Tests/Assets/md/PromiseUnexpectedFailure.md +++ b/Tests/Assets/md/PromiseUnexpectedFailure.md @@ -1,5 +1,5 @@ -PromiseTests: 1 tests were completed in 0.021 with 0 passed, 1 failed and 0 skipped. +PromiseTests: 1 tests were completed in 0.021 with 0 passed, 1 failed. -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testUnexpected | | ❌ | 🔀 | 0.021s ⌛️ | +| Test case | Result | Time | +| :--- | ---: | ---: | +| testUnexpected | ❌ | 0.021s ⌛️ | diff --git a/Tests/Assets/md/Shell.md b/Tests/Assets/md/Shell.md index 798f730..9d1da1b 100644 --- a/Tests/Assets/md/Shell.md +++ b/Tests/Assets/md/Shell.md @@ -1,10 +1,10 @@ -ShellTests: 6 tests were completed in 2.497 with 6 passed, 0 failed and 0 skipped. +ShellTests: 6 tests were completed in 2.497 with 6 passed, 0 failed. -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAsyncRun | ✅ | | 🔀 | 2.172s ⌛️ | -| testEnvironment | ✅ | | 🔀 | 0.065s ⌛️ | -| testError | ✅ | | 🔀 | 0.065s ⌛️ | -| testErrorHandler | ✅ | | 🔀 | 0.066s ⌛️ | -| testOutput | ✅ | | 🔀 | 0.065s ⌛️ | -| testOutputHandler | ✅ | | 🔀 | 0.064s ⌛️ | +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAsyncRun | ✅ |2.172s ⌛️ | +| testEnvironment | ✅ |0.065s ⌛️ | +| testError | ✅ |0.065s ⌛️ | +| testErrorHandler | ✅ |0.066s ⌛️ | +| testOutput | ✅ |0.065s ⌛️ | +| testOutputHandler | ✅ |0.064s ⌛️ | diff --git a/Tests/Assets/md/ShellFailure.md b/Tests/Assets/md/ShellFailure.md index 52177ff..eb34256 100644 --- a/Tests/Assets/md/ShellFailure.md +++ b/Tests/Assets/md/ShellFailure.md @@ -1,11 +1,11 @@ -ShellTests: 7 tests were completed in 2.532 with 4 passed, 3 failed and 0 skipped. +ShellTests: 7 tests were completed in 2.532 with 4 passed, 3 failed. -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testAsyncRun | ✅ | | 🔀 | 2.143s ⌛️ | -| testEnvironment | | ❌ | 🔀 | 0.067s ⌛️ | -| testError | ✅ | | 🔀 | 0.064s ⌛️ | -| testErrorHandler | ✅ | | 🔀 | 0.064s ⌛️ | -| testOutput | | ❌ | 🔀 | 0.064s ⌛️ | -| testOutputHandler | ✅ | | 🔀 | 0.064s ⌛️ | -| testThrow | | ❌ | 🔀 | 0.066s ⌛️ | +| Test case | Result | Time | +| :--- | ---: | ---: | +| testAsyncRun | ✅ |2.143s ⌛️ | +| testEnvironment | ❌ | 0.067s ⌛️ | +| testError | ✅ |0.064s ⌛️ | +| testErrorHandler | ✅ |0.064s ⌛️ | +| testOutput | ❌ | 0.064s ⌛️ | +| testOutputHandler | ✅ |0.064s ⌛️ | +| testThrow | ❌ | 0.066s ⌛️ | diff --git a/Tests/Assets/md/ShellOutFailure.md b/Tests/Assets/md/ShellOutFailure.md index 4bb33eb..6ac18e5 100644 --- a/Tests/Assets/md/ShellOutFailure.md +++ b/Tests/Assets/md/ShellOutFailure.md @@ -1,18 +1,18 @@ -ShellOutTests: 14 tests were completed in 6.191999999999998 with 11 passed, 3 failed and 0 skipped. +ShellOutTests: 14 tests were completed in 6.191999999999998 with 11 passed, 3 failed. -| Test case | Passed | Failed | Skipped | Time | -| :--- | ---: | ---: | ---: | ---: | -| testCapturingErrorWithHandle | ✅ | | 🔀 | 0.269s ⌛️ | -| testCapturingOutputWithHandle | ✅ | | 🔀 | 0.185s ⌛️ | -| testErrorDescription | ✅ | | 🔀 | 0.001s ⌛️ | -| testGitCommands | ✅ | | 🔀 | 1.833s ⌛️ | -| testSeriesOfCommands | | ❌ | 🔀 | 0.169s ⌛️ | -| testSeriesOfCommandsAtPath | ✅ | | 🔀 | 0.345s ⌛️ | -| testSingleCommandAtPath | | ❌ | 🔀 | 0.336s ⌛️ | -| testSingleCommandAtPathContainingSpace | ✅ | | 🔀 | 0.525s ⌛️ | -| testSingleCommandAtPathContainingTilde | ✅ | | 🔀 | 0.165s ⌛️ | -| testSwiftPackageManagerCommands | ✅ | | 🔀 | 1.665s ⌛️ | -| testThrowingError | ✅ | | 🔀 | 0.188s ⌛️ | -| testWithArguments | | ❌ | 🔀 | 0.18s ⌛️ | -| testWithInlineArguments | ✅ | | 🔀 | 0.159s ⌛️ | -| testWithoutArguments | ✅ | | 🔀 | 0.172s ⌛️ | +| Test case | Result | Time | +| :--- | ---: | ---: | +| testCapturingErrorWithHandle | ✅ |0.269s ⌛️ | +| testCapturingOutputWithHandle | ✅ |0.185s ⌛️ | +| testErrorDescription | ✅ |0.001s ⌛️ | +| testGitCommands | ✅ |1.833s ⌛️ | +| testSeriesOfCommands | ❌ | 0.169s ⌛️ | +| testSeriesOfCommandsAtPath | ✅ |0.345s ⌛️ | +| testSingleCommandAtPath | ❌ | 0.336s ⌛️ | +| testSingleCommandAtPathContainingSpace | ✅ |0.525s ⌛️ | +| testSingleCommandAtPathContainingTilde | ✅ |0.165s ⌛️ | +| testSwiftPackageManagerCommands | ✅ |1.665s ⌛️ | +| testThrowingError | ✅ |0.188s ⌛️ | +| testWithArguments | ❌ | 0.18s ⌛️ | +| testWithInlineArguments | ✅ |0.159s ⌛️ | +| testWithoutArguments | ✅ |0.172s ⌛️ | diff --git a/Tests/TestifySDKTests/TestifyMarkdownTests.swift b/Tests/TestifySDKTests/TestifyMarkdownTests.swift index 54ce1e0..c3235f5 100644 --- a/Tests/TestifySDKTests/TestifyMarkdownTests.swift +++ b/Tests/TestifySDKTests/TestifyMarkdownTests.swift @@ -60,8 +60,8 @@ final class TestifyMarkdownTests: XCTestCase { let tests = Int(item.components(separatedBy: " tests were completed in ").filter { $0.contains(": ") }[0] .components(separatedBy: ": ")[1]) - let fails = Int(item.components(separatedBy: " passed, ").filter { $0.contains("failed and") }[0] - .components(separatedBy: " failed ")[0]) + let fails = Int(item.components(separatedBy: " passed, ").filter { $0.contains("failed.") }[0] + .components(separatedBy: " failed.")[0]) mdAllTests += tests ?? 0 mdAllFails += fails ?? 0 } From 77fe6c357749a8c9de1b4ee4721a9dce45a297e1 Mon Sep 17 00:00:00 2001 From: GErP83 Date: Tue, 14 Mar 2023 20:31:24 +0100 Subject: [PATCH 2/2] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 543108f..70a22f0 100755 --- a/README.md +++ b/README.md @@ -21,12 +21,10 @@ In your project folder run: * for JUNIT format: `swift test | testify junit` * for MD format: `swift test | testify md` -If no argument or wrong argument added then output format fallbacks to JSON! - You can just use the [Swift Package Manager](https://theswiftdev.com/2017/11/09/swift-package-manager-tutorial/) as usual: ```swift -.package(url: "https://github.com/binarybirds/testify", from: "1.1.0"), +.package(url: "https://github.com/binarybirds/testify", from: "1.1.1"), ``` ⚠️ Don't forget to add "Testify" to your target as a dependency!