Browse Source

JSON and plist validation now throw Alamofire error when data has zero length.

Christian Noon 10 years ago
parent
commit
83b32faa8a
2 changed files with 8 additions and 8 deletions
  1. 4 4
      Source/ResponseSerialization.swift
  2. 4 4
      Tests/ResponseSerializationTests.swift

+ 4 - 4
Source/ResponseSerialization.swift

@@ -261,8 +261,8 @@ extension Request {
 
             guard response?.statusCode ?? -1 != 204 else { return .Success(NSNull()) }
 
-            guard let validData = data else {
-                let failureReason = "JSON could not be serialized. Input data was nil."
+            guard let validData = data where validData.length > 0 else {
+                let failureReason = "JSON could not be serialized. Input data was nil or zero length."
                 let error = Error.errorWithCode(.JSONSerializationFailed, failureReason: failureReason)
                 return .Failure(error)
             }
@@ -317,8 +317,8 @@ extension Request {
 
             guard response?.statusCode ?? -1 != 204 else { return .Success(NSNull()) }
 
-            guard let validData = data else {
-                let failureReason = "Property list could not be serialized. Input data was nil."
+            guard let validData = data where validData.length > 0 else {
+                let failureReason = "Property list could not be serialized. Input data was nil or zero length."
                 let error = Error.errorWithCode(.PropertyListSerializationFailed, failureReason: failureReason)
                 return .Failure(error)
             }

+ 4 - 4
Tests/ResponseSerializationTests.swift

@@ -348,8 +348,8 @@ class ResponseSerializationTestCase: BaseTestCase {
         XCTAssertNotNil(result.error, "result error should not be nil")
 
         if let error = result.error {
-            XCTAssertEqual(error.domain, NSCocoaErrorDomain, "error domain should match expected value")
-            XCTAssertEqual(error.code, 3840, "error code should match expected value")
+            XCTAssertEqual(error.domain, Error.Domain, "error domain should match expected value")
+            XCTAssertEqual(error.code, Error.Code.JSONSerializationFailed.rawValue, "error code should match expected value")
         } else {
             XCTFail("error should not be nil")
         }
@@ -486,8 +486,8 @@ class ResponseSerializationTestCase: BaseTestCase {
         XCTAssertNotNil(result.error, "result error should not be nil")
 
         if let error = result.error {
-            XCTAssertEqual(error.domain, NSCocoaErrorDomain, "error domain should match expected value")
-            XCTAssertEqual(error.code, 3840, "error code should match expected value")
+            XCTAssertEqual(error.domain, Error.Domain, "error domain should match expected value")
+            XCTAssertEqual(error.code, Error.Code.PropertyListSerializationFailed.rawValue, "error code should match expected value")
         } else {
             XCTFail("error should not be nil")
         }