Skip to content

Commit ae5926f

Browse files
committed
unit tests for IAM end time
1 parent 88829ff commit ae5926f

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

iOS_SDK/OneSignalSDK/UnitTests/InAppMessagingIntegrationTests.m

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,27 @@ - (void)testIAMIsDisplayedOncePerSession {
262262
XCTAssertEqual(OSMessagingControllerOverrider.messageDisplayQueue.count, 0);
263263
}
264264

265+
- (void)testIAMsDontDisplayPastEndTime {
266+
[OneSignal pauseInAppMessages:false];
267+
268+
let message = [OSInAppMessageTestHelper testMessageWithPastEndTime:YES];
269+
270+
[self initOneSignalWithInAppMessage:message];
271+
272+
XCTAssertEqual(OSMessagingControllerOverrider.isInAppMessageShowing, false);
273+
}
274+
275+
- (void)testIAMsDoDisplayWithFutureEndTime {
276+
[OneSignal pauseInAppMessages:false];
277+
278+
let message = [OSInAppMessageTestHelper testMessageWithPastEndTime:NO];
279+
280+
[self initOneSignalWithInAppMessage:message];
281+
282+
XCTAssertEqual(OSMessagingControllerOverrider.isInAppMessageShowing, true);
283+
}
284+
285+
265286
// if we have two messages that are both valid to displayed add them to the queue (triggers are all true),
266287
- (void)testIAMsDontOverlap {
267288
[OSMessagingController.sharedInstance setTriggerWithName:@"prop1" withValue:@2];

iOS_SDK/OneSignalSDK/UnitTests/OSInAppMessagingHelpers.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ NS_ASSUME_NONNULL_BEGIN
5959
+ (OSInAppMessage *)testMessageWithRedisplayLimit:(NSInteger)limit delay:(NSNumber *)delay;
6060
+ (OSInAppMessage *)testMessageWithTriggers:(NSArray <NSArray<OSTrigger *> *> *)triggers;
6161
+ (OSInAppMessage *)testMessageWithTriggers:(NSArray <NSArray<OSTrigger *> *> *)triggers withRedisplayLimit:(NSInteger)limit delay:(NSNumber *)delay;
62+
+ (OSInAppMessage *)testMessageWithPastEndTime:(BOOL)pastEndTime;
6263
+ (NSDictionary *)testRegistrationJsonWithMessages:(NSArray<NSDictionary *> *)messages;
6364
+ (NSDictionary *)testMessageJsonWithTriggerPropertyName:(NSString *)property withId:(NSString *)triggerId withOperator:(OSTriggerOperatorType)type withValue:(id)value;
6465
+ (NSDictionary*)testInAppMessageGetContainsWithHTML:(NSString *)html;

iOS_SDK/OneSignalSDK/UnitTests/OSInAppMessagingHelpers.m

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,21 @@ + (OSInAppMessage *)testMessage {
146146
let messageJson = self.testMessageJson;
147147

148148
let data = [NSJSONSerialization dataWithJSONObject:messageJson options:0 error:nil];
149+
150+
return [OSInAppMessage instanceWithData:data];
151+
}
152+
153+
+ (OSInAppMessage *)testMessageWithPastEndTime:(BOOL)pastEndTime {
154+
let messageJson = self.testMessageJson;
149155

156+
NSMutableDictionary *messageJsonWithEndTime = [[NSMutableDictionary alloc] initWithDictionary:messageJson];
157+
if (pastEndTime) {
158+
messageJsonWithEndTime[@"end_time"] = @"1960-01-01T00:00:00.000Z";
159+
} else {
160+
messageJsonWithEndTime[@"end_time"] = @"2200-01-01T00:00:00.000Z";
161+
}
162+
let data = [NSJSONSerialization dataWithJSONObject:messageJsonWithEndTime options:0 error:nil];
163+
150164
return [OSInAppMessage instanceWithData:data];
151165
}
152166

0 commit comments

Comments
 (0)