11package com.onesignal.inAppMessages.internal
22
3+ import com.onesignal.OneSignal
34import com.onesignal.debug.LogLevel
45import com.onesignal.debug.internal.logging.Logging
6+ import com.onesignal.inAppMessages.IInAppMessageDidDismissEvent
7+ import com.onesignal.inAppMessages.IInAppMessageDidDisplayEvent
8+ import com.onesignal.inAppMessages.IInAppMessageLifecycleListener
9+ import com.onesignal.inAppMessages.IInAppMessageWillDismissEvent
10+ import com.onesignal.inAppMessages.IInAppMessageWillDisplayEvent
511import com.onesignal.inAppMessages.internal.InAppMessagingHelpers.Companion.buildTestMessageWithRedisplay
612import io.kotest.core.spec.style.FunSpec
713import io.kotest.matchers.shouldBe
@@ -14,6 +20,32 @@ class InAppMessagesTests : FunSpec({
1420 val LIMIT = 5
1521 val DELAY : Long = 60
1622
23+ fun setLocalTriggerValue(key: String , localValue: String ) {
24+ if (localValue != null) OneSignal .InAppMessages .addTrigger(
25+ key,
26+ localValue
27+ ) else OneSignal .InAppMessages .removeTrigger(key)
28+ }
29+
30+ fun comparativeOperatorTest(
31+ operator: Trigger .OSTriggerOperator ,
32+ triggerValue: String ,
33+ localValue: String
34+ ): Boolean {
35+ // TODO
36+ // setLocalTriggerValue("test_property", localValue)
37+ // val testMessage: InAppMessagingHelpers.OSTestInAppMessageInternal =
38+ // InAppMessagingHelpers.buildTestMessageWithSingleTrigger(
39+ // Trigger.OSTriggerKind.CUSTOM,
40+ // "test_property",
41+ // operator.toString(),
42+ // triggerValue
43+ // )
44+ //
45+ // return InAppMessagingHelpers.evaluateMessage(testMessage)
46+ return true
47+ }
48+
1749// Define message at class level with lazy initialization
1850 val message : InAppMessagingHelpers .OSTestInAppMessageInternal by lazy {
1951 InAppMessagingHelpers .buildTestMessageWithSingleTrigger(
@@ -31,6 +63,7 @@ class InAppMessagesTests : FunSpec({
3163
3264 beforeTest {
3365 // TODO: add more from Player Model @BeforeTest in InAppMessagingUnitTests.java
66+ var iamLifecycleCounter = 0
3467 }
3568
3669 afterTest {
@@ -131,4 +164,139 @@ class InAppMessagesTests : FunSpec({
131164 messageWithoutDisplay2.addClickId(IAM_CLICK_ID )
132165 messageWithoutDisplay2.isClickAvailable(IAM_CLICK_ID ) shouldBe false
133166 }
167+
168+ test ("testBuiltMessageTrigger") {
169+ // TODO
170+ }
171+
172+ test("testParsesMessageActions") {
173+ // TODO
174+ }
175+
176+ test("testSaveMultipleTriggerValuesGetTrigger") {
177+ // TODO
178+ // Since trigger getter method no longer exists, will need to refactor
179+ }
180+
181+ test("testSaveMultipleTriggerValues") {
182+ // TODO
183+ }
184+
185+ // removed tests checking for non-string trigger values
186+
187+ // create new test for ensuring only string trigger value
188+ test("testTriggerValuesAreStrings") {
189+ // TODO
190+ }
191+
192+ test("testDeleteSavedTriggerValueGetTriggers") {
193+ // TODO
194+ }
195+
196+ test("testDeleteSavedTriggerValue") {
197+ // TODO
198+ }
199+
200+ test("testDeleteMultipleTriggers") {
201+ // TODO
202+ }
203+
204+ test("testDeleteAllTriggers") {
205+ // TODO
206+ }
207+
208+ test("testGreaterThanOperator") {
209+ // TODO
210+ }
211+
212+ test("testGreaterThanOperatorWithString") {
213+ // TODO
214+ }
215+
216+ // add more operator tests
217+
218+ test("testMessageSchedulesSessionDurationTimer") {
219+ // TODO
220+ }
221+
222+ // more trigger tests
223+
224+ test("testOnMessageActionOccurredOnMessage") {
225+ // TODO:
226+
227+ // add clickListener
228+
229+ // val clickListener = object : IInAppMessageClickListener {
230+ // override fun onClick(event: IInAppMessageClickEvent) {
231+ // print(event.result.actionId)
232+ // }
233+ // }
234+ // OneSignal.InAppMessages.addClickListener(clickListener)
235+
236+
237+ // assertMainThread()
238+ // threadAndTaskWait()
239+
240+ // call onMessageActionOccurredOnMessage
241+
242+ // Ensure we make REST call to OneSignal to report click.
243+
244+
245+ // Ensure we fire public callback that In-App was clicked.
246+ }
247+
248+ test("testOnMessageWasShown") {
249+ // TODO:
250+ // threadAndTaskWait()
251+ // InAppMessagingHelpers.onMessageWasDisplayed(message)
252+ //
253+ // Compare Shadow Rest Client request
254+ }
255+
256+ test("testOnPageChanged") {
257+ // TODO
258+ }
259+
260+
261+ /* Tests for IAM Lifecycle */
262+ // var iamLifecycleCounter = 0
263+
264+ test("testIAMLifecycleEventsFlow") {
265+ // TODO
266+ // add listener and incremenet counter
267+ // val lifecycleListener = object : IInAppMessageLifecycleListener {
268+ // override fun onWillDisplay(event: IInAppMessageWillDisplayEvent) {
269+ // iamLifecycleCounter++
270+ // }
271+ //
272+ // override fun onDidDisplay(event: IInAppMessageDidDisplayEvent) {
273+ // iamLifecycleCounter++
274+ // }
275+ //
276+ // override fun onWillDismiss(event: IInAppMessageWillDismissEvent) {
277+ // iamLifecycleCounter++
278+ // }
279+ //
280+ // override fun onDidDismiss(event: IInAppMessageDidDismissEvent) {
281+ // iamLifecycleCounter++
282+ // }
283+ // }
284+ // OneSignal.InAppMessages.addLifecycleListener(lifecycleListener)
285+
286+ // threadAndTaskWait()
287+ // iamLifecycleCounter shouldBe 0
288+ // // maybe need threadAndTaskWait
289+ //
290+ // InAppMessagingHelpers.onMessageWillDisplay(message)
291+ // iamLifecycleCounter shouldBe 1
292+ //
293+ // InAppMessagingHelpers.onMessageWasDisplayed(message)
294+ // iamLifecycleCounter shouldBe 2
295+ //
296+ // InAppMessagingHelpers.onMessageWillDismiss(message)
297+ // iamLifecycleCounter shouldBe 3
298+ //
299+ // InAppMessagingHelpers.onMessageDidDismiss(message)
300+ // iamLifecycleCounter shouldBe 4
301+ }
134302})
0 commit comments