@@ -11,6 +11,7 @@ @interface MPKitFirebaseAnalytics()
11
11
- (NSString *)standardizeNameOrKey : (NSString *)nameOrKey forEvent : (BOOL )forEvent ;
12
12
- (NSString *)getEventNameForCommerceEvent : (MPCommerceEvent *)commerceEvent parameters : (NSDictionary <NSString *, id> *)parameters ;
13
13
- (NSDictionary <NSString *, id> *)getParameterForCommerceEvent : (MPCommerceEvent *)commerceEvent ;
14
+ - (NSMutableDictionary <NSString *, id> *)getParametersForScreen : (MPEvent *)screenEvent ;
14
15
@end
15
16
16
17
@interface mParticle_Firebase_AnalyticsTests : XCTestCase
@@ -148,4 +149,28 @@ - (void)testCommerceEventCheckoutOptions {
148
149
XCTAssertEqualObjects (kFIREventAddShippingInfo , eventName);
149
150
}
150
151
152
+ - (void )testScreenNameAttributes {
153
+ MPKitFirebaseAnalytics *exampleKit = [[MPKitFirebaseAnalytics alloc ] init ];
154
+ [exampleKit didFinishLaunchingWithConfiguration: @{}];
155
+
156
+ MPEvent *event = [[MPEvent alloc ] initWithName: @" testScreenName" type: MPEventTypeOther];
157
+ event.customAttributes = @{@" testScreenAttribute" :@" value" };
158
+ MPKitExecStatus *execStatus = [exampleKit logScreen: event];
159
+
160
+ XCTAssertTrue (execStatus.success );
161
+
162
+ NSMutableDictionary <NSString *, id > *screenParameters = [exampleKit getParametersForScreen: event];
163
+
164
+ // Even though we only pass one custom attribute, the parameters should include the standardized screen name, so the total expected count is two
165
+ XCTAssertEqual (screenParameters.count , 2 );
166
+
167
+ NSString *standardizedScreenName = [exampleKit standardizeNameOrKey: event.name forEvent: YES ];
168
+ NSString *screenNameParameter = screenParameters[kFIRParameterScreenName ];
169
+
170
+ // Test screen name parameter is not Nil and exists in the screen parameters dictionary
171
+ XCTAssertNotNil (screenNameParameter);
172
+ // Test screen name parameter value is correct
173
+ XCTAssertEqualObjects (screenNameParameter, standardizedScreenName);
174
+ }
175
+
151
176
@end
0 commit comments