From c056275c522db3f2f391ce44a405da0cedae60ca Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Sun, 3 Sep 2017 02:40:21 +0200 Subject: Link widget Tag, List, DropDown widget refactoring Unit tests --- .../test/pl/treksoft/kvision/basic/LabelSpec.kt | 23 +++++++++++++ .../test/pl/treksoft/kvision/core/ContainerSpec.kt | 17 ++++++++++ .../pl/treksoft/kvision/dropdown/DropDownSpec.kt | 23 +++++++++++++ .../test/pl/treksoft/kvision/html/ButtonSpec.kt | 25 ++++++++++++++ .../test/pl/treksoft/kvision/html/ImageSpec.kt | 26 +++++++++++++++ .../test/pl/treksoft/kvision/html/LinkSpec.kt | 23 +++++++++++++ .../test/pl/treksoft/kvision/html/ListSpec.kt | 39 ++++++++++++++++++++++ .../test/pl/treksoft/kvision/html/TagSpec.kt | 21 +++++++++--- 8 files changed, 192 insertions(+), 5 deletions(-) create mode 100644 src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt create mode 100644 src/test/kotlin/test/pl/treksoft/kvision/dropdown/DropDownSpec.kt create mode 100644 src/test/kotlin/test/pl/treksoft/kvision/html/ButtonSpec.kt create mode 100644 src/test/kotlin/test/pl/treksoft/kvision/html/ImageSpec.kt create mode 100644 src/test/kotlin/test/pl/treksoft/kvision/html/LinkSpec.kt create mode 100644 src/test/kotlin/test/pl/treksoft/kvision/html/ListSpec.kt (limited to 'src/test/kotlin') diff --git a/src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt new file mode 100644 index 00000000..c3019cc9 --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt @@ -0,0 +1,23 @@ +package test.pl.treksoft.kvision.basic + +import pl.treksoft.kvision.basic.Label +import pl.treksoft.kvision.core.Root +import test.pl.treksoft.kvision.DomSpec +import kotlin.browser.document +import kotlin.test.Test +import kotlin.test.assertEquals + +class LabelSpec : DomSpec { + + @Test + fun render() { + run { + val root = Root("test") + val label = Label("This is a label") + root.add(label) + val element = document.getElementById("test") + assertEquals("This is a label", element?.innerHTML, "Should render correct label") + } + } + +} \ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/core/ContainerSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/core/ContainerSpec.kt index f79d24df..d9d59c4c 100644 --- a/src/test/kotlin/test/pl/treksoft/kvision/core/ContainerSpec.kt +++ b/src/test/kotlin/test/pl/treksoft/kvision/core/ContainerSpec.kt @@ -28,6 +28,23 @@ class ContainerSpec : DomSpec { } } + @Test + fun addAll() { + run { + val root = Root("test") + val container = Container() + val child1 = Widget() + child1.id = "child1" + val child2 = Widget() + child2.id = "child2" + container.addAll(listOf(child1, child2)) + root.add(container) + val elem1 = document.getElementById("child1") + val elem2 = document.getElementById("child2") + assertTrue("Container renders children") { elem1 != null && elem2 != null } + } + } + @Test fun remove() { run { diff --git a/src/test/kotlin/test/pl/treksoft/kvision/dropdown/DropDownSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/dropdown/DropDownSpec.kt new file mode 100644 index 00000000..878119dc --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/dropdown/DropDownSpec.kt @@ -0,0 +1,23 @@ +package test.pl.treksoft.kvision.dropdown + +import pl.treksoft.kvision.core.Root +import pl.treksoft.kvision.dropdown.DropDown +import test.pl.treksoft.kvision.DomSpec +import kotlin.browser.document +import kotlin.test.Test +import kotlin.test.assertEquals + +class DropDownSpec : DomSpec { + + @Test + fun render() { + run { + val root = Root("test") + val dd = DropDown("Dropdown", listOf("abc" to "#!/x", "def" to "#!/y"), "flag") + root.add(dd) + val element = document.getElementById("test") + assertEquals("
", element?.innerHTML, "Should render correct drop down") + } + } + +} \ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/html/ButtonSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/html/ButtonSpec.kt new file mode 100644 index 00000000..6019b912 --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/html/ButtonSpec.kt @@ -0,0 +1,25 @@ +package test.pl.treksoft.kvision.html + +import pl.treksoft.kvision.core.Root +import pl.treksoft.kvision.html.BUTTON_SIZE +import pl.treksoft.kvision.html.BUTTON_STYLE +import pl.treksoft.kvision.html.Button +import test.pl.treksoft.kvision.DomSpec +import kotlin.browser.document +import kotlin.test.Test +import kotlin.test.assertEquals + +class ButtonSpec : DomSpec { + + @Test + fun render() { + run { + val root = Root("test") + val button = Button("Cancel", "fa-bars", BUTTON_STYLE.PRIMARY, BUTTON_SIZE.LARGE, true) + root.add(button) + val element = document.getElementById("test") + assertEquals("", element?.innerHTML, "Should render correct html button") + } + } + +} \ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/html/ImageSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/html/ImageSpec.kt new file mode 100644 index 00000000..7d8e37fe --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/html/ImageSpec.kt @@ -0,0 +1,26 @@ +package test.pl.treksoft.kvision.html + +import pl.treksoft.kvision.core.Img +import pl.treksoft.kvision.core.Root +import pl.treksoft.kvision.html.IMAGE_SHAPE +import pl.treksoft.kvision.html.Image +import test.pl.treksoft.kvision.DomSpec +import kotlin.browser.document +import kotlin.test.Test +import kotlin.test.assertEquals + +class ImageSpec : DomSpec { + + @Test + fun render() { + run { + val root = Root("test") + val res = Img("kotlin.png") + val image = Image(res, "Image", true, IMAGE_SHAPE.ROUNDED, true) + root.add(image) + val element = document.getElementById("test") + assertEquals("\"Image\"", element?.innerHTML, "Should render correct html image") + } + } + +} \ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/html/LinkSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/html/LinkSpec.kt new file mode 100644 index 00000000..1f4b6d2c --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/html/LinkSpec.kt @@ -0,0 +1,23 @@ +package test.pl.treksoft.kvision.html + +import pl.treksoft.kvision.core.Root +import pl.treksoft.kvision.html.Link +import test.pl.treksoft.kvision.DomSpec +import kotlin.browser.document +import kotlin.test.Test +import kotlin.test.assertEquals + +class LinkSpec : DomSpec { + + @Test + fun render() { + run { + val root = Root("test") + val link = Link("Google", "http://www.google.com") + root.add(link) + val element = document.getElementById("test") + assertEquals("Google", element?.innerHTML, "Should render correct html link") + } + } + +} \ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/html/ListSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/html/ListSpec.kt new file mode 100644 index 00000000..78631076 --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/html/ListSpec.kt @@ -0,0 +1,39 @@ +package test.pl.treksoft.kvision.html + +import pl.treksoft.kvision.core.Root +import pl.treksoft.kvision.html.LIST +import pl.treksoft.kvision.html.ListTag +import pl.treksoft.kvision.html.TAG +import pl.treksoft.kvision.html.Tag +import test.pl.treksoft.kvision.DomSpec +import kotlin.browser.document +import kotlin.test.Test +import kotlin.test.assertEquals + +class ListSpec : DomSpec { + + @Test + fun render_Elements() { + run { + val root = Root("test") + val list = ListTag(LIST.DL_HORIZ, listOf("a1", "a2", "b1", "b2")) + root.add(list) + val element = document.getElementById("test") + assertEquals("
a1
a2
b1
b2
", element?.innerHTML, "Should render correct html list") + } + } + + @Test + fun render_AsContainer() { + run { + val root = Root("test") + val list = ListTag(LIST.UL) + list.add(Tag(TAG.PRE, "pre")) + list.add(Tag(TAG.DEL, "del")) + root.add(list) + val element = document.getElementById("test") + assertEquals("", element?.innerHTML, "Should render correct html list") + } + } + +} \ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/html/TagSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/html/TagSpec.kt index 1ba7f97b..997714db 100644 --- a/src/test/kotlin/test/pl/treksoft/kvision/html/TagSpec.kt +++ b/src/test/kotlin/test/pl/treksoft/kvision/html/TagSpec.kt @@ -2,13 +2,13 @@ package test.pl.treksoft.kvision.html import pl.treksoft.kvision.core.Root import pl.treksoft.kvision.html.ALIGN +import pl.treksoft.kvision.html.Link import pl.treksoft.kvision.html.TAG import pl.treksoft.kvision.html.Tag import test.pl.treksoft.kvision.DomSpec import kotlin.browser.document import kotlin.test.Test import kotlin.test.assertEquals -import kotlin.test.assertTrue class TagSpec : DomSpec { @@ -24,15 +24,26 @@ class TagSpec : DomSpec { } @Test - fun render_rich() { + fun render_Rich() { run { val root = Root("test") - val tag = Tag(TAG.H1, "This is h1", rich = true, align = ALIGN.CENTER) + val tag = Tag(TAG.H1, "This is h1", rich = true, align = ALIGN.RIGHT) root.add(tag) val element = document.getElementById("test") - assertEquals("

This is h1

", element?.innerHTML, "Should render correct html tag") + assertEquals("

This is h1

", element?.innerHTML, "Should render correct html tag") } } - + @Test + fun render_AsContainer() { + run { + val root = Root("test") + val tag = Tag(TAG.P, align = ALIGN.RIGHT) + tag.add(Tag(TAG.DEL, "This is test")) + tag.add(Link("abc", "/x")) + root.add(tag) + val element = document.getElementById("test") + assertEquals("

This is testabc

", element?.innerHTML, "Should render correct html tag with children") + } + } } \ No newline at end of file -- cgit