소스 검색

Test and Changelog for 10370 (#10379)

Paul Beusterien 3 년 전
부모
커밋
77e7b23c86
2개의 변경된 파일23개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      FirebaseStorage/CHANGELOG.md
  2. 21 0
      FirebaseStorage/Tests/Unit/StorageMetadataTests.swift

+ 2 - 1
FirebaseStorage/CHANGELOG.md

@@ -1,5 +1,6 @@
 # 10.1.0
-- [fixed] Fixed an issue where metadata passed to `putFile` was not properly initialized. (#10353)
+- [fixed] Fixed a 10.0.0 regression where metadata passed to `putFile` was not properly initialized. (#10353)
+- [fixed] Fixed a 10.0.0 regression handling an empty JSON metadata field from the emulator. (#10370)
 
 # 10.0.0
 - [changed] FirebaseStorage is now completely implemented in Swift. Swift-specific API improvements

+ 21 - 0
FirebaseStorage/Tests/Unit/StorageMetadataTests.swift

@@ -138,6 +138,27 @@ class StorageMetadataTests: StorageTestHelpers {
     XCTAssertEqual(actualURL?.absoluteString, expectedURL)
   }
 
+  // Regression test for #10370
+  func testInitializeDownloadURLFromTokenWithEmptyMetadata() {
+    let metaDict = [
+      "bucket": "bucket",
+      "downloadTokens": "12345,ignored",
+      "name": "path/to/object",
+      "metadata": {},
+    ] as [String: Any]
+
+    let rootReference = rootReference()
+    let escapedPath = StorageUtils.GCSEscapedString("path/to/object")
+    let expectedURL =
+      "https://firebasestorage.googleapis.com:443/v0/b/bucket/o/\(escapedPath)?alt=media&token=12345"
+    let task = StorageGetDownloadURLTask(reference: rootReference,
+                                         fetcherService: GTMSessionFetcherService(),
+                                         queue: DispatchQueue.main,
+                                         completion: nil)
+    let actualURL = task.downloadURLFromMetadataDictionary(metaDict)
+    XCTAssertEqual(actualURL?.absoluteString, expectedURL)
+  }
+
   func testInitializeMetadataWithFile() {
     let metaDict = ["bucket": "bucket", "name": "/path/to/file"]
     let metadata = StorageMetadata(dictionary: metaDict)