diff --git a/features/call/src/main/AndroidManifest.xml b/features/call/src/main/AndroidManifest.xml
index d106d4e7b8..877b7fb0a8 100644
--- a/features/call/src/main/AndroidManifest.xml
+++ b/features/call/src/main/AndroidManifest.xml
@@ -39,7 +39,6 @@
-
diff --git a/features/call/src/main/kotlin/io/element/android/features/call/CallIntentDataParser.kt b/features/call/src/main/kotlin/io/element/android/features/call/CallIntentDataParser.kt
index 30e71d6201..f1c4291526 100644
--- a/features/call/src/main/kotlin/io/element/android/features/call/CallIntentDataParser.kt
+++ b/features/call/src/main/kotlin/io/element/android/features/call/CallIntentDataParser.kt
@@ -21,7 +21,7 @@ import javax.inject.Inject
class CallIntentDataParser @Inject constructor() {
- private val validHttpSchemes = sequenceOf("http", "https")
+ private val validHttpSchemes = sequenceOf("https")
fun parse(data: String?): String? {
val parsedUrl = data?.let { Uri.parse(data) } ?: return null
diff --git a/features/call/src/test/kotlin/io/element/android/features/call/CallIntentDataParserTests.kt b/features/call/src/test/kotlin/io/element/android/features/call/CallIntentDataParserTests.kt
index 71290f15b7..4d5beef7e9 100644
--- a/features/call/src/test/kotlin/io/element/android/features/call/CallIntentDataParserTests.kt
+++ b/features/call/src/test/kotlin/io/element/android/features/call/CallIntentDataParserTests.kt
@@ -52,13 +52,17 @@ class CallIntentDataParserTests {
}
@Test
- fun `Element Call urls will be returned as is`() {
+ fun `Element Call http urls returns null`() {
val httpBaseUrl = "http://call.element.io"
val httpCallUrl = "http://call.element.io/some-actual-call?with=parameters"
+ assertThat(callIntentDataParser.parse(httpBaseUrl)).isNull()
+ assertThat(callIntentDataParser.parse(httpCallUrl)).isNull()
+ }
+
+ @Test
+ fun `Element Call urls will be returned as is`() {
val httpsBaseUrl = "https://call.element.io"
val httpsCallUrl = "https://call.element.io/some-actual-call?with=parameters"
- assertThat(callIntentDataParser.parse(httpBaseUrl)).isEqualTo(httpBaseUrl)
- assertThat(callIntentDataParser.parse(httpCallUrl)).isEqualTo(httpCallUrl)
assertThat(callIntentDataParser.parse(httpsBaseUrl)).isEqualTo(httpsBaseUrl)
assertThat(callIntentDataParser.parse(httpsCallUrl)).isEqualTo(httpsCallUrl)
}
@@ -76,18 +80,34 @@ class CallIntentDataParserTests {
}
@Test
- fun `element scheme with call host and url param gets url extracted`() {
+ fun `element scheme with call host and url with http will returns null`() {
val embeddedUrl = "http://call.element.io/some-actual-call?with=parameters"
val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8")
val url = "element://call?url=$encodedUrl"
+ assertThat(callIntentDataParser.parse(url)).isNull()
+ }
+
+ @Test
+ fun `element scheme with call host and url param gets url extracted`() {
+ val embeddedUrl = "https://call.element.io/some-actual-call?with=parameters"
+ val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8")
+ val url = "element://call?url=$encodedUrl"
assertThat(callIntentDataParser.parse(url)).isEqualTo(embeddedUrl)
}
@Test
- fun `element scheme 2 with url param gets url extracted`() {
+ fun `element scheme 2 with url param with http returns null`() {
val embeddedUrl = "http://call.element.io/some-actual-call?with=parameters"
val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8")
val url = "io.element.call:/?url=$encodedUrl"
+ assertThat(callIntentDataParser.parse(url)).isNull()
+ }
+
+ @Test
+ fun `element scheme 2 with url param gets url extracted`() {
+ val embeddedUrl = "https://call.element.io/some-actual-call?with=parameters"
+ val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8")
+ val url = "io.element.call:/?url=$encodedUrl"
assertThat(callIntentDataParser.parse(url)).isEqualTo(embeddedUrl)
}
@@ -101,7 +121,7 @@ class CallIntentDataParserTests {
@Test
fun `element scheme 2 with no url returns null`() {
- val embeddedUrl = "http://call.element.io/some-actual-call?with=parameters"
+ val embeddedUrl = "https://call.element.io/some-actual-call?with=parameters"
val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8")
val url = "io.element.call:/?no_url=$encodedUrl"
assertThat(callIntentDataParser.parse(url)).isNull()
@@ -109,7 +129,7 @@ class CallIntentDataParserTests {
@Test
fun `element scheme with no call host returns null`() {
- val embeddedUrl = "http://call.element.io/some-actual-call?with=parameters"
+ val embeddedUrl = "https://call.element.io/some-actual-call?with=parameters"
val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8")
val url = "element://no-call?url=$encodedUrl"
assertThat(callIntentDataParser.parse(url)).isNull()
@@ -129,7 +149,7 @@ class CallIntentDataParserTests {
@Test
fun `element invalid scheme returns null`() {
- val embeddedUrl = "http://call.element.io/some-actual-call?with=parameters"
+ val embeddedUrl = "https://call.element.io/some-actual-call?with=parameters"
val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8")
val url = "bad.scheme:/?url=$encodedUrl"
assertThat(callIntentDataParser.parse(url)).isNull()