Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-11-24 12:58:59 +0300
committerNiedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com>2020-11-24 14:06:51 +0300
commit54d77df85f59ad9304fbd434db436ed3bdae6884 (patch)
tree9109d7cf73d11b3d54bff6279c936564b8881bb5 /app
parenta1c01e15401d047860d95217d3a874972208d88a (diff)
Support parsing links without index.php segment
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java2
-rw-r--r--app/src/test/java/it/niedermann/nextcloud/deck/ProjectUtilTest.java51
2 files changed, 48 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java
index f43f7d824..dada022da 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java
@@ -50,7 +50,7 @@ public class ProjectUtil {
throw new IllegalArgumentException("trimmed url is empty");
}
// extract important part
- String[] splitByPrefix = url.split(".*index\\.php/apps/deck(/#)?/board/");
+ String[] splitByPrefix = url.split(".*(index\\.php)?/apps/deck(/#)?/board/");
// split into board- and card part
if (splitByPrefix.length < 2) {
throw new IllegalArgumentException("This URL doesn't seem to be an URL containing the boardId: \"" + url + "\"");
diff --git a/app/src/test/java/it/niedermann/nextcloud/deck/ProjectUtilTest.java b/app/src/test/java/it/niedermann/nextcloud/deck/ProjectUtilTest.java
index 1c8062051..1f5f5e602 100644
--- a/app/src/test/java/it/niedermann/nextcloud/deck/ProjectUtilTest.java
+++ b/app/src/test/java/it/niedermann/nextcloud/deck/ProjectUtilTest.java
@@ -10,7 +10,7 @@ import static org.junit.Assert.assertThrows;
public class ProjectUtilTest {
@Test
public void extractBoardIdAndCardIdFromUrl() {
- // Valid board URLs with #
+ // Valid board URLs with # and with index.php
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("index.php/apps/deck/#/board/4"), new long[]{4});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/index.php/apps/deck/#/board/4"), new long[]{4});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/index.php/apps/deck/#/board/4"), new long[]{4});
@@ -22,7 +22,19 @@ public class ProjectUtilTest {
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/index.php/apps/deck/#/board/4/card/0"), new long[]{4});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/index.php/apps/deck/#/board/4/foo"), new long[]{4});
- // Valid board URLs without #
+ // Valid board URLs with # and without index.php
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("apps/deck/#/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/apps/deck/#/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/apps/deck/#/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("http://example.com/apps/deck/#/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/apps/deck/#/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/#/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/#/board/4/card"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/#/board/4/card/"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/#/board/4/card/0"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/#/board/4/foo"), new long[]{4});
+
+ // Valid board URLs without # and with index.php
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("index.php/apps/deck/board/4"), new long[]{4});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/index.php/apps/deck/board/4"), new long[]{4});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/index.php/apps/deck/board/4"), new long[]{4});
@@ -34,7 +46,19 @@ public class ProjectUtilTest {
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/index.php/apps/deck/board/4/card/0"), new long[]{4});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/index.php/apps/deck/board/4/foo"), new long[]{4});
- // Valid card URLs with #
+ // Valid board URLs without # and without index.php
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("apps/deck/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/apps/deck/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/apps/deck/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("http://example.com/apps/deck/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/apps/deck/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/board/4"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/board/4/card"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/board/4/card/"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/board/4/card/0"), new long[]{4});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/board/4/foo"), new long[]{4});
+
+ // Valid card URLs with # and with index.php
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
@@ -43,7 +67,16 @@ public class ProjectUtilTest {
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/index.php/apps/deck/#/board/4/card/6/"), new long[]{4, 6});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
- // Valid card URLs without #
+ // Valid card URLs with # and without index.php
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("http://example.com/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/apps/deck/#/board/4/card/6/"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+
+ // Valid card URLs without # and with index.php
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
@@ -52,6 +85,15 @@ public class ProjectUtilTest {
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/index.php/apps/deck/#/board/4/card/6/"), new long[]{4, 6});
assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/index.php/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ // Valid card URLs without # and without index.php
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("example.com/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("http://example.com/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/apps/deck/#/board/4/card/6/"), new long[]{4, 6});
+ assertArrayEquals(ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/apps/deck/#/board/4/card/6"), new long[]{4, 6});
+
// URLs to talk
assertThrows(IllegalArgumentException.class, () -> ProjectUtil.extractBoardIdAndCardIdFromUrl("index.php/call/qkzhe5k2"));
assertThrows(IllegalArgumentException.class, () -> ProjectUtil.extractBoardIdAndCardIdFromUrl("/index.php/call/qkzhe5k2"));
@@ -69,6 +111,7 @@ public class ProjectUtilTest {
assertThrows(IllegalArgumentException.class, () -> ProjectUtil.extractBoardIdAndCardIdFromUrl("https://example.com/nextcloud/index.php/call/qkzhe5k2"));
// Invalid URLs
+ //noinspection ConstantConditions
assertThrows(IllegalArgumentException.class, () -> ProjectUtil.extractBoardIdAndCardIdFromUrl(null));
assertThrows(IllegalArgumentException.class, () -> ProjectUtil.extractBoardIdAndCardIdFromUrl(""));
assertThrows(IllegalArgumentException.class, () -> ProjectUtil.extractBoardIdAndCardIdFromUrl("/index.php/apps/deck/#/board/0"));