Skip to content

Commit 3600fa3

Browse files
author
Evan Greer
committed
updates unit tests and cleanup
1 parent 54bcca5 commit 3600fa3

File tree

3 files changed

+46
-23
lines changed

3 files changed

+46
-23
lines changed

swift-sdk/Internal/IterableEmbeddedManager.swift

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,25 +51,15 @@ class IterableEmbeddedManager: NSObject, IterableEmbeddedManagerProtocol {
5151
retrieveEmbeddedMessages(completion: completion)
5252
}
5353

54-
public func handleEmbeddedClick(message: IterableEmbeddedMessage?, buttonIdentifier: String?, clickedUrl: String) {
55-
print("called embeddedMessageClicked IterableEmbeddedManager method.")
56-
guard let message = message else {
57-
print("Error: message is nil.")
58-
return
59-
}
54+
public func handleEmbeddedClick(message: IterableEmbeddedMessage, buttonIdentifier: String?, clickedUrl: String) {
6055

6156
if let url = URL(string: clickedUrl) {
62-
handleClick(clickedUrl: url, forMessage: message)
57+
handleUrl(url: url.absoluteString)
6358
} else {
6459
print("Invalid URL: \(clickedUrl)")
6560
}
6661
}
6762

68-
private func handleClick(clickedUrl url: URL, forMessage message: IterableEmbeddedMessage) {
69-
70-
handleUrl(url: url.absoluteString)
71-
}
72-
7363

7464
private func createAction(fromUrlOrAction url: String) -> IterableAction? {
7565
if let parsedUrl = URL(string: url), let _ = parsedUrl.scheme {

swift-sdk/IterableEmbeddedManagerProtocol.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ import Foundation
1212
func removeUpdateListener(_ listener: IterableEmbeddedUpdateDelegate)
1313

1414
func syncMessages(completion: @escaping () -> Void)
15-
func handleEmbeddedClick(message: IterableEmbeddedMessage?, buttonIdentifier: String?, clickedUrl: String)
15+
func handleEmbeddedClick(message: IterableEmbeddedMessage, buttonIdentifier: String?, clickedUrl: String)
1616
}

tests/unit-tests/EmbeddedManagerTests.swift

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ final class EmbeddedManagerTests: XCTestCase {
1212

1313
let mockApiClient = MockApiClient()
1414

15-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
15+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
16+
urlDelegate: nil,
17+
urlOpener: MockUrlOpener(),
18+
allowedProtocols: [])
1619

1720
let view1 = ViewWithUpdateDelegate(
1821
onMessagesUpdatedCallback: {
@@ -32,7 +35,10 @@ final class EmbeddedManagerTests: XCTestCase {
3235
// getMessages
3336
func testGetMessagesWhenEmpty() {
3437
let mockApiClient = MockApiClient()
35-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
38+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
39+
urlDelegate: nil,
40+
urlOpener: MockUrlOpener(),
41+
allowedProtocols: [])
3642
XCTAssertEqual(manager.getMessages().count, 0)
3743
}
3844
func testGetMessagesForPlacement() {
@@ -43,9 +49,12 @@ final class EmbeddedManagerTests: XCTestCase {
4349
IterableEmbeddedMessage(messageId: "3", placementId: 2),
4450
IterableEmbeddedMessage(messageId: "4", placementId: 3),
4551
])
46-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
52+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
53+
urlDelegate: nil,
54+
urlOpener: MockUrlOpener(),
55+
allowedProtocols: [])
4756

48-
manager.syncMessages {}
57+
manager.syncMessages { }
4958

5059
let messagesForPlacement2 = manager.getMessages(for: 2)
5160

@@ -67,7 +76,10 @@ final class EmbeddedManagerTests: XCTestCase {
6776
IterableEmbeddedMessage(messageId: "2", placementId: 1),
6877
])
6978

70-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
79+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
80+
urlDelegate: nil,
81+
urlOpener: MockUrlOpener(),
82+
allowedProtocols: [])
7183

7284
let view = ViewWithUpdateDelegate(
7385
onMessagesUpdatedCallback: {
@@ -89,7 +101,10 @@ final class EmbeddedManagerTests: XCTestCase {
89101

90102
let mockApiClient = MockApiClient()
91103
mockApiClient.setInvalidAPIKey()
92-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
104+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
105+
urlDelegate: nil,
106+
urlOpener: MockUrlOpener(),
107+
allowedProtocols: [])
93108

94109
let view = ViewWithUpdateDelegate(
95110
onMessagesUpdatedCallback: nil,
@@ -108,7 +123,10 @@ final class EmbeddedManagerTests: XCTestCase {
108123
// notify multiple delegates
109124
func testManagerNotifiesMultipleDelegates() {
110125
let mockApiClient = MockApiClient()
111-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
126+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
127+
urlDelegate: nil,
128+
urlOpener: MockUrlOpener(),
129+
allowedProtocols: [])
112130

113131
var delegate1Called = false
114132
var delegate2Called = false
@@ -137,7 +155,10 @@ final class EmbeddedManagerTests: XCTestCase {
137155
// add and remove listeners
138156
func testManagerCorrectlyAddsAndRemovesListeners() {
139157
let mockApiClient = MockApiClient()
140-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
158+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
159+
urlDelegate: nil,
160+
urlOpener: MockUrlOpener(),
161+
allowedProtocols: [])
141162

142163
var delegateCalled = false
143164

@@ -169,7 +190,11 @@ final class EmbeddedManagerTests: XCTestCase {
169190
// init/deinit
170191
func testManagerInitializationAndDeinitialization() {
171192
let deinitExpectation = expectation(description: "Manager should deinitialize")
172-
var manager: IterableEmbeddedManager? = IterableEmbeddedManager(apiClient: MockApiClient())
193+
let mockApiClient = MockApiClient()
194+
var manager: IterableEmbeddedManager? = IterableEmbeddedManager(apiClient: mockApiClient,
195+
urlDelegate: nil,
196+
urlOpener: MockUrlOpener(),
197+
allowedProtocols: [])
173198
manager?.onDeinit = {
174199
deinitExpectation.fulfill()
175200
}
@@ -184,7 +209,10 @@ final class EmbeddedManagerTests: XCTestCase {
184209
let expectation = XCTestExpectation(description: "onMessagesUpdated called")
185210

186211
let mockApiClient = MockApiClient()
187-
let manager = IterableEmbeddedManager(apiClient: mockApiClient)
212+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
213+
urlDelegate: nil,
214+
urlOpener: MockUrlOpener(),
215+
allowedProtocols: [])
188216

189217
let mockDelegate = ViewWithUpdateDelegate(
190218
onMessagesUpdatedCallback: {
@@ -229,6 +257,11 @@ final class EmbeddedManagerTests: XCTestCase {
229257
}
230258
}
231259

260+
private class MockUrlOpener: NSObject, UrlOpenerProtocol {
261+
func open(url: URL) {
262+
}
263+
}
264+
232265
private class MockApiClient: BlankApiClient {
233266
private var newMessages = false
234267
private var invalidApiKey = false

0 commit comments

Comments
 (0)