From bec0e01bab0e5e6450b39b49ccddcc0d0faab148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Mon, 11 Apr 2016 14:15:56 +0100 Subject: [PATCH 01/11] Upgrade unit tests to use expectations instead of AsyncTestHelper. Remove AsyncTestHelper files. --- .../project.pbxproj | 6 --- WordPress-iOS-SharedTests/AsyncTestHelper.h | 45 ------------------- WordPress-iOS-SharedTests/AsyncTestHelper.m | 4 -- WordPress-iOS-SharedTests/WPImageSourceTest.m | 44 +++++++++--------- 4 files changed, 24 insertions(+), 75 deletions(-) delete mode 100644 WordPress-iOS-SharedTests/AsyncTestHelper.h delete mode 100644 WordPress-iOS-SharedTests/AsyncTestHelper.m diff --git a/WordPress-iOS-Shared.xcodeproj/project.pbxproj b/WordPress-iOS-Shared.xcodeproj/project.pbxproj index d9f59f1..db2f165 100644 --- a/WordPress-iOS-Shared.xcodeproj/project.pbxproj +++ b/WordPress-iOS-Shared.xcodeproj/project.pbxproj @@ -29,7 +29,6 @@ 931A102E192A9E3200D3CC11 /* WPTableViewSectionHeaderFooterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A102B192A9E3200D3CC11 /* WPTableViewSectionHeaderFooterView.m */; }; 931A1035192AA03600D3CC11 /* UIColor+Helpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1034192AA03600D3CC11 /* UIColor+Helpers.m */; }; 931A1038192AA34300D3CC11 /* WPImageSourceTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A1037192AA34300D3CC11 /* WPImageSourceTest.m */; }; - 931A103B192AA35B00D3CC11 /* AsyncTestHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 931A103A192AA35B00D3CC11 /* AsyncTestHelper.m */; }; 931A103E192AA3DB00D3CC11 /* test-image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 931A103D192AA3DB00D3CC11 /* test-image.jpg */; }; F45AF04D6E344F4CBD2A4B65 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB8B405468864FD7A0D16B74 /* libPods.a */; }; FF8DDCE11B5E91050098826F /* WPTextFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FF8DDCE01B5E91050098826F /* WPTextFieldTableViewCell.m */; }; @@ -98,8 +97,6 @@ 931A1033192AA03600D3CC11 /* UIColor+Helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+Helpers.h"; path = "Core/UIColor+Helpers.h"; sourceTree = ""; }; 931A1034192AA03600D3CC11 /* UIColor+Helpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+Helpers.m"; path = "Core/UIColor+Helpers.m"; sourceTree = ""; }; 931A1037192AA34300D3CC11 /* WPImageSourceTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPImageSourceTest.m; sourceTree = ""; }; - 931A1039192AA35B00D3CC11 /* AsyncTestHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsyncTestHelper.h; sourceTree = ""; }; - 931A103A192AA35B00D3CC11 /* AsyncTestHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AsyncTestHelper.m; sourceTree = ""; }; 931A103D192AA3DB00D3CC11 /* test-image.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "test-image.jpg"; sourceTree = ""; }; 98398B801DD76BC0326A4729 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; A7CDA9068CC847B2AD67DE41 /* libPods-WordPress-iOS-SharedTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WordPress-iOS-SharedTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -198,8 +195,6 @@ 931A1004192A9CDD00D3CC11 /* Supporting Files */ = { isa = PBXGroup; children = ( - 931A1039192AA35B00D3CC11 /* AsyncTestHelper.h */, - 931A103A192AA35B00D3CC11 /* AsyncTestHelper.m */, 931A1005192A9CDD00D3CC11 /* WordPress-iOS-SharedTests-Info.plist */, 931A1006192A9CDD00D3CC11 /* InfoPlist.strings */, ); @@ -480,7 +475,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 931A103B192AA35B00D3CC11 /* AsyncTestHelper.m in Sources */, 931A1038192AA34300D3CC11 /* WPImageSourceTest.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/WordPress-iOS-SharedTests/AsyncTestHelper.h b/WordPress-iOS-SharedTests/AsyncTestHelper.h deleted file mode 100644 index d654d1d..0000000 --- a/WordPress-iOS-SharedTests/AsyncTestHelper.h +++ /dev/null @@ -1,45 +0,0 @@ -#import -#import - -extern dispatch_semaphore_t ATHSemaphore; -extern const NSTimeInterval AsyncTestCaseDefaultTimeout; - -#define ATHStart() do {\ - ATHSemaphore = dispatch_semaphore_create(0);\ -} while (0) - -#define ATHNotify() do {\ - dispatch_semaphore_signal(ATHSemaphore);\ -} while (0) - -#define ATHWait() do {\ - BOOL timedOut;\ - NSDate *timeoutDate = [NSDate dateWithTimeIntervalSinceNow:AsyncTestCaseDefaultTimeout];\ - long lockStatus = 0;\ - while ((lockStatus = dispatch_semaphore_wait(ATHSemaphore, DISPATCH_TIME_NOW)) && [timeoutDate compare:[NSDate date]] == NSOrderedDescending)\ - [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode\ - beforeDate:[NSDate dateWithTimeIntervalSinceNow:AsyncTestCaseDefaultTimeout]];\ - timedOut = (lockStatus != 0);\ - XCTAssertFalse(timedOut, @"Lock timed out");\ -} while (0) - -#define ATHNeverCalled(timeout) do {\ - BOOL timedOut;\ - NSDate *timeoutDate = [NSDate dateWithTimeIntervalSinceNow:timeout];\ - long lockStatus = 0;\ - while ((lockStatus = dispatch_semaphore_wait(ATHSemaphore, DISPATCH_TIME_NOW)) && [timeoutDate compare:[NSDate date]] == NSOrderedDescending)\ - [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode\ - beforeDate:[NSDate dateWithTimeIntervalSinceNow:timeout]];\ - timedOut = (lockStatus != 0);\ - XCTAssertTrue(timedOut, @"Lock timed out");\ -} while (0) - -#define ATHEnd() do {\ - ATHWait(); \ - ATHSemaphore = nil;\ -} while (0) - -#define ATHEndNeverCalled(timeout) do {\ - ATHNeverCalled(timeout); \ - ATHSemaphore = nil;\ -} while (0) \ No newline at end of file diff --git a/WordPress-iOS-SharedTests/AsyncTestHelper.m b/WordPress-iOS-SharedTests/AsyncTestHelper.m deleted file mode 100644 index 183a06d..0000000 --- a/WordPress-iOS-SharedTests/AsyncTestHelper.m +++ /dev/null @@ -1,4 +0,0 @@ -#import "AsyncTestHelper.h" - -dispatch_semaphore_t ATHSemaphore; -const NSTimeInterval AsyncTestCaseDefaultTimeout = 10; diff --git a/WordPress-iOS-SharedTests/WPImageSourceTest.m b/WordPress-iOS-SharedTests/WPImageSourceTest.m index 5861192..d412ff7 100644 --- a/WordPress-iOS-SharedTests/WPImageSourceTest.m +++ b/WordPress-iOS-SharedTests/WPImageSourceTest.m @@ -1,6 +1,5 @@ #import #import -#import "AsyncTestHelper.h" #import "WPImageSource.h" @@ -36,16 +35,17 @@ - (void)testSendTokensToWordPressDotCom WPImageSource *source = [WPImageSource sharedSource]; - ATHStart(); + XCTestExpectation *expectation = [self expectationWithDescription:@"Download image with token"]; + [source downloadImageForURL:url authToken:@"TOKEN" withSuccess:^(UIImage *image) { - ATHNotify(); + [expectation fulfill]; } failure:^(NSError *error) { + [expectation fulfill]; XCTFail(); - ATHNotify(); }]; - ATHEnd(); + [self waitForExpectationsWithTimeout:5.0 handler:nil]; XCTAssertEqualObjects(lastAuthHeader, @"Bearer TOKEN"); } @@ -64,16 +64,18 @@ - (void)testDontSendTokensOutsideWordPressDotCom WPImageSource *source = [WPImageSource sharedSource]; - ATHStart(); + XCTestExpectation *expectation = [self expectationWithDescription:@"Download image without token"]; [source downloadImageForURL:url authToken:@"TOKEN" withSuccess:^(UIImage *image) { - ATHNotify(); + [expectation fulfill]; } failure:^(NSError *error) { + [expectation fulfill]; XCTFail(); - ATHNotify(); }]; - ATHEnd(); + + [self waitForExpectationsWithTimeout:5.0 handler: nil]; + XCTAssertNil(lastAuthHeader); } @@ -92,35 +94,37 @@ - (void)testImagesArentDownloadedTwice WPImageSource *source = [WPImageSource sharedSource]; - ATHStart(); + XCTestExpectation *originalDownloadExpectation = [self expectationWithDescription:@"Start 1st download"]; [source downloadImageForURL:url withSuccess:^(UIImage *image) { - ATHNotify(); + [originalDownloadExpectation fulfill]; } failure:^(NSError *error) { + [originalDownloadExpectation fulfill]; XCTFail(); - ATHNotify(); }]; + + XCTestExpectation *duplicateDownloadExpectation = [self expectationWithDescription:@"Start 1st download"]; [source downloadImageForURL:url withSuccess:^(UIImage *image) { - ATHNotify(); + [duplicateDownloadExpectation fulfill]; } failure:^(NSError *error) { + [duplicateDownloadExpectation fulfill]; XCTFail(); - ATHNotify(); }]; - ATHWait(); - ATHEnd(); + [self waitForExpectationsWithTimeout:5.0 handler: nil]; XCTAssertEqual(downloadCount, 1, @"it should download the image once"); - ATHStart(); + XCTestExpectation *anotherDownloadExpectation = [self expectationWithDescription:@"Start 1st download"]; [source downloadImageForURL:url withSuccess:^(UIImage *image) { - ATHNotify(); + [anotherDownloadExpectation fulfill]; } failure:^(NSError *error) { + [anotherDownloadExpectation fulfill]; XCTFail(); - ATHNotify(); }]; - ATHEnd(); + + [self waitForExpectationsWithTimeout:5.0 handler: nil]; XCTAssertEqual(downloadCount, 2, @"it should download the image"); } From 7b3087575a61b00e2887886be9ad420b9048e938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Mon, 11 Apr 2016 14:57:00 +0100 Subject: [PATCH 02/11] Test reading of animated gifs. --- WordPress-iOS-Shared-Example/Podfile.lock | 4 +-- .../project.pbxproj | 4 +++ WordPress-iOS-SharedTests/WPImageSourceTest.m | 26 ++++++++++++++++++ WordPress-iOS-SharedTests/anim-reader.gif | Bin 0 -> 147553 bytes 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 WordPress-iOS-SharedTests/anim-reader.gif diff --git a/WordPress-iOS-Shared-Example/Podfile.lock b/WordPress-iOS-Shared-Example/Podfile.lock index 1c2e1ec..fefe787 100644 --- a/WordPress-iOS-Shared-Example/Podfile.lock +++ b/WordPress-iOS-Shared-Example/Podfile.lock @@ -28,7 +28,7 @@ PODS: - CocoaLumberjack/Core - CocoaLumberjack/Extensions (2.2.0): - CocoaLumberjack/Default - - WordPress-iOS-Shared (0.5.3): + - WordPress-iOS-Shared (0.5.4): - AFNetworking (~> 2.5) - CocoaLumberjack (~> 2.2.0) @@ -42,6 +42,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: AFNetworking: cb8d14a848e831097108418f5d49217339d4eb60 CocoaLumberjack: 17fe8581f84914d5d7e6360f7c70022b173c3ae0 - WordPress-iOS-Shared: 43f55f24f0685e431167084071b7914d7c7134a8 + WordPress-iOS-Shared: 244f9ba88baea771e4509636029ee48340a4f98a COCOAPODS: 0.39.0 diff --git a/WordPress-iOS-Shared.xcodeproj/project.pbxproj b/WordPress-iOS-Shared.xcodeproj/project.pbxproj index db2f165..d07589e 100644 --- a/WordPress-iOS-Shared.xcodeproj/project.pbxproj +++ b/WordPress-iOS-Shared.xcodeproj/project.pbxproj @@ -32,6 +32,7 @@ 931A103E192AA3DB00D3CC11 /* test-image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 931A103D192AA3DB00D3CC11 /* test-image.jpg */; }; F45AF04D6E344F4CBD2A4B65 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB8B405468864FD7A0D16B74 /* libPods.a */; }; FF8DDCE11B5E91050098826F /* WPTextFieldTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FF8DDCE01B5E91050098826F /* WPTextFieldTableViewCell.m */; }; + FFBC2B371CBBE10300B0379E /* anim-reader.gif in Resources */ = {isa = PBXBuildFile; fileRef = FFBC2B361CBBE10300B0379E /* anim-reader.gif */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -103,6 +104,7 @@ AB8B405468864FD7A0D16B74 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; E95607083C359C14B48BA503 /* Pods-WordPress-iOS-SharedTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPress-iOS-SharedTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-WordPress-iOS-SharedTests/Pods-WordPress-iOS-SharedTests.release.xcconfig"; sourceTree = ""; }; FF8DDCE01B5E91050098826F /* WPTextFieldTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WPTextFieldTableViewCell.m; path = Core/WPTextFieldTableViewCell.m; sourceTree = ""; }; + FFBC2B361CBBE10300B0379E /* anim-reader.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = "anim-reader.gif"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -254,6 +256,7 @@ 931A103C192AA3B500D3CC11 /* Test Data */ = { isa = PBXGroup; children = ( + FFBC2B361CBBE10300B0379E /* anim-reader.gif */, 931A103D192AA3DB00D3CC11 /* test-image.jpg */, ); name = "Test Data"; @@ -364,6 +367,7 @@ buildActionMask = 2147483647; files = ( 931A1008192A9CDD00D3CC11 /* InfoPlist.strings in Resources */, + FFBC2B371CBBE10300B0379E /* anim-reader.gif in Resources */, 931A103E192AA3DB00D3CC11 /* test-image.jpg in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/WordPress-iOS-SharedTests/WPImageSourceTest.m b/WordPress-iOS-SharedTests/WPImageSourceTest.m index d412ff7..4790f6a 100644 --- a/WordPress-iOS-SharedTests/WPImageSourceTest.m +++ b/WordPress-iOS-SharedTests/WPImageSourceTest.m @@ -128,4 +128,30 @@ - (void)testImagesArentDownloadedTwice XCTAssertEqual(downloadCount, 2, @"it should download the image"); } +- (void)testDownloadOfAnimatedGif +{ + NSString *requestUrl = @"http://test.blog/images/anim-reader.gif"; + NSURL *url = [NSURL URLWithString:requestUrl]; + [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { + return YES; + } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { + return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"anim-reader.gif", nil) statusCode:200 headers:@{@"Content-Type" : @"image/gif"}]; + }]; + + WPImageSource *source = [WPImageSource sharedSource]; + + XCTestExpectation *expectation = [self expectationWithDescription:@"Download image without token"]; + [source downloadImageForURL:url + authToken:@"TOKEN" + withSuccess:^(UIImage *image) { + [expectation fulfill]; + } failure:^(NSError *error) { + [expectation fulfill]; + XCTFail(); + }]; + + [self waitForExpectationsWithTimeout:5.0 handler: nil]; + +} + @end diff --git a/WordPress-iOS-SharedTests/anim-reader.gif b/WordPress-iOS-SharedTests/anim-reader.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e0b18147a6275712db6ded19d5a13e14057d20c GIT binary patch literal 147553 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 D3;LpJ literal 0 HcmV?d00001 From 75e6fe5685e3c1f093822fdd4f57c05bcdd44869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Mon, 11 Apr 2016 14:59:21 +0100 Subject: [PATCH 03/11] This hack is no longer needed in the latest version of AFNetworking --- .../project.pbxproj | 14 ------ WordPress-iOS-Shared/Core/WPImageSource.m | 4 +- .../WPAnimatedImageResponseSerializer.h | 10 ----- .../WPAnimatedImageResponseSerializer.m | 43 ------------------- 4 files changed, 1 insertion(+), 70 deletions(-) delete mode 100644 WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.h delete mode 100644 WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.m diff --git a/WordPress-iOS-Shared.xcodeproj/project.pbxproj b/WordPress-iOS-Shared.xcodeproj/project.pbxproj index d07589e..23e9c3d 100644 --- a/WordPress-iOS-Shared.xcodeproj/project.pbxproj +++ b/WordPress-iOS-Shared.xcodeproj/project.pbxproj @@ -12,7 +12,6 @@ 744DA846194F3A76002CD6E9 /* UIImage+Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 744DA845194F3A76002CD6E9 /* UIImage+Util.m */; }; 7462F3401961FAAB00CC8EED /* WPFontManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 74F535F71961F7E6002D4320 /* WPFontManager.m */; }; 9309B52D192BEECC00B69F69 /* WordPressShared.m in Sources */ = {isa = PBXBuildFile; fileRef = 9309B52C192BEECC00B69F69 /* WordPressShared.m */; }; - 9309B533192F9C2000B69F69 /* WPAnimatedImageResponseSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9309B532192F9C2000B69F69 /* WPAnimatedImageResponseSerializer.m */; }; 931A0FEE192A9CDD00D3CC11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931A0FED192A9CDD00D3CC11 /* Foundation.framework */; }; 931A0FFC192A9CDD00D3CC11 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931A0FFB192A9CDD00D3CC11 /* XCTest.framework */; }; 931A0FFD192A9CDD00D3CC11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931A0FED192A9CDD00D3CC11 /* Foundation.framework */; }; @@ -68,8 +67,6 @@ 897FA2B40A6E81DB4E7F0435 /* Pods-WordPress-iOS-SharedTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPress-iOS-SharedTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WordPress-iOS-SharedTests/Pods-WordPress-iOS-SharedTests.debug.xcconfig"; sourceTree = ""; }; 9309B52B192BEECC00B69F69 /* WordPressShared.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WordPressShared.h; path = Exclude/WordPressShared.h; sourceTree = ""; }; 9309B52C192BEECC00B69F69 /* WordPressShared.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WordPressShared.m; path = Exclude/WordPressShared.m; sourceTree = ""; }; - 9309B531192F9C2000B69F69 /* WPAnimatedImageResponseSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPAnimatedImageResponseSerializer.h; sourceTree = ""; }; - 9309B532192F9C2000B69F69 /* WPAnimatedImageResponseSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPAnimatedImageResponseSerializer.m; sourceTree = ""; }; 931A0FEA192A9CDD00D3CC11 /* libWordPress-iOS-Shared.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libWordPress-iOS-Shared.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 931A0FED192A9CDD00D3CC11 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 931A0FF1192A9CDD00D3CC11 /* WordPress-iOS-Shared-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPress-iOS-Shared-Prefix.pch"; sourceTree = ""; }; @@ -167,7 +164,6 @@ 931A0FEF192A9CDD00D3CC11 /* WordPress-iOS-Shared */ = { isa = PBXGroup; children = ( - E13D93EF1BF235BA00CCBA7C /* Private */, E154809F1A43035700FA4EDD /* Core */, 931A0FF0192A9CDD00D3CC11 /* Supporting Files */, ); @@ -262,15 +258,6 @@ name = "Test Data"; sourceTree = ""; }; - E13D93EF1BF235BA00CCBA7C /* Private */ = { - isa = PBXGroup; - children = ( - 9309B531192F9C2000B69F69 /* WPAnimatedImageResponseSerializer.h */, - 9309B532192F9C2000B69F69 /* WPAnimatedImageResponseSerializer.m */, - ); - path = Private; - sourceTree = ""; - }; E154809F1A43035700FA4EDD /* Core */ = { isa = PBXGroup; children = ( @@ -467,7 +454,6 @@ 744DA846194F3A76002CD6E9 /* UIImage+Util.m in Sources */, 931A1020192A9DD500D3CC11 /* WPNoResultsView.m in Sources */, 931A1026192A9E0B00D3CC11 /* WPNUXUtility.m in Sources */, - 9309B533192F9C2000B69F69 /* WPAnimatedImageResponseSerializer.m in Sources */, 931A1035192AA03600D3CC11 /* UIColor+Helpers.m in Sources */, 931A1019192A9D6E00D3CC11 /* NSString+XMLExtensions.m in Sources */, 931A101C192A9DA500D3CC11 /* WPImageSource.m in Sources */, diff --git a/WordPress-iOS-Shared/Core/WPImageSource.m b/WordPress-iOS-Shared/Core/WPImageSource.m index 6a9e92c..3b53368 100644 --- a/WordPress-iOS-Shared/Core/WPImageSource.m +++ b/WordPress-iOS-Shared/Core/WPImageSource.m @@ -1,8 +1,6 @@ #import #import "WPImageSource.h" -#import "WPAnimatedImageResponseSerializer.h" - NSString * const WPImageSourceErrorDomain = @"WPImageSourceErrorDomain"; @implementation WPImageSource { @@ -84,7 +82,7 @@ - (void)startDownloadForURL:(NSURL *)url authToken:(NSString *)authToken { AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; - operation.responseSerializer = [[WPAnimatedImageResponseSerializer alloc] init]; + operation.responseSerializer = [[AFImageResponseSerializer alloc] init]; operation.responseSerializer.acceptableContentTypes = [operation.responseSerializer.acceptableContentTypes setByAddingObject:@"image/jpg"]; diff --git a/WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.h b/WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.h deleted file mode 100644 index eb5ca46..0000000 --- a/WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -/** - * @brief A custom response serializer to handle GIF animations. - * @details The default serializer for AFNetworking does not contemplate animated images. This - * class is a good replacement. Most of its behaviour is inherited from - * AFImageResponseSerializer. - */ -@interface WPAnimatedImageResponseSerializer : AFImageResponseSerializer -@end diff --git a/WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.m b/WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.m deleted file mode 100644 index 4ed2a6e..0000000 --- a/WordPress-iOS-Shared/Private/WPAnimatedImageResponseSerializer.m +++ /dev/null @@ -1,43 +0,0 @@ -#import "WPAnimatedImageResponseSerializer.h" - -@implementation WPAnimatedImageResponseSerializer - -#pragma mark - AFImageResponseSerializer - -/** - * @brief Override to handle GIFs. - * @details Error handling and other image formats are left for the superclass to handle. - * - * @param response The request response. - * @param data The image data if all went well. - * @param error Request errors. - * - * @returns The image. - */ -- (id)responseObjectForResponse:(NSURLResponse *)response - data:(NSData *)data - error:(NSError *__autoreleasing *)error -{ - UIImage* image = nil; - - static NSString* kGifMimeType = @"image/gif"; - - // if the image is not a GIF - BOOL mustBeHandledBySuperclass = ![response.MIMEType isEqualToString:kGifMimeType]; - if (!mustBeHandledBySuperclass) { - mustBeHandledBySuperclass = ![self validateResponse:(NSHTTPURLResponse*)response data:data error:error]; - } - - if (mustBeHandledBySuperclass) { - image = [super responseObjectForResponse:response - data:data - error:error]; - } else { - image = [[UIImage alloc] initWithData:data - scale:self.imageScale]; - } - - return image; -} - -@end From 221ba84b91821a1bfd8e97e9a8eacf3c2160f81d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Mon, 11 Apr 2016 22:34:30 +0100 Subject: [PATCH 04/11] Replace AFNetworking for NSURLSession. --- Podfile | 6 +- Podfile.lock | 61 +++++++-------- WordPress-iOS-Shared-Example/Podfile.lock | 25 +------ WordPress-iOS-Shared.podspec | 1 - WordPress-iOS-Shared/Core/WPImageSource.m | 90 ++++++++++++----------- 5 files changed, 77 insertions(+), 106 deletions(-) diff --git a/Podfile b/Podfile index 942cd15..ec7bc7b 100644 --- a/Podfile +++ b/Podfile @@ -1,10 +1,10 @@ source 'https://github.com/CocoaPods/Specs.git' platform :ios, '7.0' -pod 'AFNetworking', '~> 2.5' -pod 'CocoaLumberjack', '= 2.0.0' + +pod 'CocoaLumberjack', '~> 2.2.0' target 'WordPress-iOS-SharedTests', :exclusive => true do - pod 'OHHTTPStubs', '3.1.1' + pod 'OHHTTPStubs' pod 'OCMock' end diff --git a/Podfile.lock b/Podfile.lock index 5babc7b..b26cabf 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,46 +1,35 @@ PODS: - - AFNetworking (2.5.4): - - AFNetworking/NSURLConnection (= 2.5.4) - - AFNetworking/NSURLSession (= 2.5.4) - - AFNetworking/Reachability (= 2.5.4) - - AFNetworking/Security (= 2.5.4) - - AFNetworking/Serialization (= 2.5.4) - - AFNetworking/UIKit (= 2.5.4) - - AFNetworking/NSURLConnection (2.5.4): - - AFNetworking/Reachability - - AFNetworking/Security - - AFNetworking/Serialization - - AFNetworking/NSURLSession (2.5.4): - - AFNetworking/Reachability - - AFNetworking/Security - - AFNetworking/Serialization - - AFNetworking/Reachability (2.5.4) - - AFNetworking/Security (2.5.4) - - AFNetworking/Serialization (2.5.4) - - AFNetworking/UIKit (2.5.4): - - AFNetworking/NSURLConnection - - AFNetworking/NSURLSession - - CocoaLumberjack (2.0.0): - - CocoaLumberjack/Default (= 2.0.0) - - CocoaLumberjack/Extensions (= 2.0.0) - - CocoaLumberjack/Core (2.0.0) - - CocoaLumberjack/Default (2.0.0): + - CocoaLumberjack (2.2.0): + - CocoaLumberjack/Default (= 2.2.0) + - CocoaLumberjack/Extensions (= 2.2.0) + - CocoaLumberjack/Core (2.2.0) + - CocoaLumberjack/Default (2.2.0): - CocoaLumberjack/Core - - CocoaLumberjack/Extensions (2.0.0): + - CocoaLumberjack/Extensions (2.2.0): - CocoaLumberjack/Default - - OCMock (3.1.2) - - OHHTTPStubs (3.1.1) + - OCMock (3.2.2) + - OHHTTPStubs (5.0.0): + - OHHTTPStubs/Default (= 5.0.0) + - OHHTTPStubs/Core (5.0.0) + - OHHTTPStubs/Default (5.0.0): + - OHHTTPStubs/Core + - OHHTTPStubs/JSON + - OHHTTPStubs/NSURLSession + - OHHTTPStubs/OHPathHelpers + - OHHTTPStubs/JSON (5.0.0): + - OHHTTPStubs/Core + - OHHTTPStubs/NSURLSession (5.0.0): + - OHHTTPStubs/Core + - OHHTTPStubs/OHPathHelpers (5.0.0) DEPENDENCIES: - - AFNetworking (~> 2.5) - - CocoaLumberjack (= 2.0.0) + - CocoaLumberjack (~> 2.2.0) - OCMock - - OHHTTPStubs (= 3.1.1) + - OHHTTPStubs SPEC CHECKSUMS: - AFNetworking: 05edc0ac4c4c8cf57bcf4b84be5b0744b6d8e71e - CocoaLumberjack: a6f77d987d65dc7ba86b0f84db7d0b9084f77bcb - OCMock: a10ea9f0a6e921651f96f78b6faee95ebc813b92 - OHHTTPStubs: cc1b9cb45b963daf891aa736f35d29d74308f0c9 + CocoaLumberjack: 17fe8581f84914d5d7e6360f7c70022b173c3ae0 + OCMock: 18c9b7e67d4c2770e95bb77a9cc1ae0c91fe3835 + OHHTTPStubs: a5d2e9eea07869d42ec03338325f398bc520e159 COCOAPODS: 0.39.0 diff --git a/WordPress-iOS-Shared-Example/Podfile.lock b/WordPress-iOS-Shared-Example/Podfile.lock index fefe787..1604c52 100644 --- a/WordPress-iOS-Shared-Example/Podfile.lock +++ b/WordPress-iOS-Shared-Example/Podfile.lock @@ -1,25 +1,4 @@ PODS: - - AFNetworking (2.6.3): - - AFNetworking/NSURLConnection (= 2.6.3) - - AFNetworking/NSURLSession (= 2.6.3) - - AFNetworking/Reachability (= 2.6.3) - - AFNetworking/Security (= 2.6.3) - - AFNetworking/Serialization (= 2.6.3) - - AFNetworking/UIKit (= 2.6.3) - - AFNetworking/NSURLConnection (2.6.3): - - AFNetworking/Reachability - - AFNetworking/Security - - AFNetworking/Serialization - - AFNetworking/NSURLSession (2.6.3): - - AFNetworking/Reachability - - AFNetworking/Security - - AFNetworking/Serialization - - AFNetworking/Reachability (2.6.3) - - AFNetworking/Security (2.6.3) - - AFNetworking/Serialization (2.6.3) - - AFNetworking/UIKit (2.6.3): - - AFNetworking/NSURLConnection - - AFNetworking/NSURLSession - CocoaLumberjack (2.2.0): - CocoaLumberjack/Default (= 2.2.0) - CocoaLumberjack/Extensions (= 2.2.0) @@ -29,7 +8,6 @@ PODS: - CocoaLumberjack/Extensions (2.2.0): - CocoaLumberjack/Default - WordPress-iOS-Shared (0.5.4): - - AFNetworking (~> 2.5) - CocoaLumberjack (~> 2.2.0) DEPENDENCIES: @@ -40,8 +18,7 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - AFNetworking: cb8d14a848e831097108418f5d49217339d4eb60 CocoaLumberjack: 17fe8581f84914d5d7e6360f7c70022b173c3ae0 - WordPress-iOS-Shared: 244f9ba88baea771e4509636029ee48340a4f98a + WordPress-iOS-Shared: 9eedf32157c1e11e6068c825f844e405916e26e2 COCOAPODS: 0.39.0 diff --git a/WordPress-iOS-Shared.podspec b/WordPress-iOS-Shared.podspec index 87622d6..b9977f4 100644 --- a/WordPress-iOS-Shared.podspec +++ b/WordPress-iOS-Shared.podspec @@ -23,6 +23,5 @@ Pod::Spec.new do |s| s.requires_arc = true s.header_dir = 'WordPressShared' - s.dependency 'AFNetworking', '~> 2.5' s.dependency 'CocoaLumberjack', '~> 2.2.0' end diff --git a/WordPress-iOS-Shared/Core/WPImageSource.m b/WordPress-iOS-Shared/Core/WPImageSource.m index 3b53368..3ff76d3 100644 --- a/WordPress-iOS-Shared/Core/WPImageSource.m +++ b/WordPress-iOS-Shared/Core/WPImageSource.m @@ -1,14 +1,18 @@ -#import #import "WPImageSource.h" NSString * const WPImageSourceErrorDomain = @"WPImageSourceErrorDomain"; -@implementation WPImageSource { - NSOperationQueue *_downloadingQueue; - NSMutableSet *_urlDownloadsInProgress; - NSMutableDictionary *_successBlocks; - NSMutableDictionary *_failureBlocks; -} +@interface WPImageSource() + +@property (nonatomic, strong) NSURLSession *downloadingSession; +@property (nonatomic, strong) NSOperationQueue *downloadingQueue; +@property (nonatomic, strong) NSMutableSet *urlDownloadsInProgress; +@property (nonatomic, strong) NSMutableDictionary *successBlocks; +@property (nonatomic, strong) NSMutableDictionary *failureBlocks; + +@end + +@implementation WPImageSource + (instancetype)sharedSource { @@ -22,7 +26,7 @@ + (instancetype)sharedSource - (void)dealloc { - [_downloadingQueue cancelAllOperations]; + [_downloadingSession invalidateAndCancel]; } - (id)init @@ -33,6 +37,9 @@ - (id)init _urlDownloadsInProgress = [[NSMutableSet alloc] init]; _successBlocks = [[NSMutableDictionary alloc] init]; _failureBlocks = [[NSMutableDictionary alloc] init]; + + NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; + _downloadingSession = [NSURLSession sessionWithConfiguration:configuration]; } return self; } @@ -47,8 +54,8 @@ - (void)downloadImageForURL:(NSURL *)url authToken:(NSString *)authToken withSuc [self addCallbackForURL:url withSuccess:success failure:failure]; - if (![_urlDownloadsInProgress containsObject:url]) { - [_urlDownloadsInProgress addObject:url]; + if (![self.urlDownloadsInProgress containsObject:url]) { + [self.urlDownloadsInProgress addObject:url]; [self startDownloadForURL:url authToken:authToken]; } } @@ -80,33 +87,29 @@ - (void)startDownloadForURL:(NSURL *)url authToken:(NSString *)authToken { [request addValue:[NSString stringWithFormat:@"Bearer %@", token] forHTTPHeaderField:@"Authorization"]; } - AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; - - operation.responseSerializer = [[AFImageResponseSerializer alloc] init]; - operation.responseSerializer.acceptableContentTypes - = [operation.responseSerializer.acceptableContentTypes setByAddingObject:@"image/jpg"]; - - [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) - { - UIImage* image = (UIImage*)responseObject; - - if (!image) { - [self downloadSucceededWithNilImageForURL:url response:operation.response]; - return; - } - [self downloadedImage:image forURL:url]; - } failure:^(AFHTTPRequestOperation *operation, NSError *error) - { - [self downloadFailedWithError:error forURL:url]; - }]; - - [_downloadingQueue addOperation:operation]; + NSURLSessionDownloadTask *task = [self.downloadingSession downloadTaskWithRequest:request + completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) { + if (error) { + [self downloadFailedWithError:error forURL:url]; + return; + } + NSError *readError; + NSData *data = [NSData dataWithContentsOfURL:location options:NSDataReadingUncached error:&readError]; + UIImage *image = [UIImage imageWithData:data]; + if (!image) { + [self downloadSucceededWithNilImageForURL:url response:response]; + return; + } + + [self downloadedImage:image forURL:url]; + }]; + [task resume]; }); } - (void)downloadedImage:(UIImage *)image forURL:(NSURL *)url { - NSArray *successBlocks = [_successBlocks objectForKey:url]; + NSArray *successBlocks = [self.successBlocks objectForKey:url]; dispatch_async(dispatch_get_main_queue(), ^{ [self removeCallbacksForURL:url]; for (void (^success)(UIImage *) in successBlocks) { @@ -117,7 +120,7 @@ - (void)downloadedImage:(UIImage *)image forURL:(NSURL *)url - (void)downloadFailedWithError:(NSError *)error forURL:(NSURL *)url { - NSArray *failureBlocks = [_failureBlocks objectForKey:url]; + NSArray *failureBlocks = [self.failureBlocks objectForKey:url]; dispatch_async(dispatch_get_main_queue(), ^{ [self removeCallbacksForURL:url]; for (void (^failure)(NSError *) in failureBlocks) { @@ -126,9 +129,12 @@ - (void)downloadFailedWithError:(NSError *)error forURL:(NSURL *)url }); } -- (void)downloadSucceededWithNilImageForURL:(NSURL *)url response:(NSHTTPURLResponse *)response +- (void)downloadSucceededWithNilImageForURL:(NSURL *)url response:(NSURLResponse *)response { - DDLogError(@"WPImageSource download completed sucessfully but the image was nil. Headers: %@", [response allHeaderFields]); + if ([response isKindOfClass:[NSHTTPURLResponse class]]){ + NSHTTPURLResponse *httpURLResponse = (NSHTTPURLResponse *)response; + DDLogError(@"WPImageSource download completed sucessfully but the image was nil. Headers: %@", [httpURLResponse allHeaderFields]); + } NSString *description = [NSString stringWithFormat:@"A download request ended successfully but the image was nil. URL: %@", [url absoluteString]]; NSError *error = [NSError errorWithDomain:WPImageSourceErrorDomain code:WPImageSourceErrorNilImage @@ -141,31 +147,31 @@ - (void)downloadSucceededWithNilImageForURL:(NSURL *)url response:(NSHTTPURLResp - (void)addCallbackForURL:(NSURL *)url withSuccess:(void (^)(UIImage *))success failure:(void (^)(NSError *))failure { if (success) { - NSArray *successBlocks = [_successBlocks objectForKey:url]; + NSArray *successBlocks = [self.successBlocks objectForKey:url]; if (!successBlocks) { successBlocks = @[[success copy]]; } else { successBlocks = [successBlocks arrayByAddingObject:[success copy]]; } - [_successBlocks setObject:successBlocks forKey:url]; + [self.successBlocks setObject:successBlocks forKey:url]; } if (failure) { - NSArray *failureBlocks = [_failureBlocks objectForKey:url]; + NSArray *failureBlocks = [self.failureBlocks objectForKey:url]; if (!failureBlocks) { failureBlocks = @[[failure copy]]; } else { failureBlocks = [failureBlocks arrayByAddingObject:[failure copy]]; } - [_failureBlocks setObject:failureBlocks forKey:url]; + [self.failureBlocks setObject:failureBlocks forKey:url]; } } - (void)removeCallbacksForURL:(NSURL *)url { - [_successBlocks removeObjectForKey:url]; - [_failureBlocks removeObjectForKey:url]; - [_urlDownloadsInProgress removeObject:url]; + [self.successBlocks removeObjectForKey:url]; + [self.failureBlocks removeObjectForKey:url]; + [self.urlDownloadsInProgress removeObject:url]; } @end From 376817ee71e24e8f46f2aaa219b6f273a4ba6378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Mon, 11 Apr 2016 22:40:50 +0100 Subject: [PATCH 05/11] Remove unused operation queue. --- WordPress-iOS-Shared/Core/WPImageSource.m | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/WordPress-iOS-Shared/Core/WPImageSource.m b/WordPress-iOS-Shared/Core/WPImageSource.m index 3ff76d3..e557a8d 100644 --- a/WordPress-iOS-Shared/Core/WPImageSource.m +++ b/WordPress-iOS-Shared/Core/WPImageSource.m @@ -4,8 +4,7 @@ @interface WPImageSource() -@property (nonatomic, strong) NSURLSession *downloadingSession; -@property (nonatomic, strong) NSOperationQueue *downloadingQueue; +@property (nonatomic, strong) NSURLSession *downloadsSession; @property (nonatomic, strong) NSMutableSet *urlDownloadsInProgress; @property (nonatomic, strong) NSMutableDictionary *successBlocks; @property (nonatomic, strong) NSMutableDictionary *failureBlocks; @@ -26,20 +25,19 @@ + (instancetype)sharedSource - (void)dealloc { - [_downloadingSession invalidateAndCancel]; + [_downloadsSession invalidateAndCancel]; } - (id)init { self = [super init]; if (self) { - _downloadingQueue = [[NSOperationQueue alloc] init]; _urlDownloadsInProgress = [[NSMutableSet alloc] init]; _successBlocks = [[NSMutableDictionary alloc] init]; _failureBlocks = [[NSMutableDictionary alloc] init]; NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; - _downloadingSession = [NSURLSession sessionWithConfiguration:configuration]; + _downloadsSession = [NSURLSession sessionWithConfiguration:configuration]; } return self; } @@ -87,7 +85,7 @@ - (void)startDownloadForURL:(NSURL *)url authToken:(NSString *)authToken { [request addValue:[NSString stringWithFormat:@"Bearer %@", token] forHTTPHeaderField:@"Authorization"]; } - NSURLSessionDownloadTask *task = [self.downloadingSession downloadTaskWithRequest:request + NSURLSessionDownloadTask *task = [self.downloadsSession downloadTaskWithRequest:request completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) { if (error) { [self downloadFailedWithError:error forURL:url]; From 2df7ab10ea5823e917021bf6ae21f91b109308c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Mon, 11 Apr 2016 23:54:11 +0100 Subject: [PATCH 06/11] Update code for OHTTPStubs 5.0 structure. --- WordPress-iOS-SharedTests/WPImageSourceTest.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/WordPress-iOS-SharedTests/WPImageSourceTest.m b/WordPress-iOS-SharedTests/WPImageSourceTest.m index 4790f6a..19527da 100644 --- a/WordPress-iOS-SharedTests/WPImageSourceTest.m +++ b/WordPress-iOS-SharedTests/WPImageSourceTest.m @@ -1,4 +1,5 @@ #import +#import #import #import "WPImageSource.h" @@ -30,7 +31,7 @@ - (void)testSendTokensToWordPressDotCom lastAuthHeader = [request valueForHTTPHeaderField:@"Authorization"]; return YES; } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"test-image.jpg", nil) statusCode:200 headers:@{@"Content-Type" : @"image/jpeg"}]; + return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"test-image.jpg", [NSBundle bundleForClass:[self class]]) statusCode:200 headers:@{@"Content-Type" : @"image/jpeg"}]; }]; WPImageSource *source = [WPImageSource sharedSource]; @@ -59,7 +60,7 @@ - (void)testDontSendTokensOutsideWordPressDotCom lastAuthHeader = [request valueForHTTPHeaderField:@"Authorization"]; return YES; } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"test-image.jpg", nil) statusCode:200 headers:@{@"Content-Type" : @"image/jpeg"}]; + return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"test-image.jpg", [NSBundle bundleForClass:[self class]]) statusCode:200 headers:@{@"Content-Type" : @"image/jpeg"}]; }]; WPImageSource *source = [WPImageSource sharedSource]; @@ -89,7 +90,7 @@ - (void)testImagesArentDownloadedTwice return [[request.URL absoluteString] isEqualToString:requestUrl]; } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { downloadCount++; - return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"test-image.jpg", nil) statusCode:200 headers:@{@"Content-Type" : @"image/jpeg"}]; + return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"test-image.jpg", [NSBundle bundleForClass:[self class]]) statusCode:200 headers:@{@"Content-Type" : @"image/jpeg"}]; }]; WPImageSource *source = [WPImageSource sharedSource]; @@ -135,7 +136,7 @@ - (void)testDownloadOfAnimatedGif [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { return YES; } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"anim-reader.gif", nil) statusCode:200 headers:@{@"Content-Type" : @"image/gif"}]; + return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"anim-reader.gif", [NSBundle bundleForClass:[self class]]) statusCode:200 headers:@{@"Content-Type" : @"image/gif"}]; }]; WPImageSource *source = [WPImageSource sharedSource]; From 9bcfc95ef8c296e2955ee960648d7816298f1e19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Wed, 13 Apr 2016 11:01:27 +0100 Subject: [PATCH 07/11] Use instance type instead of id. --- WordPress-iOS-Shared/Core/WPImageSource.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress-iOS-Shared/Core/WPImageSource.m b/WordPress-iOS-Shared/Core/WPImageSource.m index e557a8d..5f549d8 100644 --- a/WordPress-iOS-Shared/Core/WPImageSource.m +++ b/WordPress-iOS-Shared/Core/WPImageSource.m @@ -28,7 +28,7 @@ - (void)dealloc [_downloadsSession invalidateAndCancel]; } -- (id)init +- (instancetype)init { self = [super init]; if (self) { From de6adce0674e288eee3afdfeee8a51e0b5976ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Wed, 13 Apr 2016 13:05:25 +0100 Subject: [PATCH 08/11] Add pod metadata files to project for easier editing. --- WordPress-iOS-Shared.xcodeproj/project.pbxproj | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/WordPress-iOS-Shared.xcodeproj/project.pbxproj b/WordPress-iOS-Shared.xcodeproj/project.pbxproj index 23e9c3d..bb210a6 100644 --- a/WordPress-iOS-Shared.xcodeproj/project.pbxproj +++ b/WordPress-iOS-Shared.xcodeproj/project.pbxproj @@ -100,6 +100,10 @@ A7CDA9068CC847B2AD67DE41 /* libPods-WordPress-iOS-SharedTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WordPress-iOS-SharedTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; AB8B405468864FD7A0D16B74 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; E95607083C359C14B48BA503 /* Pods-WordPress-iOS-SharedTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPress-iOS-SharedTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-WordPress-iOS-SharedTests/Pods-WordPress-iOS-SharedTests.release.xcconfig"; sourceTree = ""; }; + FF14587C1CBE6D37004A5A0B /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + FF14587D1CBE6D37004A5A0B /* Podfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Podfile; sourceTree = ""; }; + FF14587E1CBE6D37004A5A0B /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + FF1458801CBE6D59004A5A0B /* WordPress-iOS-Shared.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "WordPress-iOS-Shared.podspec"; sourceTree = ""; }; FF8DDCE01B5E91050098826F /* WPTextFieldTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WPTextFieldTableViewCell.m; path = Core/WPTextFieldTableViewCell.m; sourceTree = ""; }; FFBC2B361CBBE10300B0379E /* anim-reader.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = "anim-reader.gif"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -132,6 +136,7 @@ 931A0FE1192A9CDD00D3CC11 = { isa = PBXGroup; children = ( + FF14587B1CBE6D24004A5A0B /* Podspec Metadata */, 931A0FEF192A9CDD00D3CC11 /* WordPress-iOS-Shared */, 931A1003192A9CDD00D3CC11 /* WordPress-iOS-SharedTests */, 931A0FEC192A9CDD00D3CC11 /* Frameworks */, @@ -278,6 +283,17 @@ name = Pods; sourceTree = ""; }; + FF14587B1CBE6D24004A5A0B /* Podspec Metadata */ = { + isa = PBXGroup; + children = ( + FF1458801CBE6D59004A5A0B /* WordPress-iOS-Shared.podspec */, + FF14587C1CBE6D37004A5A0B /* README.md */, + FF14587D1CBE6D37004A5A0B /* Podfile */, + FF14587E1CBE6D37004A5A0B /* LICENSE */, + ); + name = "Podspec Metadata"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ From 4d58fd3faec8780aa7ec54a1b4a3c47b60d3b0c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Wed, 13 Apr 2016 13:05:35 +0100 Subject: [PATCH 09/11] Bump pod version. --- WordPress-iOS-Shared.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress-iOS-Shared.podspec b/WordPress-iOS-Shared.podspec index b9977f4..2788a3a 100644 --- a/WordPress-iOS-Shared.podspec +++ b/WordPress-iOS-Shared.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "WordPress-iOS-Shared" - s.version = "0.5.4" + s.version = "0.5.5" s.summary = "Shared components used in building the WordPress iOS apps and other library components." s.description = <<-DESC From 9e6eaf5cb2167f9851829c51ce3b8fb936577b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Wed, 13 Apr 2016 13:06:46 +0100 Subject: [PATCH 10/11] Update pod version. --- WordPress-iOS-Shared-Example/Podfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress-iOS-Shared-Example/Podfile.lock b/WordPress-iOS-Shared-Example/Podfile.lock index 1604c52..e57f4e5 100644 --- a/WordPress-iOS-Shared-Example/Podfile.lock +++ b/WordPress-iOS-Shared-Example/Podfile.lock @@ -7,7 +7,7 @@ PODS: - CocoaLumberjack/Core - CocoaLumberjack/Extensions (2.2.0): - CocoaLumberjack/Default - - WordPress-iOS-Shared (0.5.4): + - WordPress-iOS-Shared (0.5.5): - CocoaLumberjack (~> 2.2.0) DEPENDENCIES: @@ -19,6 +19,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: CocoaLumberjack: 17fe8581f84914d5d7e6360f7c70022b173c3ae0 - WordPress-iOS-Shared: 9eedf32157c1e11e6068c825f844e405916e26e2 + WordPress-iOS-Shared: e9e81a6a3cc3b45de93c8a565422c11395813c49 COCOAPODS: 0.39.0 From e41bd51920a2d3df265e64c7306dee2bf6bb3230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Este=CC=82va=CC=83o?= Date: Wed, 13 Apr 2016 13:11:23 +0100 Subject: [PATCH 11/11] Update links to homepage and authors. --- WordPress-iOS-Shared.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress-iOS-Shared.podspec b/WordPress-iOS-Shared.podspec index 2788a3a..116dda2 100644 --- a/WordPress-iOS-Shared.podspec +++ b/WordPress-iOS-Shared.podspec @@ -9,9 +9,9 @@ Pod::Spec.new do |s| This is the first step required to build WordPress-iOS with UI components. DESC - s.homepage = "http://apps.wordpress.org" + s.homepage = "http://apps.wordpress.com" s.license = "GPLv2" - s.author = { "Aaron Douglas" => "astralbodies@gmail.com" } + s.author = { "Automattic" => "mobile@automattic.com", "Aaron Douglas" => "astralbodies@gmail.com", "Sergio Estevao" => "sergioestevao@gmail.com" } s.social_media_url = "http://twitter.com/WordPressiOS" s.platform = :ios, "7.0" s.source = { :git => "https://github.com/wordpress-mobile/WordPress-iOS-Shared.git", :tag => s.version.to_s }