diff options
Diffstat (limited to 'plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt')
-rw-r--r-- | plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt b/plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt deleted file mode 100644 index d57f84df..00000000 --- a/plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt +++ /dev/null @@ -1,292 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package renderers.html - -import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest -import utils.TestOutputWriterPlugin -import utils.navigationHtml -import utils.selectNavigationGrid -import kotlin.test.Test -import kotlin.test.assertEquals - -class NavigationIconTest : BaseAbstractTest() { - - private val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/") - } - } - } - - @Test - fun `should include all navigation icons`() { - val source = """ - |/src/main/kotlin/com/example/Empty.kt - |package com.example - | - |class Empty {} - """ - val writerPlugin = TestOutputWriterPlugin() - - testInline( - source, - configuration, - pluginOverrides = listOf(writerPlugin) - ) { - renderingStage = { _, _ -> - val navIconAssets = writerPlugin.writer.contents - .filterKeys { it.startsWith("images/nav-icons") } - .keys.sorted() - - assertEquals(16, navIconAssets.size) - assertEquals("images/nav-icons/abstract-class-kotlin.svg", navIconAssets[0]) - assertEquals("images/nav-icons/abstract-class.svg", navIconAssets[1]) - assertEquals("images/nav-icons/annotation-kotlin.svg", navIconAssets[2]) - assertEquals("images/nav-icons/annotation.svg", navIconAssets[3]) - assertEquals("images/nav-icons/class-kotlin.svg", navIconAssets[4]) - assertEquals("images/nav-icons/class.svg", navIconAssets[5]) - assertEquals("images/nav-icons/enum-kotlin.svg", navIconAssets[6]) - assertEquals("images/nav-icons/enum.svg", navIconAssets[7]) - assertEquals("images/nav-icons/exception-class.svg", navIconAssets[8]) - assertEquals("images/nav-icons/field-value.svg", navIconAssets[9]) - assertEquals("images/nav-icons/field-variable.svg", navIconAssets[10]) - assertEquals("images/nav-icons/function.svg", navIconAssets[11]) - assertEquals("images/nav-icons/interface-kotlin.svg", navIconAssets[12]) - assertEquals("images/nav-icons/interface.svg", navIconAssets[13]) - assertEquals("images/nav-icons/object.svg", navIconAssets[14]) - assertEquals("images/nav-icons/typealias-kotlin.svg", navIconAssets[15]) - } - } - } - - @Test - fun `should add icon styles to kotlin class navigation item`() { - assertNavigationIcon( - source = kotlinSource("class Clazz {}"), - expectedIconClass = "class-kt", - expectedNavLinkText = "Clazz" - ) - } - - @Test - fun `should add icon styles to java class navigation item`() { - assertNavigationIcon( - source = javaSource( - className = "JavaClazz", - source = "public class JavaClazz {}" - ), - expectedIconClass = "class", - expectedNavLinkText = "JavaClazz" - ) - } - - @Test - fun `should add icon styles to kotlin abstract class navigation item`() { - assertNavigationIcon( - source = kotlinSource("abstract class AbstractClazz {}"), - expectedIconClass = "abstract-class-kt", - expectedNavLinkText = "AbstractClazz" - ) - } - - @Test - fun `should add icon styles to java abstract class navigation item`() { - assertNavigationIcon( - source = javaSource( - className = "AbstractJavaClazz", - source = "public abstract class AbstractJavaClazz {}" - ), - expectedIconClass = "abstract-class", - expectedNavLinkText = "AbstractJavaClazz" - ) - } - - @Test - fun `should add icon styles to kotlin typealias navigation item`() { - assertNavigationIcon( - source = kotlinSource("typealias KotlinTypealias = String"), - expectedIconClass = "typealias-kt", - expectedNavLinkText = "KotlinTypealias" - ) - } - - @Test - fun `should add icon styles to kotlin enum navigation item`() { - assertNavigationIcon( - source = kotlinSource("enum class KotlinEnum {}"), - expectedIconClass = "enum-class-kt", - expectedNavLinkText = "KotlinEnum" - ) - } - - @Test - fun `should add icon styles to java enum class navigation item`() { - assertNavigationIcon( - source = javaSource( - className = "JavaEnum", - source = "public enum JavaEnum {}" - ), - expectedIconClass = "enum-class", - expectedNavLinkText = "JavaEnum" - ) - } - - @Test - fun `should add icon styles to kotlin annotation navigation item`() { - assertNavigationIcon( - source = kotlinSource("annotation class KotlinAnnotation"), - expectedIconClass = "annotation-class-kt", - expectedNavLinkText = "KotlinAnnotation" - ) - } - - @Test - fun `should add icon styles to java annotation navigation item`() { - assertNavigationIcon( - source = javaSource( - className = "JavaAnnotation", - source = "public @interface JavaAnnotation {}" - ), - expectedIconClass = "annotation-class", - expectedNavLinkText = "JavaAnnotation" - ) - } - - - @Test - fun `should add icon styles to kotlin interface navigation item`() { - assertNavigationIcon( - source = kotlinSource("interface KotlinInterface"), - expectedIconClass = "interface-kt", - expectedNavLinkText = "KotlinInterface" - ) - } - - @Test - fun `should add icon styles to java interface navigation item`() { - assertNavigationIcon( - source = javaSource( - className = "JavaInterface", - source = "public interface JavaInterface {}" - ), - expectedIconClass = "interface", - expectedNavLinkText = "JavaInterface" - ) - } - - @Test - fun `should add icon styles to kotlin function navigation item`() { - assertNavigationIcon( - source = kotlinSource("fun ktFunction() {}"), - expectedIconClass = "function", - expectedNavLinkText = "ktFunction()" - ) - } - - @Test - fun `should add icon styles to kotlin exception class navigation item`() { - assertNavigationIcon( - source = kotlinSource("class KotlinException : Exception() {}"), - expectedIconClass = "exception-class", - expectedNavLinkText = "KotlinException" - ) - } - - @Test - fun `should add icon styles to kotlin object navigation item`() { - assertNavigationIcon( - source = kotlinSource("object KotlinObject {}"), - expectedIconClass = "object", - expectedNavLinkText = "KotlinObject" - ) - } - - @Test - fun `should add icon styles to kotlin val navigation item`() { - assertNavigationIcon( - source = kotlinSource("val value: String? = null"), - expectedIconClass = "val", - expectedNavLinkText = "value" - ) - } - - @Test - fun `should add icon styles to kotlin var navigation item`() { - assertNavigationIcon( - source = kotlinSource("var variable: String? = null"), - expectedIconClass = "var", - expectedNavLinkText = "variable" - ) - } - - private fun kotlinSource(source: String): String { - return """ - |/src/main/kotlin/com/example/Example.kt - |package com.example - | - |$source - """.trimIndent() - } - - private fun javaSource(className: String, source: String): String { - return """ - |/src/main/java/com/example/$className.java - |package com.example; - | - |$source - """.trimIndent() - } - - private fun assertNavigationIcon(source: String, expectedIconClass: String, expectedNavLinkText: String) { - val writerPlugin = TestOutputWriterPlugin() - testInline( - source, - configuration, - pluginOverrides = listOf(writerPlugin) - ) { - renderingStage = { _, _ -> - val content = writerPlugin.writer.navigationHtml().select("div.sideMenuPart") - val navigationGrid = content.selectNavigationGrid() - - val classNames = navigationGrid.child(0).classNames().toList() - assertEquals("nav-link-child", classNames[0]) - assertEquals("nav-icon", classNames[1]) - assertEquals(expectedIconClass, classNames[2]) - - val navLinkText = navigationGrid.child(1).text() - assertEquals(expectedNavLinkText, navLinkText) - } - } - } - - @Test - fun `should not generate nav link grids or icons for packages and modules`() { - val writerPlugin = TestOutputWriterPlugin() - testInline( - """ - |/src/main/kotlin/com/example/Example.kt - |package com.example - | - |class Example {} - """.trimIndent(), - configuration, - pluginOverrides = listOf(writerPlugin) - ) { - renderingStage = { _, _ -> - val content = writerPlugin.writer.navigationHtml().select("div.sideMenuPart") - - assertEquals(3, content.size) - assertEquals("root-nav-submenu", content[0].id()) - assertEquals("root-nav-submenu-0", content[1].id()) - assertEquals("root-nav-submenu-0-0", content[2].id()) - - // there's 3 nav items, but only one icon - val navLinkGrids = content.select("span.nav-icon") - assertEquals(1, navLinkGrids.size) - } - } - } -} |