diff options
| author | ilya-g <ilya.gorbunov@jetbrains.com> | 2023-02-17 16:42:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-17 16:42:28 +0100 |
| commit | 1fd045904e94d68878b3a5f748bf20f7c61a1cf7 (patch) | |
| tree | 6e5e63033f654abc4e5c61278a4eeb39330977be /plugins/base/src/test/kotlin/pageMerger | |
| parent | daed35f92b3b482688856d139da6849c8e6b4ab1 (diff) | |
| download | dokka-1fd045904e94d68878b3a5f748bf20f7c61a1cf7.tar.gz dokka-1fd045904e94d68878b3a5f748bf20f7c61a1cf7.tar.bz2 dokka-1fd045904e94d68878b3a5f748bf20f7c61a1cf7.zip | |
Consistent alphabetical order of element groups in index and navigation (#2861)
* Sort groups of divergent elements by their key first ignoring case, then preserving it
* Add tests for sorting groups and navigation
Diffstat (limited to 'plugins/base/src/test/kotlin/pageMerger')
| -rw-r--r-- | plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt index 05ff55ee..01fefd3c 100644 --- a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt +++ b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt @@ -381,6 +381,46 @@ class PageNodeMergerTest : BaseAbstractTest() { } } + @Test + fun `should sort groups alphabetically ignoring case`() { + testInline( + """ + |/src/main/kotlin/test/Test.kt + |package test + | + |/** Sequence builder */ + |fun <T> sequence(): Sequence<T> + | + |/** Sequence SAM constructor */ + |fun <T> Sequence(): Sequence<T> + | + |/** Sequence.any() */ + |fun <T> Sequence<T>.any() {} + | + |/** Sequence interface */ + |interface Sequence<T> + """.trimMargin(), + defaultConfiguration + ) { + renderingStage = { rootPageNode, _ -> + val packageFunctionBlocks = rootPageNode.findPackageFunctionBlocks(packageName = "test") + assertEquals(3, packageFunctionBlocks.size, "Expected 3 separate function groups") + + packageFunctionBlocks[0].assertContainsKDocsInOrder( + "Sequence.any()", + ) + + packageFunctionBlocks[1].assertContainsKDocsInOrder( + "Sequence SAM constructor", + ) + + packageFunctionBlocks[2].assertContainsKDocsInOrder( + "Sequence builder", + ) + } + } + } + private fun RootPageNode.findExtensionsOfClass(name: String): ContentDivergentGroup { val extensionReceiverPage = this.dfs { it is ClasslikePageNode && it.name == name } as ClasslikePageNode return extensionReceiverPage.content |
