From 6fed71bb0fe8ece15971a4da73f8732b374f7ee6 Mon Sep 17 00:00:00 2001 From: jaderfeijo Date: Tue, 25 Jul 2017 18:41:25 +0100 Subject: [PATCH 1/2] Fix Swift Package --- Tests/HTTPStatusCodes/Deprecated.h | 81 -------- Tests/HTTPStatusCodes/Deprecated.m | 33 ---- Tests/HTTPStatusCodes/HTTPStatusCodes.h | 17 -- .../SupportingFiles/Info-OSX.plist | 28 --- .../SupportingFiles/Info-iOS.plist | 26 --- .../SupportingFiles/Info-tvOS.plist | 26 --- .../SupportingFiles/Info-watchOS.plist | 26 --- .../ObjectiveCRegressionTests.m | 181 ------------------ Tests/HTTPStatusCodesTests/ObjectiveCTests.m | 47 ----- 9 files changed, 465 deletions(-) delete mode 100644 Tests/HTTPStatusCodes/Deprecated.h delete mode 100644 Tests/HTTPStatusCodes/Deprecated.m delete mode 100644 Tests/HTTPStatusCodes/HTTPStatusCodes.h delete mode 100644 Tests/HTTPStatusCodes/SupportingFiles/Info-OSX.plist delete mode 100644 Tests/HTTPStatusCodes/SupportingFiles/Info-iOS.plist delete mode 100644 Tests/HTTPStatusCodes/SupportingFiles/Info-tvOS.plist delete mode 100644 Tests/HTTPStatusCodes/SupportingFiles/Info-watchOS.plist delete mode 100644 Tests/HTTPStatusCodesTests/ObjectiveCRegressionTests.m delete mode 100644 Tests/HTTPStatusCodesTests/ObjectiveCTests.m diff --git a/Tests/HTTPStatusCodes/Deprecated.h b/Tests/HTTPStatusCodes/Deprecated.h deleted file mode 100644 index 77cd3a0..0000000 --- a/Tests/HTTPStatusCodes/Deprecated.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// Deprecated.h -// HTTPStatusCodes -// -// Created by Richard Hodgkins on 08/06/2016. -// Copyright © 2016 Rich H. All rights reserved. -// - -@import Foundation; - -/// Used to clean up API, should not be used externally. -typedef const NSInteger __HTTPStatusCode NS_SWIFT_UNAVAILABLE(""); - -// MARK: - Deprecated - -/// - deprecated: Renamed to `HTTPStatusCodePayloadTooLarge` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeRequestEntityTooLarge NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.requestEntityTooLarge instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodePayloadTooLarge"); - -/// - deprecated: Renamed to `HTTPStatusCodeURITooLong` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeRequestURITooLong NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.requestURITooLong instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeURITooLong"); - -/// - deprecated: Renamed to `HTTPStatusCodeRangeNotSatisfiable` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeRequestedRangeNotSatisfiable NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.requestedRangeNotSatisfiable instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeRangeNotSatisfiable"); - -/// - deprecated: Renamed to `HTTPStatusCodeIISLoginTimeout` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeLoginTimeout NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.loginTimeout instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeIISLoginTimeout"); - -/// - deprecated: Renamed to `HTTPStatusCodeIISRetryWith` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeRetryWith NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.retryWith instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeIISRetryWith"); - -/// - deprecated: Renamed to `HTTPStatusCodeNginxNoResponse` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeNoResponse NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.noResponse instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeNginxNoResponse"); - -/// - deprecated: Renamed to `HTTPStatusCodeNginxSSLCertificateError` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeCertError NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.certError instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeNginxSSLCertificateError"); - -/// - deprecated: Renamed to `HTTPStatusCodeNginxSSLCertificateRequired` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeNoCert NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.noCert instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeNginxSSLCertificateRequired"); - -/// - deprecated: Renamed to `HTTPStatusCodeNginxHTTPToHTTPS` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeHTTPToHTTPS NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.hTTPToHTTPS instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeNginxHTTPToHTTPS"); - -/// - deprecated: Renamed to `HTTPStatusCodeNginxClientClosedRequest` -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeClientClosedRequest NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.clientClosedRequest instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeNginxClientClosedRequest"); - -/// Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead. -/// -/// - seealso: [Twitter Error Codes & Responses](https://dev.twitter.com/docs/error-codes-responses) -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeTwitterEnhanceYourCalm NS_SWIFT_UNAVAILABLE("Use HTTPStatusCode.TwitterEnhanceYourCalm instead") DEPRECATED_MSG_ATTRIBUTE("Renamed to HTTPStatusCodeTooManyRequests"); - - -// MARK: - Removed - -/// Switch Proxy: 306 -/// -/// No longer used. Originally meant "Subsequent requests should use the specified proxy." -/// -/// - seealso: [Original draft](https://tools.ietf.org/html/draft-cohen-http-305-306-responses-00) -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeSwitchProxy NS_UNAVAILABLE; - -/// Authentication Timeout: 419 -/// -/// Removed from Wikipedia page. -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeAuthenticationTimeout NS_UNAVAILABLE; - -/// Method Failure: 419 -/// -/// A deprecated response used by the Spring Framework when a method has failed. -/// -/// - seealso: [Spring Framework: HttpStatus enum documentation - `METHOD_FAILURE`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/HttpStatus.html#METHOD_FAILURE) -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeSpringFrameworkMethodFailure NS_UNAVAILABLE; - -/// Request Header Too Large: 494 -/// -/// Removed and replaced with `RequestHeaderFieldsTooLarge` - 431 -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeRequestHeaderTooLarge NS_UNAVAILABLE; - -/// Network Timeout Error: 599 -/// -/// Removed from Wikipedia page. -FOUNDATION_EXTERN __HTTPStatusCode HTTPStatusCodeNetworkTimeoutError NS_UNAVAILABLE; diff --git a/Tests/HTTPStatusCodes/Deprecated.m b/Tests/HTTPStatusCodes/Deprecated.m deleted file mode 100644 index b94b47f..0000000 --- a/Tests/HTTPStatusCodes/Deprecated.m +++ /dev/null @@ -1,33 +0,0 @@ -// -// Deprecated.c -// HTTPStatusCodes -// -// Created by Richard Hodgkins on 08/06/2016. -// Copyright © 2016 Rich H. All rights reserved. -// - -#import "Deprecated.h" - -#import - -// MARK: - Deprecated - -__HTTPStatusCode HTTPStatusCodeRequestEntityTooLarge = HTTPStatusCodePayloadTooLarge; -__HTTPStatusCode HTTPStatusCodeRequestURITooLong = HTTPStatusCodeURITooLong; -__HTTPStatusCode HTTPStatusCodeRequestedRangeNotSatisfiable = HTTPStatusCodeRangeNotSatisfiable; -__HTTPStatusCode HTTPStatusCodeLoginTimeout = HTTPStatusCodeIISLoginTimeout; -__HTTPStatusCode HTTPStatusCodeRetryWith = HTTPStatusCodeIISRetryWith; -__HTTPStatusCode HTTPStatusCodeNoResponse = HTTPStatusCodeNginxNoResponse; -__HTTPStatusCode HTTPStatusCodeCertError = HTTPStatusCodeNginxSSLCertificateError; -__HTTPStatusCode HTTPStatusCodeNoCert = HTTPStatusCodeNginxSSLCertificateRequired; -__HTTPStatusCode HTTPStatusCodeHTTPToHTTPS = HTTPStatusCodeNginxHTTPToHTTPS; -__HTTPStatusCode HTTPStatusCodeClientClosedRequest = HTTPStatusCodeNginxClientClosedRequest; -__HTTPStatusCode HTTPStatusCodeTwitterEnhanceYourCalm = HTTPStatusCodeTooManyRequests; - -// MARK: - Removed - -__HTTPStatusCode HTTPStatusCodeSwitchProxy = 306; -__HTTPStatusCode HTTPStatusCodeAuthenticationTimeout = 419; -__HTTPStatusCode HTTPStatusCodeSpringFrameworkMethodFailure = 419; -__HTTPStatusCode HTTPStatusCodeRequestHeaderTooLarge = 494; -__HTTPStatusCode HTTPStatusCodeNetworkTimeoutError = 599; diff --git a/Tests/HTTPStatusCodes/HTTPStatusCodes.h b/Tests/HTTPStatusCodes/HTTPStatusCodes.h deleted file mode 100644 index f47a75b..0000000 --- a/Tests/HTTPStatusCodes/HTTPStatusCodes.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// HTTPStatusCodes.h -// HTTPStatusCodes -// -// Created by Richard Hodgkins on 22/02/2015. -// Copyright (c) 2015 Rich H. All rights reserved. -// - -@import Foundation; - -//! Project version number for HTTPStatusCodes. -FOUNDATION_EXPORT double HTTPStatusCodesVersionNumber; - -//! Project version string for HTTPStatusCodes. -FOUNDATION_EXPORT const unsigned char HTTPStatusCodesVersionString[]; - -#import diff --git a/Tests/HTTPStatusCodes/SupportingFiles/Info-OSX.plist b/Tests/HTTPStatusCodes/SupportingFiles/Info-OSX.plist deleted file mode 100644 index f2c449d..0000000 --- a/Tests/HTTPStatusCodes/SupportingFiles/Info-OSX.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - $(HSC_VERSION) - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2015 Rich H. All rights reserved. - NSPrincipalClass - - - diff --git a/Tests/HTTPStatusCodes/SupportingFiles/Info-iOS.plist b/Tests/HTTPStatusCodes/SupportingFiles/Info-iOS.plist deleted file mode 100644 index e5b127f..0000000 --- a/Tests/HTTPStatusCodes/SupportingFiles/Info-iOS.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - $(HSC_VERSION) - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/Tests/HTTPStatusCodes/SupportingFiles/Info-tvOS.plist b/Tests/HTTPStatusCodes/SupportingFiles/Info-tvOS.plist deleted file mode 100644 index e5b127f..0000000 --- a/Tests/HTTPStatusCodes/SupportingFiles/Info-tvOS.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - $(HSC_VERSION) - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/Tests/HTTPStatusCodes/SupportingFiles/Info-watchOS.plist b/Tests/HTTPStatusCodes/SupportingFiles/Info-watchOS.plist deleted file mode 100644 index e5b127f..0000000 --- a/Tests/HTTPStatusCodes/SupportingFiles/Info-watchOS.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - $(HSC_VERSION) - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/Tests/HTTPStatusCodesTests/ObjectiveCRegressionTests.m b/Tests/HTTPStatusCodesTests/ObjectiveCRegressionTests.m deleted file mode 100644 index f7b7f7f..0000000 --- a/Tests/HTTPStatusCodesTests/ObjectiveCRegressionTests.m +++ /dev/null @@ -1,181 +0,0 @@ -// -// ObjectiveCRegressionTests.m -// ObjectiveCTests -// -// Created by Richard Hodgkins on 09/06/2016. -// Copyright © 2016 Rich H. All rights reserved. -// - -@import Foundation; - -#if TARGET_OS_WATCH -// No testing supported -#else - -@import XCTest; -@import HTTPStatusCodes; - -#import - -@interface ObjectiveCRegressionTests : XCTestCase - -@end - -// Create with copy and paste of the enum and use: -// FIND: \s*\n?(?:\s*///\s*.+\n)+\s*case (.+) = ([0-9]+) -// REPLACE: XCTAssertEqual(HTTPStatusCode\1, \2);\n -@implementation ObjectiveCRegressionTests - --(void)testVersion2_0 -{ - XCTAssertEqual(HTTPStatusCodeContinue, 100); - XCTAssertEqual(HTTPStatusCodeSwitchingProtocols, 101); - XCTAssertEqual(HTTPStatusCodeProcessing, 102); - XCTAssertEqual(HTTPStatusCodeOK, 200); - XCTAssertEqual(HTTPStatusCodeCreated, 201); - XCTAssertEqual(HTTPStatusCodeAccepted, 202); - XCTAssertEqual(HTTPStatusCodeNonAuthoritativeInformation, 203); - XCTAssertEqual(HTTPStatusCodeNoContent, 204); - XCTAssertEqual(HTTPStatusCodeResetContent, 205); - XCTAssertEqual(HTTPStatusCodePartialContent, 206); - XCTAssertEqual(HTTPStatusCodeMultiStatus, 207); - XCTAssertEqual(HTTPStatusCodeAlreadyReported, 208); - XCTAssertEqual(HTTPStatusCodeIMUsed, 226); - XCTAssertEqual(HTTPStatusCodeMultipleChoices, 300); - XCTAssertEqual(HTTPStatusCodeMovedPermanently, 301); - XCTAssertEqual(HTTPStatusCodeFound, 302); - XCTAssertEqual(HTTPStatusCodeSeeOther, 303); - XCTAssertEqual(HTTPStatusCodeNotModified, 304); - XCTAssertEqual(HTTPStatusCodeUseProxy, 305); - XCTAssertEqual(HTTPStatusCodeTemporaryRedirect, 307); - XCTAssertEqual(HTTPStatusCodePermanentRedirect, 308); - XCTAssertEqual(HTTPStatusCodeBadRequest, 400); - XCTAssertEqual(HTTPStatusCodeUnauthorized, 401); - XCTAssertEqual(HTTPStatusCodePaymentRequired, 402); - XCTAssertEqual(HTTPStatusCodeForbidden, 403); - XCTAssertEqual(HTTPStatusCodeNotFound, 404); - XCTAssertEqual(HTTPStatusCodeMethodNotAllowed, 405); - XCTAssertEqual(HTTPStatusCodeNotAcceptable, 406); - XCTAssertEqual(HTTPStatusCodeProxyAuthenticationRequired, 407); - XCTAssertEqual(HTTPStatusCodeRequestTimeout, 408); - XCTAssertEqual(HTTPStatusCodeConflict, 409); - XCTAssertEqual(HTTPStatusCodeGone, 410); - XCTAssertEqual(HTTPStatusCodeLengthRequired, 411); - XCTAssertEqual(HTTPStatusCodePreconditionFailed, 412); - XCTAssertEqual(HTTPStatusCodeRequestEntityTooLarge, 413); - XCTAssertEqual(HTTPStatusCodeRequestURITooLong, 414); - XCTAssertEqual(HTTPStatusCodeUnsupportedMediaType, 415); - XCTAssertEqual(HTTPStatusCodeRequestedRangeNotSatisfiable, 416); - XCTAssertEqual(HTTPStatusCodeExpectationFailed, 417); - XCTAssertEqual(HTTPStatusCodeImATeapot, 418); -// XCTAssertEqual(HTTPStatusCodeAuthenticationTimeout, 419); - XCTAssertEqual(HTTPStatusCodeUnprocessableEntity, 422); - XCTAssertEqual(HTTPStatusCodeLocked, 423); - XCTAssertEqual(HTTPStatusCodeFailedDependency, 424); - XCTAssertEqual(HTTPStatusCodeUpgradeRequired, 426); - XCTAssertEqual(HTTPStatusCodePreconditionRequired, 428); - XCTAssertEqual(HTTPStatusCodeTooManyRequests, 429); - XCTAssertEqual(HTTPStatusCodeRequestHeaderFieldsTooLarge, 431); - XCTAssertEqual(HTTPStatusCodeLoginTimeout, 440); - XCTAssertEqual(HTTPStatusCodeNoResponse, 444); - XCTAssertEqual(HTTPStatusCodeRetryWith, 449); - XCTAssertEqual(HTTPStatusCodeUnavailableForLegalReasons, 451); -// XCTAssertEqual(HTTPStatusCodeRequestHeaderTooLarge, 494); - XCTAssertEqual(HTTPStatusCodeCertError, 495); - XCTAssertEqual(HTTPStatusCodeNoCert, 496); - XCTAssertEqual(HTTPStatusCodeHTTPToHTTPS, 497); - XCTAssertEqual(HTTPStatusCodeTokenExpired, 498); - XCTAssertEqual(HTTPStatusCodeClientClosedRequest, 499); - XCTAssertEqual(HTTPStatusCodeInternalServerError, 500); - XCTAssertEqual(HTTPStatusCodeNotImplemented, 501); - XCTAssertEqual(HTTPStatusCodeBadGateway, 502); - XCTAssertEqual(HTTPStatusCodeServiceUnavailable, 503); - XCTAssertEqual(HTTPStatusCodeGatewayTimeout, 504); - XCTAssertEqual(HTTPStatusCodeHTTPVersionNotSupported, 505); - XCTAssertEqual(HTTPStatusCodeVariantAlsoNegotiates, 506); - XCTAssertEqual(HTTPStatusCodeInsufficientStorage, 507); - XCTAssertEqual(HTTPStatusCodeLoopDetected, 508); - XCTAssertEqual(HTTPStatusCodeBandwidthLimitExceeded, 509); - XCTAssertEqual(HTTPStatusCodeNotExtended, 510); - XCTAssertEqual(HTTPStatusCodeNetworkAuthenticationRequired, 511); -// XCTAssertEqual(HTTPStatusCodeNetworkTimeoutError, 599); -} - --(void)testVersion3_0 -{ - XCTAssertEqual(HTTPStatusCodeContinue, 100); - XCTAssertEqual(HTTPStatusCodeSwitchingProtocols, 101); - XCTAssertEqual(HTTPStatusCodeProcessing, 102); - XCTAssertEqual(HTTPStatusCodeCheckpoint, 103); - XCTAssertEqual(HTTPStatusCodeOK, 200); - XCTAssertEqual(HTTPStatusCodeCreated, 201); - XCTAssertEqual(HTTPStatusCodeAccepted, 202); - XCTAssertEqual(HTTPStatusCodeNonAuthoritativeInformation, 203); - XCTAssertEqual(HTTPStatusCodeNoContent, 204); - XCTAssertEqual(HTTPStatusCodeResetContent, 205); - XCTAssertEqual(HTTPStatusCodePartialContent, 206); - XCTAssertEqual(HTTPStatusCodeMultiStatus, 207); - XCTAssertEqual(HTTPStatusCodeAlreadyReported, 208); - XCTAssertEqual(HTTPStatusCodeIMUsed, 226); - XCTAssertEqual(HTTPStatusCodeMultipleChoices, 300); - XCTAssertEqual(HTTPStatusCodeMovedPermanently, 301); - XCTAssertEqual(HTTPStatusCodeFound, 302); - XCTAssertEqual(HTTPStatusCodeSeeOther, 303); - XCTAssertEqual(HTTPStatusCodeNotModified, 304); - XCTAssertEqual(HTTPStatusCodeUseProxy, 305); - XCTAssertEqual(HTTPStatusCodeTemporaryRedirect, 307); - XCTAssertEqual(HTTPStatusCodePermanentRedirect, 308); - XCTAssertEqual(HTTPStatusCodeBadRequest, 400); - XCTAssertEqual(HTTPStatusCodeUnauthorized, 401); - XCTAssertEqual(HTTPStatusCodePaymentRequired, 402); - XCTAssertEqual(HTTPStatusCodeForbidden, 403); - XCTAssertEqual(HTTPStatusCodeNotFound, 404); - XCTAssertEqual(HTTPStatusCodeMethodNotAllowed, 405); - XCTAssertEqual(HTTPStatusCodeNotAcceptable, 406); - XCTAssertEqual(HTTPStatusCodeProxyAuthenticationRequired, 407); - XCTAssertEqual(HTTPStatusCodeRequestTimeout, 408); - XCTAssertEqual(HTTPStatusCodeConflict, 409); - XCTAssertEqual(HTTPStatusCodeGone, 410); - XCTAssertEqual(HTTPStatusCodeLengthRequired, 411); - XCTAssertEqual(HTTPStatusCodePreconditionFailed, 412); - XCTAssertEqual(HTTPStatusCodePayloadTooLarge, 413); - XCTAssertEqual(HTTPStatusCodeURITooLong, 414); - XCTAssertEqual(HTTPStatusCodeUnsupportedMediaType, 415); - XCTAssertEqual(HTTPStatusCodeRangeNotSatisfiable, 416); - XCTAssertEqual(HTTPStatusCodeExpectationFailed, 417); - XCTAssertEqual(HTTPStatusCodeImATeapot, 418); - XCTAssertEqual(HTTPStatusCodeMisdirectedRequest, 421); - XCTAssertEqual(HTTPStatusCodeUnprocessableEntity, 422); - XCTAssertEqual(HTTPStatusCodeLocked, 423); - XCTAssertEqual(HTTPStatusCodeFailedDependency, 424); - XCTAssertEqual(HTTPStatusCodeUpgradeRequired, 426); - XCTAssertEqual(HTTPStatusCodePreconditionRequired, 428); - XCTAssertEqual(HTTPStatusCodeTooManyRequests, 429); - XCTAssertEqual(HTTPStatusCodeRequestHeaderFieldsTooLarge, 431); - XCTAssertEqual(HTTPStatusCodeIISLoginTimeout, 440); - XCTAssertEqual(HTTPStatusCodeNginxNoResponse, 444); - XCTAssertEqual(HTTPStatusCodeIISRetryWith, 449); - XCTAssertEqual(HTTPStatusCodeBlockedByWindowsParentalControls, 450); - XCTAssertEqual(HTTPStatusCodeUnavailableForLegalReasons, 451); - XCTAssertEqual(HTTPStatusCodeNginxSSLCertificateError, 495); - XCTAssertEqual(HTTPStatusCodeNginxSSLCertificateRequired, 496); - XCTAssertEqual(HTTPStatusCodeNginxHTTPToHTTPS, 497); - XCTAssertEqual(HTTPStatusCodeTokenExpired, 498); - XCTAssertEqual(HTTPStatusCodeNginxClientClosedRequest, 499); - XCTAssertEqual(HTTPStatusCodeInternalServerError, 500); - XCTAssertEqual(HTTPStatusCodeNotImplemented, 501); - XCTAssertEqual(HTTPStatusCodeBadGateway, 502); - XCTAssertEqual(HTTPStatusCodeServiceUnavailable, 503); - XCTAssertEqual(HTTPStatusCodeGatewayTimeout, 504); - XCTAssertEqual(HTTPStatusCodeHTTPVersionNotSupported, 505); - XCTAssertEqual(HTTPStatusCodeVariantAlsoNegotiates, 506); - XCTAssertEqual(HTTPStatusCodeInsufficientStorage, 507); - XCTAssertEqual(HTTPStatusCodeLoopDetected, 508); - XCTAssertEqual(HTTPStatusCodeBandwidthLimitExceeded, 509); - XCTAssertEqual(HTTPStatusCodeNotExtended, 510); - XCTAssertEqual(HTTPStatusCodeNetworkAuthenticationRequired, 511); - XCTAssertEqual(HTTPStatusCodeSiteIsFrozen, 530); -} - -@end -#endif diff --git a/Tests/HTTPStatusCodesTests/ObjectiveCTests.m b/Tests/HTTPStatusCodesTests/ObjectiveCTests.m deleted file mode 100644 index 5781e5e..0000000 --- a/Tests/HTTPStatusCodesTests/ObjectiveCTests.m +++ /dev/null @@ -1,47 +0,0 @@ -// -// ObjectiveCTests.m -// HTTPStatusCodes -// -// Created by Richard Hodgkins on 12/10/2016. -// Copyright © 2016 Rich H. All rights reserved. -// - -@import Foundation; - -#if TARGET_OS_WATCH -// No testing supported -#else - -@import XCTest; -@import HTTPStatusCodes; - -#import - -static NSHTTPURLResponse *_Nullable response(HTTPStatusCode statusCode) { - return [[NSHTTPURLResponse alloc] initWithURL:[NSURL URLWithString:@"http://www.google.com"] statusCodeValue:statusCode HTTPVersion:nil headerFields:nil]; -} - -@interface ObjectiveCTests : XCTestCase - -@end - -@implementation ObjectiveCTests - --(void)testComputedStatusCodeValueProperty -{ - XCTAssertEqual(response(HTTPStatusCodeContinue).statusCodeValue, HTTPStatusCodeContinue, @"Incorrect status code"); - XCTAssertEqual(response(HTTPStatusCodeOK).statusCodeValue, HTTPStatusCodeOK, @"Incorrect status code"); - XCTAssertEqual(response(HTTPStatusCodeMultipleChoices).statusCodeValue, HTTPStatusCodeMultipleChoices, @"Incorrect status code"); - XCTAssertEqual(response(HTTPStatusCodeBadRequest).statusCodeValue, HTTPStatusCodeBadRequest, @"Incorrect status code"); - XCTAssertEqual(response(HTTPStatusCodeInternalServerError).statusCodeValue, HTTPStatusCodeInternalServerError, @"Incorrect status code"); -} - --(void)testNSHTTPURLResponseInit -{ - XCTAssertEqual([[NSHTTPURLResponse alloc] initWithURL:[NSURL URLWithString:@"http://www.google.com"] statusCodeValue:HTTPStatusCodeOK HTTPVersion:nil headerFields:nil].statusCode, 200); - XCTAssertEqual([[NSHTTPURLResponse alloc] initWithURL:[NSURL URLWithString:@"http://www.google.com"] statusCodeValue:HTTPStatusCodeOK HTTPVersion:nil headerFields:nil].statusCode, HTTPStatusCodeOK); - XCTAssertEqual([[NSHTTPURLResponse alloc] initWithURL:[NSURL URLWithString:@"http://www.google.com"] statusCodeValue:HTTPStatusCodeOK HTTPVersion:nil headerFields:nil].statusCodeValue, HTTPStatusCodeOK); -} - -@end -#endif From 03e37747e84f2cd9d291a1681b6ddcf416281710 Mon Sep 17 00:00:00 2001 From: Jader Feijo Date: Tue, 28 Jun 2022 10:15:29 +0100 Subject: [PATCH 2/2] Allow library to compile under linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The following changes were made to accomplish that: • All @objc interfaces were removed as ObjC is not supported when running Swift on Linux • Import FoundationNetworking module when compiling for linux • Added a GitHub workflow which runs unit tests using a Ubuntu image --- .github/workflows/test.yml | 19 +++++++++++++++++++ .../contents.xcworkspacedata | 7 +++++++ Sources/HTTPStatusCodes+Extensions.swift | 7 +++++-- Sources/HTTPStatusCodes.swift | 8 +------- Tests/Generator.playground/Sources/Case.swift | 6 ------ .../Sources/StaticTexts.swift | 2 +- .../HTTPStatusCodesTests.swift | 4 ++++ .../RegressionTests.swift | 6 +++++- 8 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/test.yml create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..f14fbd0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,19 @@ +name: Run Unit Tests + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Build + run: swift build + - name: Run tests + run: swift test \ No newline at end of file diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Sources/HTTPStatusCodes+Extensions.swift b/Sources/HTTPStatusCodes+Extensions.swift index 246602f..5935f36 100644 --- a/Sources/HTTPStatusCodes+Extensions.swift +++ b/Sources/HTTPStatusCodes+Extensions.swift @@ -8,6 +8,10 @@ import Foundation +#if canImport(FoundationNetworking) +import FoundationNetworking +#endif + public extension HTTPStatusCode { /// Informational - Request received, continuing process. var isInformational: Bool { @@ -82,7 +86,7 @@ public extension HTTPURLResponse { * * - returns: the receiver’s HTTP status code. */ - @objc(statusCodeValue) var statusCodeEnum: HTTPStatusCode { + var statusCodeEnum: HTTPStatusCode { return HTTPStatusCode(HTTPResponse: self)! } @@ -102,7 +106,6 @@ public extension HTTPURLResponse { * - returns: the instance of the object, or `nil` if an error occurred during initialization. */ @available(iOS, introduced: 7.0) - @objc(initWithURL:statusCodeValue:HTTPVersion:headerFields:) convenience init?(url: URL, statusCode: HTTPStatusCode, httpVersion: String?, headerFields: [String : String]?) { self.init(url: url, statusCode: statusCode.rawValue, httpVersion: httpVersion, headerFields: headerFields) } diff --git a/Sources/HTTPStatusCodes.swift b/Sources/HTTPStatusCodes.swift index 1178e14..de6c823 100644 --- a/Sources/HTTPStatusCodes.swift +++ b/Sources/HTTPStatusCodes.swift @@ -13,7 +13,7 @@ import Foundation /// /// - seealso: [Wikipedia page - List of HTTP status codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes) /// - seealso: [HTTP protocol standard - Status Code Definitions](https://tools.ietf.org/html/rfc2616#section-10) -@objc public enum HTTPStatusCode: Int { +public enum HTTPStatusCode: Int { /// Continue: 100 /// @@ -38,7 +38,6 @@ import Foundation /// OK: 200 /// /// - seealso: [RFC7231, Section 6.3.1](http://www.iana.org/go/rfc7231#section-6.3.1) - @objc(HTTPStatusCodeOK) case ok = 200 /// Created: 201 @@ -84,7 +83,6 @@ import Foundation /// IM Used: 226 /// /// - seealso: [RFC3229](http://www.iana.org/go/rfc3229) - @objc(HTTPStatusCodeIMUsed) case imUsed = 226 /// Multiple Choices: 300 @@ -201,7 +199,6 @@ import Foundation /// URI Too Long: 414 /// /// - seealso: [RFC7231, Section 6.5.12](http://www.iana.org/go/rfc7231#section-6.5.12) - @objc(HTTPStatusCodeURITooLong) case uriTooLong = 414 /// Unsupported Media Type: 415 @@ -279,7 +276,6 @@ import Foundation /// **Category**: Internet Information Services /// /// - seealso: [Error message when you try to log on to Exchange 2007 by using Outlook Web Access: "440 Login Timeout"](http://support.microsoft.com/kb/941201/en-us) - @objc(HTTPStatusCodeIISLoginTimeout) case iisLoginTimeout = 440 /// nginx No Response: 444 @@ -296,7 +292,6 @@ import Foundation /// **Category**: Internet Information Services /// /// - seealso: [2.2.6 449 Retry With Status Code](https://msdn.microsoft.com/en-us/library/dd891478.aspx) - @objc(HTTPStatusCodeIISRetryWith) case iisRetryWith = 449 /// Blocked by Windows Parental Controls: 450 @@ -372,7 +367,6 @@ import Foundation /// HTTP Version Not Supported: 505 /// /// - seealso: [RFC7231, Section 6.6.6](http://www.iana.org/go/rfc7231#section-6.6.6) - @objc(HTTPStatusCodeHTTPVersionNotSupported) case httpVersionNotSupported = 505 /// Variant Also Negotiates: 506 diff --git a/Tests/Generator.playground/Sources/Case.swift b/Tests/Generator.playground/Sources/Case.swift index 3532d84..1b7e1df 100644 --- a/Tests/Generator.playground/Sources/Case.swift +++ b/Tests/Generator.playground/Sources/Case.swift @@ -3,7 +3,6 @@ public struct Case { let name: String let comments: [String] let caseName: String - let objCCaseName: String? init(code: Int, name: String, comments: String...) { self.init(code: code, name: name, comments: comments) @@ -23,8 +22,6 @@ public struct Case { let swiftCaseNameSuffix = (identifiers.count > 1 ? identifiers.suffix(from: 1).map { $0.uppercasedFirstCharacter() } : []).joined(separator: "") let swiftCaseName = swiftCaseNamePrefix + swiftCaseNameSuffix - // Keep acronyms if its the first identifier - objCCaseName = prefix.uppercased() == prefix ? (prefix + swiftCaseNameSuffix) : nil // Escape special case names caseName = UnsafeCaseNames.contains(swiftCaseName) ? "`\(swiftCaseName)`" : swiftCaseName @@ -36,9 +33,6 @@ extension Case: Hashable, Comparable, CustomStringConvertible { public var description: String { var lines = [makeLinesIntoDocComment(lines: comments, prefix: "\t")] - if let objCCaseName = objCCaseName { - lines.append("\t@objc(\(EnumName)\(objCCaseName))") - } lines.append("\tcase \(caseName) = \(code)") return text(lines) } diff --git a/Tests/Generator.playground/Sources/StaticTexts.swift b/Tests/Generator.playground/Sources/StaticTexts.swift index 92b4f96..48bc7da 100644 --- a/Tests/Generator.playground/Sources/StaticTexts.swift +++ b/Tests/Generator.playground/Sources/StaticTexts.swift @@ -68,7 +68,7 @@ public func createEnumHeaderComment(lastUpdated: String) -> String { ) } -public let EnumDeclarationStart = "@objc public enum \(EnumName): Int {" +public let EnumDeclarationStart = "public enum \(EnumName): Int {" public let EnumDeclarationEnd = "}" diff --git a/Tests/HTTPStatusCodesTests/HTTPStatusCodesTests.swift b/Tests/HTTPStatusCodesTests/HTTPStatusCodesTests.swift index 4f05d74..3aeb5a6 100644 --- a/Tests/HTTPStatusCodesTests/HTTPStatusCodesTests.swift +++ b/Tests/HTTPStatusCodesTests/HTTPStatusCodesTests.swift @@ -8,6 +8,10 @@ import Foundation +#if canImport(FoundationNetworking) +import FoundationNetworking +#endif + #if os(watchOS) // No testing supported @testable import HTTPStatusCodes diff --git a/Tests/HTTPStatusCodesTests/RegressionTests.swift b/Tests/HTTPStatusCodesTests/RegressionTests.swift index 26ffde7..c897fdd 100644 --- a/Tests/HTTPStatusCodesTests/RegressionTests.swift +++ b/Tests/HTTPStatusCodesTests/RegressionTests.swift @@ -8,6 +8,10 @@ import Foundation +#if canImport(FoundationNetworking) +import FoundationNetworking +#endif + #if os(watchOS) // No testing supported @testable import HTTPStatusCodes @@ -107,7 +111,7 @@ final class RegressionTests: XCTestCase { XCTAssertEqual(HTTPStatusCode.notExtended, 510) XCTAssertEqual(HTTPStatusCode.networkAuthenticationRequired, 511) - XCTAssertEqual(HTTPURLResponse(url: URL(string: "http://www.google.com")!, statusCode: .ok, HTTPVersion: nil, headerFields: nil)!.statusCodeValue, .ok) + XCTAssertEqual(HTTPURLResponse(url: URL(string: "http://www.google.com")!, statusCode: .ok, httpVersion: nil, headerFields: nil)!.statusCodeValue, .ok) } func testVersion3_0() {