Преглед изворни кода

- Added synchronized block for accessing activity count
- Refactored test class to begin using common timeout across all classes

Kevin Harwood пре 9 година
родитељ
комит
be56e159ff

+ 4 - 4
Tests/Tests/AFNetworkActivityManagerTests.m

@@ -73,7 +73,7 @@
          [requestExpectation fulfill];
          [requestExpectation fulfill];
      }
      }
      failure:nil];
      failure:nil];
-    [self waitForExpectationsWithTimeout:10.0 handler:nil];
+    [self waitForExpectationsWithCommonTimeoutUsingHandler:nil];
 }
 }
 
 
 - (void)testThatNetworkActivityIndicatorTurnsOnAndOffIndicatorWhenRequestFails {
 - (void)testThatNetworkActivityIndicatorTurnsOnAndOffIndicatorWhenRequestFails {
@@ -98,7 +98,7 @@
      failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
      failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
          [requestExpectation fulfill];
          [requestExpectation fulfill];
      }];
      }];
-    [self waitForExpectationsWithTimeout:10.0 handler:nil];
+    [self waitForExpectationsWithCommonTimeoutUsingHandler:nil];
 }
 }
 
 
 - (void)testThatVisibilityDelaysAreApplied {
 - (void)testThatVisibilityDelaysAreApplied {
@@ -131,7 +131,7 @@
          [requestExpectation fulfill];
          [requestExpectation fulfill];
      }
      }
      failure:nil];
      failure:nil];
-    [self waitForExpectationsWithTimeout:10.0 handler:nil];
+    [self waitForExpectationsWithCommonTimeoutUsingHandler:nil];
     XCTAssertTrue((indicatorVisbleTime - requestStartTime) > self.networkActivityIndicatorManager.activationDelay);
     XCTAssertTrue((indicatorVisbleTime - requestStartTime) > self.networkActivityIndicatorManager.activationDelay);
     XCTAssertTrue((indicatorHiddenTime - requestEndTime) > self.networkActivityIndicatorManager.completionDelay);
     XCTAssertTrue((indicatorHiddenTime - requestEndTime) > self.networkActivityIndicatorManager.completionDelay);
 }
 }
@@ -169,7 +169,7 @@
      }
      }
      failure:nil];
      failure:nil];
 
 
-    [self waitForExpectationsWithTimeout:10.0 handler:nil];
+    [self waitForExpectationsWithCommonTimeoutUsingHandler:nil];
 
 
 }
 }
 
 

+ 3 - 0
Tests/Tests/AFTestCase.h

@@ -26,5 +26,8 @@ extern NSString * const AFNetworkingTestsBaseURLString;
 @interface AFTestCase : XCTestCase
 @interface AFTestCase : XCTestCase
 
 
 @property (nonatomic, strong, readonly) NSURL *baseURL;
 @property (nonatomic, strong, readonly) NSURL *baseURL;
+@property (nonatomic, assign) NSTimeInterval networkTimeout;
+
+- (void)waitForExpectationsWithCommonTimeoutUsingHandler:(XCWaitCompletionHandler)handler;
 
 
 @end
 @end

+ 5 - 0
Tests/Tests/AFTestCase.m

@@ -27,6 +27,7 @@ NSString * const AFNetworkingTestsBaseURLString = @"https://httpbin.org/";
 
 
 - (void)setUp {
 - (void)setUp {
     [super setUp];
     [super setUp];
+    self.networkTimeout = 20.0;
 }
 }
 
 
 - (void)tearDown {
 - (void)tearDown {
@@ -39,4 +40,8 @@ NSString * const AFNetworkingTestsBaseURLString = @"https://httpbin.org/";
     return [NSURL URLWithString:AFNetworkingTestsBaseURLString];
     return [NSURL URLWithString:AFNetworkingTestsBaseURLString];
 }
 }
 
 
+- (void)waitForExpectationsWithCommonTimeoutUsingHandler:(XCWaitCompletionHandler)handler {
+    [self waitForExpectationsWithTimeout:self.networkTimeout handler:nil];
+}
+
 @end
 @end

+ 3 - 1
UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m

@@ -102,7 +102,9 @@ typedef void (^AFNetworkActivityActionBlock)(BOOL networkActivityIndicatorVisibl
 }
 }
 
 
 - (BOOL)isNetworkActivityOccurring {
 - (BOOL)isNetworkActivityOccurring {
-    return self.activityCount > 0;
+    @synchronized(self) {
+        return self.activityCount > 0;
+    }
 }
 }
 
 
 - (void)setNetworkActivityIndicatorVisible:(BOOL)networkActivityIndicatorVisible {
 - (void)setNetworkActivityIndicatorVisible:(BOOL)networkActivityIndicatorVisible {