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:
authorStefan Niedermann <info@niedermann.it>2020-12-17 12:41:02 +0300
committerNiedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com>2020-12-17 18:14:29 +0300
commit82c175c3777840a132b3f83c8b62a1f7f436d60d (patch)
treee308cc17f19416d1839875d734a4330019e903a7
parente83f4530b67f4e22598c013b3a588d79b8f3b793 (diff)
Add test cases for markdown util methods
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/build.gradle1
-rw-r--r--markdown/src/androidTest/java/it/niedermann/android/markdown/MarkwonMarkdownUtilTest.java60
-rw-r--r--markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownUtil.java4
3 files changed, 57 insertions, 8 deletions
diff --git a/app/build.gradle b/app/build.gradle
index f1e3a2246..633d23360 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,7 +16,6 @@ android {
}
}
multiDexEnabled true
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildFeatures {
viewBinding true
diff --git a/markdown/src/androidTest/java/it/niedermann/android/markdown/MarkwonMarkdownUtilTest.java b/markdown/src/androidTest/java/it/niedermann/android/markdown/MarkwonMarkdownUtilTest.java
index 78d85ab88..ead2985b4 100644
--- a/markdown/src/androidTest/java/it/niedermann/android/markdown/MarkwonMarkdownUtilTest.java
+++ b/markdown/src/androidTest/java/it/niedermann/android/markdown/MarkwonMarkdownUtilTest.java
@@ -1,18 +1,23 @@
package it.niedermann.android.markdown;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import junit.framework.TestCase;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import it.niedermann.android.markdown.markwon.MarkwonMarkdownUtil;
-/**
- * Tests the NoteUtil
- * Created by stefan on 06.10.15.
- */
+@RunWith(AndroidJUnit4.class)
public class MarkwonMarkdownUtilTest extends TestCase {
+ @Test
public void testGetStartOfLine() {
//language=md
StringBuilder test = new StringBuilder(
@@ -45,6 +50,7 @@ public class MarkwonMarkdownUtilTest extends TestCase {
}
}
+ @Test
public void testGetEndOfLine() {
//language=md
StringBuilder test = new StringBuilder(
@@ -77,8 +83,9 @@ public class MarkwonMarkdownUtilTest extends TestCase {
}
}
+ @Test
public void testLineStartsWithCheckbox() {
- Map<String, Boolean> lines = new HashMap<>();
+ final Map<String, Boolean> lines = new HashMap<>();
lines.put("- [ ] ", true);
lines.put("- [x] ", true);
lines.put("* [ ] ", true);
@@ -122,6 +129,7 @@ public class MarkwonMarkdownUtilTest extends TestCase {
lines.forEach((key, value) -> assertEquals(value, (Boolean) MarkwonMarkdownUtil.lineStartsWithCheckbox(key)));
}
+ @Test
public void testTogglePunctuation() {
StringBuilder builder;
@@ -188,6 +196,7 @@ public class MarkwonMarkdownUtilTest extends TestCase {
// assertEquals("Lorem ***ipsum*** dolor sit amet.", builder.toString());
}
+ @Test
public void testInsertLink() {
StringBuilder builder;
@@ -211,4 +220,45 @@ public class MarkwonMarkdownUtilTest extends TestCase {
assertEquals(46, MarkwonMarkdownUtil.insertLink(builder, 6, 25, "https://example.de"));
assertEquals("Lorem [https://example.com](https://example.de) dolor sit amet.", builder.toString());
}
+
+ @Test
+ @SuppressWarnings("ConstantConditions")
+ public void testSelectionIsSurroundedByPunctuation() {
+ try {
+ final Method m = MarkwonMarkdownUtil.class.getDeclaredMethod("selectionIsSurroundedByPunctuation", CharSequence.class, int.class, int.class, String.class);
+ m.setAccessible(true);
+ assertTrue((Boolean) m.invoke(null, "*Lorem ipsum*", 1, 12, "*"));
+ assertTrue((Boolean) m.invoke(null, "**Lorem ipsum**", 2, 13, "*"));
+ assertTrue((Boolean) m.invoke(null, "**Lorem ipsum**", 2, 13, "**"));
+
+ assertFalse((Boolean) m.invoke(null, "*Lorem ipsum*", 0, 12, "*"));
+ assertFalse((Boolean) m.invoke(null, "*Lorem ipsum*", 1, 13, "*"));
+ assertFalse((Boolean) m.invoke(null, "*Lorem ipsum*", 0, 13, "*"));
+ } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testRemoveSurroundingPunctuation() {
+ try {
+ final Method m = MarkwonMarkdownUtil.class.getDeclaredMethod("removeSurroundingPunctuation", StringBuilder.class, int.class, int.class, String.class);
+ m.setAccessible(true);
+ StringBuilder builder;
+
+ builder = new StringBuilder("*Lorem Ipsum*");
+ m.invoke(null, builder, 1, 12, "*");
+ assertEquals("Lorem Ipsum", builder.toString());
+
+ builder = new StringBuilder("**Lorem Ipsum**");
+ m.invoke(null, builder, 2, 13, "**");
+ assertEquals("Lorem Ipsum", builder.toString());
+
+ builder = new StringBuilder("**Lorem Ipsum**");
+ m.invoke(null, builder, 2, 13, "*");
+ assertEquals("*Lorem Ipsum*", builder.toString());
+ } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
} \ No newline at end of file
diff --git a/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownUtil.java b/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownUtil.java
index 465ec678a..559221ad6 100644
--- a/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownUtil.java
+++ b/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownUtil.java
@@ -126,7 +126,7 @@ public class MarkwonMarkdownUtil {
case "~~": {
final boolean selectionIsSurroundedByPunctuation = selectionIsSurroundedByPunctuation(builder.toString(), selectionStart, selectionEnd, punctuation);
if (selectionIsSurroundedByPunctuation) {
- removeMarkdown(builder, selectionStart, selectionEnd, punctuation);
+ removeSurroundingPunctuation(builder, selectionStart, selectionEnd, punctuation);
} else {
builder.insert(selectionEnd, punctuation);
builder.insert(selectionStart, punctuation);
@@ -180,7 +180,7 @@ public class MarkwonMarkdownUtil {
&& punctuation.contentEquals(text.subSequence(end, end + punctuation.length()));
}
- private static void removeMarkdown(@NonNull StringBuilder ssb, int start, int end, @NonNull String punctuation) {
+ private static void removeSurroundingPunctuation(@NonNull StringBuilder ssb, int start, int end, @NonNull String punctuation) {
ssb.delete(end, end + punctuation.length());
ssb.delete(start - punctuation.length(), start);
}