Skip to content

Commit 2126aa9

Browse files
author
Evan Greer
committed
adds reset function for manager
1 parent a4fdeb6 commit 2126aa9

7 files changed

+38
-13
lines changed

swift-sdk.xcodeproj/project.pbxproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,6 @@
185185
5B5AA717284F1A6D0093FED4 /* MockNetworkSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B5AA710284F1A6D0093FED4 /* MockNetworkSession.swift */; };
186186
5B6C3C1127CE871F00B9A753 /* NavInboxSessionUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B6C3C1027CE871F00B9A753 /* NavInboxSessionUITests.swift */; };
187187
5B88BC482805D09D004016E5 /* NetworkSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B88BC472805D09D004016E5 /* NetworkSession.swift */; };
188-
9FF05EB42B001D29005311F7 /* IterableActionRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF05EB32B001D29005311F7 /* IterableActionRunner.swift */; };
189188
AC02480822791E2100495FB9 /* IterableInboxNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC02480722791E2100495FB9 /* IterableInboxNavigationViewController.swift */; };
190189
AC02CAA6234E50B5006617E0 /* RegistrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC02CAA5234E50B5006617E0 /* RegistrationTests.swift */; };
191190
AC03094B21E532470003A288 /* InAppPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC03094A21E532470003A288 /* InAppPersistence.swift */; };
@@ -595,7 +594,6 @@
595594
5B6C3C1027CE871F00B9A753 /* NavInboxSessionUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavInboxSessionUITests.swift; sourceTree = "<group>"; };
596595
5B88BC472805D09D004016E5 /* NetworkSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkSession.swift; sourceTree = "<group>"; };
597596
5BFC7CED27FC9AF300E77479 /* inbox-ui-tests-app.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "inbox-ui-tests-app.entitlements"; sourceTree = "<group>"; };
598-
9FF05EB32B001D29005311F7 /* IterableActionRunner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableActionRunner.swift; sourceTree = "<group>"; };
599597
AC02480722791E2100495FB9 /* IterableInboxNavigationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableInboxNavigationViewController.swift; sourceTree = "<group>"; };
600598
AC02CAA5234E50B5006617E0 /* RegistrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegistrationTests.swift; sourceTree = "<group>"; };
601599
AC03094A21E532470003A288 /* InAppPersistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppPersistence.swift; sourceTree = "<group>"; };
@@ -1277,7 +1275,6 @@
12771275
AC2C668120D32F2800D46CC9 /* InternalIterableAppIntegration.swift */,
12781276
AC2B79F621E6A38900A59080 /* NotificationHelper.swift */,
12791277
ACEDF41C2183C2EC000B9BFE /* Pending.swift */,
1280-
9FF05EB32B001D29005311F7 /* IterableActionRunner.swift */,
12811278
);
12821279
path = Internal;
12831280
sourceTree = "<group>";
@@ -2057,7 +2054,6 @@
20572054
AC684A88222F4FDD00F29749 /* InAppDisplayer.swift in Sources */,
20582055
AC72A0D220CF4D12004D7997 /* IterableUtil.swift in Sources */,
20592056
AC32E16821DD55B900BD4F83 /* OrderedDictionary.swift in Sources */,
2060-
9FF05EB42B001D29005311F7 /* IterableActionRunner.swift in Sources */,
20612057
ACF406232507BC72005FD775 /* NetworkMonitor.swift in Sources */,
20622058
AC1712892416AEF400F2BB0E /* WebViewProtocol.swift in Sources */,
20632059
AC3C10F9213F46A900A9B839 /* IterableLogging.swift in Sources */,

swift-sdk/Internal/EmptyEmbeddedManager.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ class EmptyEmbeddedManager: IterableEmbeddedManagerProtocol {
3030

3131
}
3232

33+
func reset() {
34+
35+
}
36+
3337
func track(click message: IterableEmbeddedMessage, buttonIdentifier: String?, clickedUrl: String) {
3438

3539
}

swift-sdk/Internal/InternalIterableAPI.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
548548
authManager.logoutUser()
549549

550550
_ = inAppManager.reset()
551+
_ = embeddedManager.reset()
551552

552553
try? requestHandler.handleLogout()
553554
}

swift-sdk/Internal/IterableActionRunner.swift

Lines changed: 0 additions & 9 deletions
This file was deleted.

swift-sdk/Internal/IterableEmbeddedManager.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ class IterableEmbeddedManager: NSObject, IterableEmbeddedManagerProtocol {
6060
}
6161
}
6262

63+
public func reset() {
64+
let processor = EmbeddedMessagingProcessor(currentMessages: self.messages, fetchedMessages: [])
65+
self.setMessages(processor)
66+
self.notifyUpdateDelegates(processor)
67+
}
6368

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

swift-sdk/IterableEmbeddedManagerProtocol.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ import Foundation
1313

1414
func syncMessages(completion: @escaping () -> Void)
1515
func handleEmbeddedClick(message: IterableEmbeddedMessage, buttonIdentifier: String?, clickedUrl: String)
16+
func reset()
1617
}

tests/unit-tests/EmbeddedManagerTests.swift

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,33 @@ final class EmbeddedManagerTests: XCTestCase {
9696

9797
wait(for: [syncMessagesExpectation, delegateExpectation], timeout: 2)
9898
}
99+
100+
func testManagerReset() {
101+
let syncMessagesExpectation = expectation(description: "syncMessages should complete")
102+
103+
let mockApiClient = MockApiClient()
104+
105+
mockApiClient.populateMessages([
106+
IterableEmbeddedMessage(messageId: "1", placementId: 1),
107+
IterableEmbeddedMessage(messageId: "2", placementId: 1),
108+
])
109+
110+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
111+
urlDelegate: nil,
112+
urlOpener: MockUrlOpener(),
113+
allowedProtocols: [])
114+
115+
manager.syncMessages {
116+
syncMessagesExpectation.fulfill()
117+
}
118+
119+
wait(for: [syncMessagesExpectation], timeout: 2)
120+
121+
manager.reset()
122+
123+
XCTAssertEqual(manager.getMessages().count, 0)
124+
}
125+
99126
func testSyncMessagesFailedDueToInvalidAPIKey() {
100127
let condition = expectation(description: "syncMessages should notify of disabled messaging due to invalid API Key")
101128

0 commit comments

Comments
 (0)