NTP-53780 | Navi link contract changes (#15696)
Co-authored-by: Kishan Kumar <kishan.kumar@navi.com>
This commit is contained in:
committed by
GitHub
parent
9b285659c4
commit
8317645020
@@ -92,15 +92,8 @@ private fun handleNaviLink(intent: Intent, processNaviLink: ((String) -> Unit)?)
|
||||
|
||||
fun getNaviLinkIdentifier(intent: Intent): String? {
|
||||
val naviLink = intent.getStringExtra(Constants.NAVILINK_SMALL).orEmpty()
|
||||
val identifiers =
|
||||
when {
|
||||
naviLink.isNotEmpty() -> naviLink.split("/")
|
||||
else -> emptyList()
|
||||
}
|
||||
|
||||
val naviLinkIdentifier = identifiers.getOrNull(1)
|
||||
|
||||
return if (identifiers.firstOrNull() == NAVILINK && !naviLinkIdentifier.isNullOrEmpty()) {
|
||||
val naviLinkIdentifier = naviLink.substringAfter(delimiter = '/', "")
|
||||
return if (naviLink.startsWith(NAVILINK) && naviLinkIdentifier.isNotEmpty()) {
|
||||
naviLinkIdentifier
|
||||
} else {
|
||||
null
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2025 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
package com.naviapp.deeplinkmanagement.usecase
|
||||
|
||||
import android.content.Intent
|
||||
import com.naviapp.utils.Constants
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertNull
|
||||
import org.junit.Test
|
||||
|
||||
class NativeDeeplinkManagerTest {
|
||||
|
||||
@Test
|
||||
fun `returns identifier when NAVILINK has multiple slashes`() {
|
||||
val intent = mockk<Intent>()
|
||||
every { intent.getStringExtra(Constants.NAVILINK_SMALL) } returns "NAVILINK/ABC/XYZ"
|
||||
|
||||
val result = getNaviLinkIdentifier(intent)
|
||||
|
||||
assertEquals("ABC/XYZ", result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `returns null when NAVILINK does not start with NAVILINK prefix`() {
|
||||
val intent = mockk<Intent>()
|
||||
every { intent.getStringExtra(Constants.NAVILINK_SMALL) } returns "NEVILINK/ABC/XYZ"
|
||||
|
||||
val result = getNaviLinkIdentifier(intent)
|
||||
|
||||
assertNull(result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `returns null when NAVILINK is empty`() {
|
||||
val intent = mockk<Intent>()
|
||||
every { intent.getStringExtra(Constants.NAVILINK_SMALL) } returns ""
|
||||
|
||||
val result = getNaviLinkIdentifier(intent)
|
||||
|
||||
assertNull(result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `returns null when NAVILINK has no path after delimiter`() {
|
||||
val intent = mockk<Intent>()
|
||||
every { intent.getStringExtra(Constants.NAVILINK_SMALL) } returns "NAVILINK/"
|
||||
|
||||
val result = getNaviLinkIdentifier(intent)
|
||||
|
||||
assertNull(result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `returns null when NAVILINK has delimiter`() {
|
||||
val intent = mockk<Intent>()
|
||||
every { intent.getStringExtra(Constants.NAVILINK_SMALL) } returns "NAVILINK"
|
||||
|
||||
val result = getNaviLinkIdentifier(intent)
|
||||
|
||||
assertNull(result)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user