|
|
@@ -20,18 +20,20 @@ import XCTest
|
|
|
class SessionStartEventTests: XCTestCase {
|
|
|
var identifiers: MockIdentifierProvider!
|
|
|
var time: MockTimeProvider!
|
|
|
+ var appInfo: MockApplicationInfo!
|
|
|
|
|
|
override func setUp() {
|
|
|
super.setUp()
|
|
|
|
|
|
identifiers = MockIdentifierProvider()
|
|
|
time = MockTimeProvider()
|
|
|
+ appInfo = MockApplicationInfo()
|
|
|
}
|
|
|
|
|
|
func test_init_setsSessionIDs() {
|
|
|
identifiers.mockAllValidIDs()
|
|
|
|
|
|
- let event = SessionStartEvent(identifiers: identifiers, time: time)
|
|
|
+ let event = SessionStartEvent(identifiers: identifiers, appInfo: appInfo, time: time)
|
|
|
assertEqualProtoString(
|
|
|
event.proto.session_data.session_id,
|
|
|
expected: MockIdentifierProvider.testSessionID,
|
|
|
@@ -46,10 +48,43 @@ class SessionStartEventTests: XCTestCase {
|
|
|
XCTAssertEqual(event.proto.session_data.event_timestamp_us, 123)
|
|
|
}
|
|
|
|
|
|
+ func test_init_setsApplicationInfo() {
|
|
|
+ appInfo.mockAllInfo()
|
|
|
+
|
|
|
+ let event = SessionStartEvent(identifiers: identifiers, appInfo: appInfo, time: time)
|
|
|
+
|
|
|
+ assertEqualProtoString(
|
|
|
+ event.proto.application_info.app_id,
|
|
|
+ expected: MockApplicationInfo.testAppID,
|
|
|
+ fieldName: "app_id"
|
|
|
+ )
|
|
|
+ assertEqualProtoString(
|
|
|
+ event.proto.application_info.session_sdk_version,
|
|
|
+ expected: MockApplicationInfo.testSDKVersion,
|
|
|
+ fieldName: "session_sdk_version"
|
|
|
+ )
|
|
|
+ assertEqualProtoString(
|
|
|
+ event.proto.application_info.apple_app_info.bundle_short_version,
|
|
|
+ expected: MockApplicationInfo.testBundleID,
|
|
|
+ fieldName: "bundle_short_version"
|
|
|
+ )
|
|
|
+ assertEqualProtoString(
|
|
|
+ event.proto.application_info.apple_app_info.mcc_mnc,
|
|
|
+ expected: MockApplicationInfo.testMCCMNC,
|
|
|
+ fieldName: "mcc_mnc"
|
|
|
+ )
|
|
|
+
|
|
|
+ // Ensure we convert the test OS name into the enum.
|
|
|
+ XCTAssertEqual(
|
|
|
+ event.proto.application_info.apple_app_info.os_name,
|
|
|
+ firebase_appquality_sessions_OsName_IOS
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
func test_setInstallationID_setsInstallationID() {
|
|
|
identifiers.mockAllValidIDs()
|
|
|
|
|
|
- let event = SessionStartEvent(identifiers: identifiers, time: time)
|
|
|
+ let event = SessionStartEvent(identifiers: identifiers, appInfo: appInfo, time: time)
|
|
|
event.setInstallationID(identifiers: identifiers)
|
|
|
assertEqualProtoString(
|
|
|
event.proto.session_data.firebase_installation_id,
|
|
|
@@ -57,4 +92,25 @@ class SessionStartEventTests: XCTestCase {
|
|
|
fieldName: "firebase_installation_id"
|
|
|
)
|
|
|
}
|
|
|
+
|
|
|
+ func test_convertOSName_convertsCorrectly() {
|
|
|
+ let expectations: [(given: String, expected: firebase_appquality_sessions_OsName)] = [
|
|
|
+ ("macos", firebase_appquality_sessions_OsName_MACOS),
|
|
|
+ ("maccatalyst", firebase_appquality_sessions_OsName_MACCATALYST),
|
|
|
+ ("ios_on_mac", firebase_appquality_sessions_OsName_IOS_ON_MAC),
|
|
|
+ ("ios", firebase_appquality_sessions_OsName_IOS),
|
|
|
+ ("tvos", firebase_appquality_sessions_OsName_TVOS),
|
|
|
+ ("watchos", firebase_appquality_sessions_OsName_WATCHOS),
|
|
|
+ ("ipados", firebase_appquality_sessions_OsName_IPADOS),
|
|
|
+ ("something unknown", firebase_appquality_sessions_OsName_UNKNOWN_OSNAME),
|
|
|
+ ]
|
|
|
+
|
|
|
+ expectations.forEach { (given: String, expected: firebase_appquality_sessions_OsName) in
|
|
|
+ appInfo.osName = given
|
|
|
+
|
|
|
+ let event = SessionStartEvent(identifiers: identifiers, appInfo: appInfo, time: time)
|
|
|
+
|
|
|
+ XCTAssertEqual(event.proto.application_info.apple_app_info.os_name, expected)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|