@@ -13,6 +13,7 @@ import XCTest
13
13
class DeprecatedFunctionsTests : XCTestCase {
14
14
private var apiKey = " 123123123 "
15
15
private var email = " [email protected] "
16
+ private var userId = " full-metal-alchemist "
16
17
17
18
func testDeprecatedTrackInAppOpen( ) {
18
19
let message = IterableInAppMessage ( messageId: " message1 " , campaignId: " " , content: getEmptyInAppContent ( ) )
@@ -46,6 +47,53 @@ class DeprecatedFunctionsTests: XCTestCase {
46
47
}
47
48
48
49
IterableAPI . track ( inAppOpen: message. messageId)
50
+
51
+ wait ( for: [ expectation1] , timeout: testExpectationTimeout)
52
+ }
53
+
54
+ func testDeprecatedTrackInAppClick( ) {
55
+ let message = IterableInAppMessage ( messageId: " message1 " ,
56
+ campaignId: " " ,
57
+ trigger: IterableInAppTrigger ( dict: [ . ITBL_IN_APP_TRIGGER_TYPE: " immediate " ] ) ,
58
+ createdAt: nil ,
59
+ expiresAt: nil ,
60
+ content: IterableHtmlInAppContent ( edgeInsets: . zero, backgroundAlpha: 0.0 , html: " " ) ,
61
+ saveToInbox: false ,
62
+ inboxMetadata: nil ,
63
+ customPayload: nil )
64
+ let buttonUrl = " http://somewhere.com "
65
+ let expectation1 = expectation ( description: " track in app click (DEPRECATED VERSION) " )
66
+
67
+ let networkSession = MockNetworkSession ( statusCode: 200 )
68
+ IterableAPI . initializeForTesting ( apiKey: apiKey, networkSession: networkSession)
69
+ IterableAPI . userId = userId
70
+
71
+ networkSession. callback = { _, _, _ in
72
+ TestUtils . validate ( request: networkSession. request!,
73
+ requestType: . post,
74
+ apiEndPoint: . ITBL_ENDPOINT_API,
75
+ path: . ITBL_PATH_TRACK_INAPP_CLICK,
76
+ queryParams: [ ] )
77
+
78
+ TestUtils . validateHeader ( networkSession. request!, self . apiKey)
79
+
80
+ let body = networkSession. getRequestBody ( ) as! [ String : Any ]
81
+
82
+ TestUtils . validateDeprecatedMessageContext ( messageId: message. messageId,
83
+ userId: self . userId,
84
+ saveToInbox: false ,
85
+ silentInbox: false ,
86
+ inBody: body)
87
+
88
+ TestUtils . validateDeviceInfo ( inBody: body)
89
+
90
+ TestUtils . validateMatch ( keyPath: KeyPath ( . clickedUrl) , value: buttonUrl, inDictionary: body)
91
+
92
+ expectation1. fulfill ( )
93
+ }
94
+
95
+ IterableAPI . track ( inAppClick: message. messageId, buttonURL: buttonUrl)
96
+
49
97
wait ( for: [ expectation1] , timeout: testExpectationTimeout)
50
98
}
51
99
0 commit comments