Skip to content

Commit 06a8714

Browse files
committed
Unit test for IAM lifecycle delegate methods
1 parent 9de6f62 commit 06a8714

File tree

4 files changed

+76
-3
lines changed

4 files changed

+76
-3
lines changed

iOS_SDK/OneSignalSDK/UnitTests/InAppMessagingIntegrationTests.m

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,7 @@ - (void)testIAMClickedLaunchesClickHandlerSendDirectOutcomeV2Request {
984984

985985
let firstTrigger = [OSTrigger customTriggerWithProperty:@"testProp" withOperator:OSTriggerOperatorTypeExists withValue:nil];
986986

987-
OSInAppMessageInternal * message = [OSInAppMessageTestHelper testMessageWithTriggers:@[@[firstTrigger]]];
987+
OSInAppMessageInternal *message = [OSInAppMessageTestHelper testMessageWithTriggers:@[@[firstTrigger]]];
988988

989989
[self initOneSignalWithInAppMessage:message];
990990

@@ -1027,7 +1027,7 @@ - (void)testIAMClickedLaunchesClickHandlerDismissIAMSendIndirectOutcomeV2Request
10271027

10281028
let firstTrigger = [OSTrigger customTriggerWithProperty:@"testProp" withOperator:OSTriggerOperatorTypeExists withValue:nil];
10291029

1030-
OSInAppMessageInternal * message = [OSInAppMessageTestHelper testMessageWithTriggers:@[@[firstTrigger]]];
1030+
OSInAppMessageInternal *message = [OSInAppMessageTestHelper testMessageWithTriggers:@[@[firstTrigger]]];
10311031

10321032
[self initOneSignalWithInAppMessage:message];
10331033

@@ -1593,6 +1593,50 @@ - (void)testInAppMessageDisplayMultipleTimesSessionDurationTrigger {
15931593
XCTAssertEqual(secondDisplayQuantity, 2);
15941594
}
15951595

1596+
- (void)testIAMLifecyleEventsFired {
1597+
let firstTrigger = [OSTrigger customTriggerWithProperty:@"testProp" withOperator:OSTriggerOperatorTypeExists withValue:nil];
1598+
1599+
OSInAppMessageInternal *message = [OSInAppMessageTestHelper testMessageWithTriggers:@[@[firstTrigger]]];
1600+
1601+
[self initOneSignalWithInAppMessage:message];
1602+
1603+
OSInAppMessageTestDelegate *iamDelegate = [OSInAppMessageTestDelegate new];
1604+
[OneSignal setInAppMessageDelegate:iamDelegate];
1605+
1606+
XCTAssertEqual(0, OSMessagingControllerOverrider.messageDisplayQueue.count);
1607+
1608+
XCTAssertNil(iamDelegate->lastMessageWillDisplay);
1609+
XCTAssertNil(iamDelegate->lastMessageDidDisplay);
1610+
XCTAssertNil(iamDelegate->lastMessageWillDismiss);
1611+
XCTAssertNil(iamDelegate->lastMessageDidDismiss);
1612+
[OneSignal addTrigger:@"testProp" withValue:@2];
1613+
[UnitTestCommonMethods runBackgroundThreads];
1614+
1615+
[OSMessagingController.sharedInstance onWillDisplayInAppMessage:message];
1616+
XCTAssertNotNil(iamDelegate->lastMessageWillDisplay);
1617+
XCTAssertNil(iamDelegate->lastMessageDidDisplay);
1618+
XCTAssertNil(iamDelegate->lastMessageWillDismiss);
1619+
XCTAssertNil(iamDelegate->lastMessageDidDismiss);
1620+
1621+
[OSMessagingController.sharedInstance onDidDisplayInAppMessage:message];
1622+
XCTAssertNotNil(iamDelegate->lastMessageWillDisplay);
1623+
XCTAssertNotNil(iamDelegate->lastMessageDidDisplay);
1624+
XCTAssertNil(iamDelegate->lastMessageWillDismiss);
1625+
XCTAssertNil(iamDelegate->lastMessageDidDismiss);
1626+
1627+
[OSMessagingController.sharedInstance onWillDismissInAppMessage:message];
1628+
XCTAssertNotNil(iamDelegate->lastMessageWillDisplay);
1629+
XCTAssertNotNil(iamDelegate->lastMessageDidDisplay);
1630+
XCTAssertNotNil(iamDelegate->lastMessageWillDismiss);
1631+
XCTAssertNil(iamDelegate->lastMessageDidDismiss);
1632+
1633+
[OSMessagingController.sharedInstance onDidDismissInAppMessage:message];
1634+
XCTAssertNotNil(iamDelegate->lastMessageWillDisplay);
1635+
XCTAssertNotNil(iamDelegate->lastMessageDidDisplay);
1636+
XCTAssertNotNil(iamDelegate->lastMessageWillDismiss);
1637+
XCTAssertNotNil(iamDelegate->lastMessageDidDismiss);
1638+
}
1639+
15961640
/*
15971641
Helper method that adds an OSInAppMessage to the IAM messageDisplayQueue
15981642
Mock response JSON and initializes the OneSignal SDK

iOS_SDK/OneSignalSDK/UnitTests/Shadows/OSMessagingControllerOverrider.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ NS_ASSUME_NONNULL_BEGIN
5353
- (NSArray<OSInAppMessageInternal *> *)getInAppMessages;
5454
- (NSMutableDictionary <NSString *, OSInAppMessageInternal *> *)getRedisplayedInAppMessages;
5555
- (NSMutableArray<OSInAppMessageInternal *> *)getDisplayedMessages;
56-
56+
- (void)onWillDisplayInAppMessage:(OSInAppMessageInternal *)message;
57+
- (void)onDidDisplayInAppMessage:(OSInAppMessageInternal *)message;
58+
- (void)onWillDismissInAppMessage:(OSInAppMessageInternal *)message;
59+
- (void)onDidDismissInAppMessage:(OSInAppMessageInternal *)message;
5760
@end
5861

5962
NS_ASSUME_NONNULL_END

iOS_SDK/OneSignalSDK/UnitTests/UnitTestCommonMethods.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,12 @@ withNotificationWillShowInForegroundHandler:(OSNotificationWillShowInForegroundB
123123
- (void)onOSSMSSubscriptionChanged:(OSSMSSubscriptionStateChanges *)stateChanges;
124124
@end
125125

126+
@interface OSInAppMessageTestDelegate : NSObject<OSInAppMessageDelegate> {
127+
@package OSInAppMessage *lastMessageWillDisplay;
128+
@package OSInAppMessage *lastMessageDidDisplay;
129+
@package OSInAppMessage *lastMessageWillDismiss;
130+
@package OSInAppMessage *lastMessageDidDismiss;
131+
}
132+
@end
133+
126134
// END - Observers

iOS_SDK/OneSignalSDK/UnitTests/UnitTestCommonMethods.m

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,3 +480,21 @@ - (void)onOSSMSSubscriptionChanged:(OSSMSSubscriptionStateChanges *)stateChanges
480480
fireCount++;
481481
}
482482
@end
483+
484+
@implementation OSInAppMessageTestDelegate
485+
- (void)onWillDisplayInAppMessage:(OSInAppMessage *)message {
486+
lastMessageWillDisplay = message;
487+
}
488+
489+
- (void)onDidDisplayInAppMessage:(OSInAppMessage *)message {
490+
lastMessageDidDisplay = message;
491+
}
492+
493+
- (void)onWillDismissInAppMessage:(OSInAppMessage *)message {
494+
lastMessageWillDismiss = message;
495+
}
496+
497+
- (void)onDidDismissInAppMessage:(OSInAppMessage *)message {
498+
lastMessageDidDismiss = message;
499+
}
500+
@end

0 commit comments

Comments
 (0)