@@ -23,7 +23,8 @@ class DeepLinkTests: XCTestCase {
23
23
private let exampleUrl = " http://example.com "
24
24
25
25
func testTrackUniversalDeepLinkRewrite( ) {
26
- let expectation1 = expectation ( description: " testUniversalDeepLinkRewrite " )
26
+ let expectation1 = expectation ( description: #function)
27
+ let expectation2 = expectation ( description: " \( #function) -attributionInfo " )
27
28
28
29
let redirectLocation = " https://links.iterable.com/api/docs#!/email "
29
30
let campaignId = 83306
@@ -42,18 +43,24 @@ class DeepLinkTests: XCTestCase {
42
43
43
44
let deepLinkManager = IterableDeepLinkManager ( )
44
45
45
- _ = deepLinkManager. handleUniversalLink ( URL ( string: iterableRewriteURL) !,
46
- urlDelegate: mockUrlDelegate,
47
- urlOpener: MockUrlOpener ( ) )
48
-
49
- wait ( for: [ expectation1] , timeout: testExpectationTimeout)
46
+ let ( isIterableLink, attributionInfoFuture) = deepLinkManager. handleUniversalLink ( URL ( string: iterableRewriteURL) !,
47
+ urlDelegate: mockUrlDelegate,
48
+ urlOpener: MockUrlOpener ( ) )
49
+ XCTAssertTrue ( isIterableLink)
50
+ attributionInfoFuture. onSuccess { attributionInfo in
51
+ XCTAssertEqual ( attributionInfo? . campaignId, NSNumber ( value: campaignId) )
52
+ XCTAssertEqual ( attributionInfo? . templateId, NSNumber ( value: templateId) )
53
+ XCTAssertEqual ( attributionInfo? . messageId, messageId)
54
+ expectation2. fulfill ( )
55
+ }
56
+ wait ( for: [ expectation1, expectation2] , timeout: testExpectationTimeout)
50
57
}
51
58
52
59
func testTrackUniversalDeepLinkNoRewrite( ) {
53
60
let expectation1 = expectation ( description: " testUniversalDeepLinkNoRewrite " )
54
61
55
62
setupStubResponse ( )
56
-
63
+
57
64
let mockUrlDelegate = MockUrlDelegate ( returnValue: true )
58
65
mockUrlDelegate. callback = { url, context in
59
66
XCTAssertEqual ( url. absoluteString, self . iterableNoRewriteURL)
@@ -64,10 +71,11 @@ class DeepLinkTests: XCTestCase {
64
71
65
72
let deepLinkManager = IterableDeepLinkManager ( )
66
73
67
- _ = deepLinkManager. handleUniversalLink ( URL ( string: iterableNoRewriteURL) !,
68
- urlDelegate: mockUrlDelegate,
69
- urlOpener: MockUrlOpener ( ) )
70
-
74
+ let ( isIterableLink, _) = deepLinkManager. handleUniversalLink ( URL ( string: iterableNoRewriteURL) !,
75
+ urlDelegate: mockUrlDelegate,
76
+ urlOpener: MockUrlOpener ( ) )
77
+
78
+ XCTAssertFalse ( isIterableLink)
71
79
wait ( for: [ expectation1] , timeout: testExpectationTimeout)
72
80
}
73
81
0 commit comments