aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt')
-rw-r--r--plugins/base/src/test/kotlin/renderers/html/NavigationIconTest.kt292
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)
- }
- }
- }
-}