update
This commit is contained in:
68
android/app/src/test/kotlin/de/marha/planer/EditorTest.kt
Normal file
68
android/app/src/test/kotlin/de/marha/planer/EditorTest.kt
Normal file
@@ -0,0 +1,68 @@
|
||||
package de.marha.planer
|
||||
|
||||
import androidx.compose.ui.text.TextRange
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import de.marha.planer.data.Editor
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertNull
|
||||
import org.junit.Test
|
||||
|
||||
class EditorTest {
|
||||
private fun v(text: String, cursor: Int = text.length, end: Int = cursor) = TextFieldValue(text, TextRange(cursor, end))
|
||||
|
||||
@Test fun continueList() {
|
||||
assertEquals("- ", Editor.continueList("- eins"))
|
||||
assertEquals(" * ", Editor.continueList(" * eins"))
|
||||
assertEquals("- [ ] ", Editor.continueList("- [x] fertig"))
|
||||
assertEquals("4. ", Editor.continueList("3. drei"))
|
||||
assertEquals("", Editor.continueList("- "))
|
||||
assertEquals("", Editor.continueList("2. "))
|
||||
assertNull(Editor.continueList("nur Text"))
|
||||
assertNull(Editor.continueList("---"))
|
||||
}
|
||||
|
||||
@Test fun enterContinuesAndEndsList() {
|
||||
val next = Editor.afterInput(v("- a"), v("- a\n"))
|
||||
assertEquals("- a\n- ", next.text)
|
||||
assertEquals(6, next.selection.start)
|
||||
val ended = Editor.afterInput(v("- a\n- "), v("- a\n- \n"))
|
||||
assertEquals("- a\n", ended.text)
|
||||
assertEquals(4, ended.selection.start)
|
||||
// Umbruch mitten im Text: der Rest wandert hinter den neuen Marker
|
||||
val mid = Editor.afterInput(v("1. ab", 4), v("1. a\nb", 5))
|
||||
assertEquals("1. a\n2. b", mid.text)
|
||||
assertEquals(8, mid.selection.start)
|
||||
assertEquals("x\n", Editor.afterInput(v("x"), v("x\n")).text)
|
||||
}
|
||||
|
||||
@Test fun headings() {
|
||||
val h2 = Editor.heading(v("abc"), 2)
|
||||
assertEquals("## abc", h2.text)
|
||||
assertEquals(6, h2.selection.start)
|
||||
assertEquals("abc", Editor.heading(h2, 2).text)
|
||||
assertEquals("# abc", Editor.heading(h2, 1).text)
|
||||
assertEquals("x\n### y\nz", Editor.heading(v("x\ny\nz", 3), 3).text)
|
||||
}
|
||||
|
||||
@Test fun lists() {
|
||||
val ul = Editor.list(v("abc", 1), false)
|
||||
assertEquals("- abc", ul.text)
|
||||
assertEquals(3, ul.selection.start)
|
||||
assertEquals("abc", Editor.list(ul, false).text)
|
||||
assertEquals("1. abc", Editor.list(ul, true).text)
|
||||
assertEquals("1. x\n2. y", Editor.list(v("1. x\ny"), true).text)
|
||||
assertEquals(" t", Editor.list(v(" - [ ] t"), false).text)
|
||||
}
|
||||
|
||||
@Test fun indentAndBold() {
|
||||
assertEquals(" - a", Editor.indent(v("- a"), 1).text)
|
||||
assertEquals("- a", Editor.indent(v(" - a"), -1).text)
|
||||
assertEquals("- a", Editor.indent(v("- a"), -1).text)
|
||||
val b = Editor.bold(v("abc", 0, 3))
|
||||
assertEquals("**abc**", b.text)
|
||||
assertEquals(TextRange(2, 5), b.selection)
|
||||
val empty = Editor.bold(v("ab", 1))
|
||||
assertEquals("a****b", empty.text)
|
||||
assertEquals(3, empty.selection.start)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user