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
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/androidTest/java/it/niedermann/nextcloud')
-rw-r--r--app/src/androidTest/java/it/niedermann/nextcloud/deck/util/AttachmentUtilTest.java50
-rw-r--r--app/src/androidTest/java/it/niedermann/nextcloud/deck/util/ColorUtilTest.java124
-rw-r--r--app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DateUtilTest.java35
-rw-r--r--app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DeckColorUtilTest.java49
-rw-r--r--app/src/androidTest/java/it/niedermann/nextcloud/deck/util/SpannableUtilTest.java52
5 files changed, 186 insertions, 124 deletions
diff --git a/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/AttachmentUtilTest.java b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/AttachmentUtilTest.java
new file mode 100644
index 000000000..a72f74ec1
--- /dev/null
+++ b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/AttachmentUtilTest.java
@@ -0,0 +1,50 @@
+package it.niedermann.nextcloud.deck.util;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import it.niedermann.nextcloud.deck.model.Attachment;
+import it.niedermann.nextcloud.deck.model.ocs.Version;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(AndroidJUnit4.class)
+public class AttachmentUtilTest {
+
+ @Test
+ public void testGetThumbnailUrl() {
+ final Version versionThatDoesSupportFileAttachments = new Version("1.3.0", 1, 3, 0);
+ final Version versionThatDoesNotSupportFileAttachments = new Version("1.2.0", 1, 2, 0);
+ final String accountUrl = "https://example.com";
+
+ // TODO depends on https://github.com/nextcloud/deck/pull/2638
+// final Attachment attachment1 = new Attachment();
+// attachment1.setFileId("1337");
+// final String thumbnailUrl1 = AttachmentUtil.getThumbnailUrl(versionThatDoesSupportFileAttachments, accountUrl, -1L, attachment1, 500);
+// assertEquals("https://example.com/index.php/core/preview?fileId=1337&x=500&y=500", thumbnailUrl1);
+//
+// final Attachment attachment2 = new Attachment();
+// attachment2.setFileId("0815");
+// final String thumbnailUrl2 = AttachmentUtil.getThumbnailUrl(versionThatDoesSupportFileAttachments, accountUrl, 0L, attachment2, 4711);
+// assertEquals("https://example.com/index.php/core/preview?fileId=0815&x=4711&y=4711", thumbnailUrl2);
+
+ // Given there is an invalid fileId...
+ final Attachment attachment3 = new Attachment();
+ attachment3.setId(999L);
+ attachment3.setFileId("");
+ final String thumbnailUrl3 = AttachmentUtil.getThumbnailUrl(versionThatDoesSupportFileAttachments, accountUrl, 15L, attachment3, 205);
+ // ... a fallback to the attachment itself should be returned
+ assertEquals("https://example.com/index.php/apps/deck/cards/15/attachment/999", thumbnailUrl3);
+
+ // Given the server version does not support file attachments yet...
+ final Attachment attachment4 = new Attachment();
+ attachment4.setId(111L);
+ attachment4.setFileId("222");
+ final String thumbnailUrl4 = AttachmentUtil.getThumbnailUrl(versionThatDoesNotSupportFileAttachments, accountUrl, 333L, attachment4, 444);
+ // ... a fallback to the attachment itself should be returned
+ assertEquals("https://example.com/index.php/apps/deck/cards/333/attachment/111", thumbnailUrl4);
+ }
+
+}
diff --git a/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/ColorUtilTest.java b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/ColorUtilTest.java
deleted file mode 100644
index afc09e762..000000000
--- a/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/ColorUtilTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package it.niedermann.nextcloud.deck.util;
-
-import android.graphics.Color;
-
-import androidx.annotation.ColorInt;
-import androidx.core.util.Pair;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-@RunWith(AndroidJUnit4.class)
-public class ColorUtilTest {
-
- @ColorInt
- private static final int[] DARK_COLORS = new int[]{
- Color.BLACK,
- Color.parseColor("#0082C9"), // "Nextcloud-Blue"
- Color.parseColor("#007676")
- };
-
- @ColorInt
- private static final int[] LIGHT_COLORS = new int[]{
- Color.WHITE,
- Color.YELLOW
- };
-
- @Test
- public void testGetForegroundColorForBackgroundColor() {
- for (@ColorInt int color : DARK_COLORS) {
- assertEquals(
- "Expect foreground color for " + String.format("#%06X", (0xFFFFFF & color)) + " to be " + String.format("#%06X", (0xFFFFFF & Color.WHITE)),
- Color.WHITE, ColorUtil.getForegroundColorForBackgroundColor(color)
- );
- }
- for (@ColorInt int color : LIGHT_COLORS) {
- assertEquals(
- "Expect foreground color for " + String.format("#%06X", (0xFFFFFF & color)) + " to be " + String.format("#%06X", (0xFFFFFF & Color.BLACK)),
- Color.BLACK, ColorUtil.getForegroundColorForBackgroundColor(color)
- );
- }
- assertEquals(
- "Expect foreground color for " + String.format("#%06X", (0xFFFFFF & Color.TRANSPARENT)) + " to be " + String.format("#%06X", (0xFFFFFF & Color.BLACK)),
- Color.BLACK, ColorUtil.getForegroundColorForBackgroundColor(Color.TRANSPARENT)
- );
- }
-
- @Test
- public void testIsColorDark() {
- for (@ColorInt int color : DARK_COLORS) {
- assertTrue(
- "Expect " + String.format("#%06X", (0xFFFFFF & color)) + " to be a dark color",
- ColorUtil.isColorDark(color)
- );
- }
- for (@ColorInt int color : LIGHT_COLORS) {
- assertFalse(
- "Expect " + String.format("#%06X", (0xFFFFFF & color)) + " to be a light color",
- ColorUtil.isColorDark(color)
- );
- }
- }
-
- @Test
- public void testContrastRatioIsSufficient() {
- final List<Pair<Integer, Integer>> sufficientContrastColorPairs = new ArrayList<>();
- sufficientContrastColorPairs.add(new Pair<>(Color.BLACK, Color.WHITE));
- sufficientContrastColorPairs.add(new Pair<>(Color.WHITE, Color.parseColor("#0082C9")));
-
- for (Pair<Integer, Integer> colorPair : sufficientContrastColorPairs) {
- assert colorPair.first != null;
- assert colorPair.second != null;
- assertTrue(
- "Expect contrast between " + String.format("#%06X", (0xFFFFFF & colorPair.first)) + " and " + String.format("#%06X", (0xFFFFFF & colorPair.second)) + " to be sufficient",
- ColorUtil.contrastRatioIsSufficient(colorPair.first, colorPair.second)
- );
- }
-
- final List<Pair<Integer, Integer>> insufficientContrastColorPairs = new ArrayList<>();
- insufficientContrastColorPairs.add(new Pair<>(Color.WHITE, Color.WHITE));
- insufficientContrastColorPairs.add(new Pair<>(Color.BLACK, Color.BLACK));
-
- for (Pair<Integer, Integer> colorPair : insufficientContrastColorPairs) {
- assert colorPair.first != null;
- assert colorPair.second != null;
- assertFalse(
- "Expect contrast between " + String.format("#%06X", (0xFFFFFF & colorPair.first)) + " and " + String.format("#%06X", (0xFFFFFF & colorPair.second)) + " to be insufficient",
- ColorUtil.contrastRatioIsSufficient(colorPair.first, colorPair.second)
- );
- }
- }
-
- @Rule
- public final ExpectedException exception = ExpectedException.none();
-
- @Test
- public void testGetCleanHexaColorString() {
- final List<Pair<String, String>> validColors = new ArrayList<>();
- validColors.add(new Pair<>("#0082C9", "#0082C9"));
- validColors.add(new Pair<>("0082C9", "#0082C9"));
- validColors.add(new Pair<>("#CCC", "#CCCCCC"));
- validColors.add(new Pair<>("ccc", "#cccccc"));
- validColors.add(new Pair<>("af0", "#aaff00"));
- validColors.add(new Pair<>("#af0", "#aaff00"));
- for (Pair<String, String> color : validColors) {
- assertEquals("Expect " + color.first + " to be cleaned up to " + color.second, color.second, ColorUtil.formatColorToParsableHexString(color.first));
- }
-
- final String[] invalidColors = new String[]{null, "", "cc", "c", "#a", "#55L", "55L"};
- for (String color : invalidColors) {
- exception.expect(IllegalArgumentException.class);
- ColorUtil.formatColorToParsableHexString(color);
- }
- }
-}
diff --git a/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DateUtilTest.java b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DateUtilTest.java
new file mode 100644
index 000000000..845275122
--- /dev/null
+++ b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DateUtilTest.java
@@ -0,0 +1,35 @@
+package it.niedermann.nextcloud.deck.util;
+
+import android.content.Context;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.time.Duration;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.stream.Stream;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(AndroidJUnit4.class)
+public class DateUtilTest {
+
+ @Test
+ public void testGetRelativeDateTimeString() {
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ Stream.of(10, 20, 30, 40, 50)
+ .map(secondsAgo -> ZonedDateTime.now().minus(Duration.ofSeconds(secondsAgo)).toInstant().toEpochMilli())
+ .forEach(secondsAgoInMillis -> assertEquals("Below one minute diff, it should just print \"seconds\"", "seconds ago", DateUtil.getRelativeDateTimeString(appContext, secondsAgoInMillis)));
+
+ Stream.of(10, 20, 30, 40, 50)
+ .forEach(minutesAgo -> assertEquals("Minutes ago should print the minutes", minutesAgo + " minutes ago", DateUtil.getRelativeDateTimeString(appContext, ZonedDateTime.now().minus(Duration.ofMinutes(minutesAgo)).toInstant().toEpochMilli())));
+
+ assertEquals("Very long time ago should print the complete date", "4/13/2018", DateUtil.getRelativeDateTimeString(appContext, ZonedDateTime.of(2018,
+ 4, 13, 10, 45, 0, 0, ZoneId.systemDefault()).toInstant().toEpochMilli()));
+ }
+
+}
diff --git a/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DeckColorUtilTest.java b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DeckColorUtilTest.java
new file mode 100644
index 000000000..10ac5cdc9
--- /dev/null
+++ b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/DeckColorUtilTest.java
@@ -0,0 +1,49 @@
+package it.niedermann.nextcloud.deck.util;
+
+import android.graphics.Color;
+
+import androidx.core.util.Pair;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(AndroidJUnit4.class)
+public class DeckColorUtilTest {
+
+ @Test
+ public void testContrastRatioIsSufficient() {
+ final List<Pair<Integer, Integer>> sufficientContrastColorPairs = new ArrayList<>();
+ sufficientContrastColorPairs.add(new Pair<>(Color.BLACK, Color.WHITE));
+ sufficientContrastColorPairs.add(new Pair<>(Color.WHITE, Color.parseColor("#0082C9")));
+
+ for (Pair<Integer, Integer> colorPair : sufficientContrastColorPairs) {
+ assert colorPair.first != null;
+ assert colorPair.second != null;
+ assertTrue(
+ "Expect contrast between " + String.format("#%06X", (0xFFFFFF & colorPair.first)) + " and " + String.format("#%06X", (0xFFFFFF & colorPair.second)) + " to be sufficient",
+ DeckColorUtil.contrastRatioIsSufficient(colorPair.first, colorPair.second)
+ );
+ }
+
+ final List<Pair<Integer, Integer>> insufficientContrastColorPairs = new ArrayList<>();
+ insufficientContrastColorPairs.add(new Pair<>(Color.WHITE, Color.WHITE));
+ insufficientContrastColorPairs.add(new Pair<>(Color.BLACK, Color.BLACK));
+
+ for (Pair<Integer, Integer> colorPair : insufficientContrastColorPairs) {
+ assert colorPair.first != null;
+ assert colorPair.second != null;
+ assertFalse(
+ "Expect contrast between " + String.format("#%06X", (0xFFFFFF & colorPair.first)) + " and " + String.format("#%06X", (0xFFFFFF & colorPair.second)) + " to be insufficient",
+ DeckColorUtil.contrastRatioIsSufficient(colorPair.first, colorPair.second)
+ );
+ }
+ }
+
+}
diff --git a/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/SpannableUtilTest.java b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/SpannableUtilTest.java
new file mode 100644
index 000000000..1797bc405
--- /dev/null
+++ b/app/src/androidTest/java/it/niedermann/nextcloud/deck/util/SpannableUtilTest.java
@@ -0,0 +1,52 @@
+package it.niedermann.nextcloud.deck.util;
+
+import android.content.Context;
+import android.graphics.Typeface;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.StyleSpan;
+import android.text.style.URLSpan;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(AndroidJUnit4.class)
+public class SpannableUtilTest {
+
+ @Test
+ public void testStrong() {
+ final SpannableString spannableString = SpannableUtil.strong("test");
+ assertEquals(1, spannableString.getSpans(0, spannableString.length(), Object.class).length);
+ assertEquals(1, spannableString.getSpans(0, spannableString.length(), StyleSpan.class).length);
+ assertEquals(4, spannableString.length());
+ assertEquals(Typeface.BOLD, spannableString.getSpans(0, spannableString.length(), StyleSpan.class)[0].getStyle());
+ }
+
+ @Test
+ public void testDisabled() {
+ final Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+ final SpannableString spannableString = SpannableUtil.disabled("test", appContext);
+ assertEquals(2, spannableString.getSpans(0, spannableString.length(), Object.class).length);
+ assertEquals(1, spannableString.getSpans(0, spannableString.length(), ForegroundColorSpan.class).length);
+ assertEquals(1, spannableString.getSpans(0, spannableString.length(), StyleSpan.class).length);
+ assertEquals(4, spannableString.length());
+ assertEquals(Typeface.ITALIC, spannableString.getSpans(0, spannableString.length(), StyleSpan.class)[0].getStyle());
+ }
+
+
+ @Test
+ public void testUrl() {
+ final SpannableString spannableString = SpannableUtil.url("test", "https://example.com");
+ assertEquals(1, spannableString.getSpans(0, spannableString.length(), Object.class).length);
+ assertEquals(1, spannableString.getSpans(0, spannableString.length(), URLSpan.class).length);
+ assertEquals(4, spannableString.length());
+ assertEquals("https://example.com", spannableString.getSpans(0, spannableString.length(), URLSpan.class)[0].getURL());
+ }
+
+}