@@ -11,34 +11,11 @@ let testExpectationTimeoutForInverted = 1.0 // How long to wait when we expect t
11
11
12
12
class IterableActionRunnerTests : XCTestCase {
13
13
func testUrlOpenAction( ) {
14
- let urlString = " https://example.com "
15
- let action = IterableAction . action ( fromDictionary: [ " type " : " openUrl " , " data " : urlString] ) !
16
- let context = IterableActionContext ( action: action, source: . push)
17
- let urlOpener = MockUrlOpener ( )
18
- let expectation = XCTestExpectation ( description: " call UrlHandler " )
19
- let urlHandler : UrlHandler = { url in
20
- XCTAssertEqual ( url. absoluteString, urlString)
21
- expectation. fulfill ( )
22
- return false
23
- }
24
-
25
- let handled = IterableActionRunner . execute ( action: action,
26
- context: context,
27
- urlHandler: urlHandler,
28
- urlOpener: urlOpener)
29
-
30
- wait ( for: [ expectation] , timeout: testExpectationTimeout)
31
- XCTAssertTrue ( handled)
32
-
33
- if #available( iOS 10 . 0 , * ) {
34
- XCTAssertEqual ( urlOpener. ios10OpenedUrl? . absoluteString, urlString)
35
- XCTAssertNil ( urlOpener. preIos10openedUrl)
36
- } else {
37
- XCTAssertEqual ( urlOpener. preIos10openedUrl? . absoluteString, urlString)
38
- XCTAssertNil ( urlOpener. ios10OpenedUrl)
39
- }
14
+ validateUrlOpenAction ( source: . push)
15
+ validateUrlOpenAction ( source: . inApp)
16
+ validateUrlOpenAction ( source: . universalLink)
40
17
}
41
-
18
+
42
19
func testUrlHandlingOverride( ) {
43
20
let urlString = " https://example.com "
44
21
let action = IterableAction . action ( fromDictionary: [ " type " : " openUrl " , " data " : urlString] ) !
@@ -171,4 +148,33 @@ class IterableActionRunnerTests: XCTestCase {
171
148
172
149
wait ( for: [ expectation1] , timeout: testExpectationTimeout)
173
150
}
151
+
152
+ private func validateUrlOpenAction( source: IterableActionSource ) {
153
+ let urlString = " https://example.com "
154
+ let action = IterableAction . action ( fromDictionary: [ " type " : " openUrl " , " data " : urlString] ) !
155
+ let context = IterableActionContext ( action: action, source: source)
156
+ let urlOpener = MockUrlOpener ( )
157
+ let expectation = XCTestExpectation ( description: " call UrlHandler " )
158
+ let urlHandler : UrlHandler = { url in
159
+ XCTAssertEqual ( url. absoluteString, urlString)
160
+ expectation. fulfill ( )
161
+ return false
162
+ }
163
+
164
+ let handled = IterableActionRunner . execute ( action: action,
165
+ context: context,
166
+ urlHandler: urlHandler,
167
+ urlOpener: urlOpener)
168
+
169
+ wait ( for: [ expectation] , timeout: testExpectationTimeout)
170
+ XCTAssertTrue ( handled)
171
+
172
+ if #available( iOS 10 . 0 , * ) {
173
+ XCTAssertEqual ( urlOpener. ios10OpenedUrl? . absoluteString, urlString)
174
+ XCTAssertNil ( urlOpener. preIos10openedUrl)
175
+ } else {
176
+ XCTAssertEqual ( urlOpener. preIos10openedUrl? . absoluteString, urlString)
177
+ XCTAssertNil ( urlOpener. ios10OpenedUrl)
178
+ }
179
+ }
174
180
}
0 commit comments