@@ -34,8 +34,9 @@ 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)
38- let storage = component. storage ( for: " someBucket " )
37+ let app = try XCTUnwrap ( StorageComponentTests . app)
38+ let component = StorageComponent ( app: app)
39+ let storage = component. storage ( for: " someBucket " , app: app)
3940 XCTAssertNotNil ( storage)
4041 }
4142
@@ -61,26 +62,42 @@ 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)
7271 XCTAssertNotNil ( provider)
7372
74- let storage1 = provider. storage ( for: " randomBucket " )
75- let storage2 = provider. storage ( for: " randomBucket " )
73+ let storage1 = provider. storage ( for: " randomBucket " , app : app )
74+ let storage2 = provider. storage ( for: " randomBucket " , app : app )
7675 XCTAssertNotNil ( storage1)
7776
7877 // Ensure they're the same instance.
7978 XCTAssert ( storage1 === storage2)
8079
81- let storage3 = provider. storage ( for: " differentBucket " )
80+ let storage3 = provider. storage ( for: " differentBucket " , app : app )
8281 XCTAssertNotNil ( storage3)
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