@@ -34,7 +34,8 @@ class StorageComponentTests: StorageTestHelpers {
34
34
35
35
/// Tests that a Storage instance can be created properly by the StorageComponent.
36
36
func testStorageInstanceCreation( ) throws {
37
- let component = StorageComponent ( app: StorageComponentTests . app)
37
+ let app = try XCTUnwrap ( StorageComponentTests . app)
38
+ let component = StorageComponent ( app: app)
38
39
let storage = component. storage ( for: " someBucket " )
39
40
XCTAssertNotNil ( storage)
40
41
}
@@ -61,11 +62,9 @@ class StorageComponentTests: StorageTestHelpers {
61
62
62
63
/// Tests that instances of Storage created are different.
63
64
func testMultipleStorageInstancesCreated( ) throws {
65
+ let app = try XCTUnwrap ( StorageComponentTests . app)
64
66
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)
69
68
70
69
let provider = ComponentType< StorageProvider> . instance( for: StorageProvider . self,
71
70
in: container)
@@ -83,4 +82,22 @@ class StorageComponentTests: StorageTestHelpers {
83
82
84
83
XCTAssert ( storage1 !== storage3)
85
84
}
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
+ }
86
103
}
0 commit comments