From 238d470f6dc24cc3b42b8107c53752351a5c1629 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 2 Oct 2023 13:25:47 +0200 Subject: [PATCH] Add more tests --- .../call/CallIntentDataParserTests.kt | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) 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 148c2fe30d..8650fad444 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 @@ -171,6 +171,14 @@ class CallIntentDataParserTests { assertThat(callIntentDataParser.parse(url)).isEqualTo("$VALID_CALL_URL_WITH_PARAM#?appPrompt=false&confineToRoom=true") } + @Test + fun `element scheme 2 with url extra param in fragment appPrompt and other gets url extracted`() { + val embeddedUrl = "${VALID_CALL_URL_WITH_PARAM}#?appPrompt=true&otherParam=maybe" + val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8") + val url = "io.element.call:/?url=$encodedUrl" + assertThat(callIntentDataParser.parse(url)).isEqualTo("$VALID_CALL_URL_WITH_PARAM#?appPrompt=false&otherParam=maybe&confineToRoom=true") + } + @Test fun `element scheme 2 with url extra param confineToRoom gets url extracted`() { val embeddedUrl = "${VALID_CALL_URL_WITH_PARAM}&confineToRoom=false" @@ -187,6 +195,14 @@ class CallIntentDataParserTests { assertThat(callIntentDataParser.parse(url)).isEqualTo("$VALID_CALL_URL_WITH_PARAM#?confineToRoom=true&appPrompt=false") } + @Test + fun `element scheme 2 with url extra param in fragment confineToRoom and more gets url extracted`() { + val embeddedUrl = "${VALID_CALL_URL_WITH_PARAM}#?confineToRoom=false&otherParam=maybe" + val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8") + val url = "io.element.call:/?url=$encodedUrl" + assertThat(callIntentDataParser.parse(url)).isEqualTo("$VALID_CALL_URL_WITH_PARAM#?confineToRoom=true&otherParam=maybe&appPrompt=false") + } + @Test fun `element scheme 2 with url fragment gets url extracted`() { val embeddedUrl = "${VALID_CALL_URL_WITH_PARAM}#fragment" @@ -195,6 +211,22 @@ class CallIntentDataParserTests { assertThat(callIntentDataParser.parse(url)).isEqualTo("$VALID_CALL_URL_WITH_PARAM#fragment?$EXTRA_PARAMS") } + @Test + fun `element scheme 2 with url fragment with params gets url extracted`() { + val embeddedUrl = "${VALID_CALL_URL_WITH_PARAM}#fragment?otherParam=maybe" + val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8") + val url = "io.element.call:/?url=$encodedUrl" + assertThat(callIntentDataParser.parse(url)).isEqualTo("$VALID_CALL_URL_WITH_PARAM#fragment?otherParam=maybe&$EXTRA_PARAMS") + } + + @Test + fun `element scheme 2 with url fragment with other params gets url extracted`() { + val embeddedUrl = "${VALID_CALL_URL_WITH_PARAM}#?otherParam=maybe" + val encodedUrl = URLEncoder.encode(embeddedUrl, "utf-8") + val url = "io.element.call:/?url=$encodedUrl" + assertThat(callIntentDataParser.parse(url)).isEqualTo("$VALID_CALL_URL_WITH_PARAM#?otherParam=maybe&$EXTRA_PARAMS") + } + @Test fun `element scheme 2 with empty fragment`() { val embeddedUrl = "${VALID_CALL_URL_WITH_PARAM}#"