@@ -34,7 +34,8 @@ class StorageComponentTests: StorageTestHelpers {
3434
3535 /// Tests that a Storage instance can be created properly by the StorageComponent.
3636 func testStorageInstanceCreation( ) throws {
37- let component = StorageComponent ( app: StorageComponentTests . app)
37+ let app = try XCTUnwrap ( StorageComponentTests . app)
38+ let component = StorageComponent ( app: app)
3839 let storage = component. storage ( for: " someBucket " )
3940 XCTAssertNotNil ( storage)
4041 }
@@ -61,11 +62,9 @@ class StorageComponentTests: StorageTestHelpers {
6162
6263 /// Tests that instances of Storage created are different.
6364 func testMultipleStorageInstancesCreated( ) throws {
65+ let app = try XCTUnwrap ( StorageComponentTests . app)
6466 let registrants = NSMutableSet ( array: [ StorageComponent . self] )
65- let container = FirebaseComponentContainer (
66- app: StorageComponentTests . app,
67- registrants: registrants
68- )
67+ let container = FirebaseComponentContainer ( app: app, registrants: registrants)
6968
7069 let provider = ComponentType< StorageProvider> . instance( for: StorageProvider . self,
7170 in: container)
@@ -83,4 +82,22 @@ class StorageComponentTests: StorageTestHelpers {
8382
8483 XCTAssert ( storage1 !== storage3)
8584 }
85+
86+ /// Test that Storage instances get deallocated.
87+ func testStorageLifecycle( ) throws {
88+ weak var weakApp : FirebaseApp ?
89+ weak var weakStorage : Storage ?
90+ try autoreleasepool {
91+ let options = FirebaseOptions ( googleAppID: " 0:0000000000000:ios:0000000000000000 " ,
92+ gcmSenderID: " 00000000000000000-00000000000-000000000 " )
93+ options. projectID = " myProjectID "
94+ let app1 = FirebaseApp ( instanceWithName: " transitory app " , options: options)
95+ weakApp = try XCTUnwrap ( app1)
96+ let storage = Storage ( app: app1, bucket: " transitory bucket " )
97+ weakStorage = storage
98+ XCTAssertNotNil ( weakStorage)
99+ }
100+ XCTAssertNil ( weakApp)
101+ XCTAssertNil ( weakStorage)
102+ }
86103}
0 commit comments