Skip to content

Commit 53987fe

Browse files
committed
Fix navigation links and add tests
1 parent 6756761 commit 53987fe

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed

scala3doc/src/dotty/renderers/HtmlRenderer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ class HtmlRenderer(rootPackage: Member, val members: Map[DRI, Member])(using ctx
139139
val isSelected = nav.link.dri == pageLink.dri
140140
def linkHtml(exapnded: Boolean = false) =
141141
val attrs = if (isSelected) Seq(cls := "selected expanded") else Nil
142-
a(href := pathToPage(nav.link.dri, pageLink.dri), attrs)(nav.link.name)
142+
a(href := pathToPage(pageLink.dri, nav.link.dri), attrs)(nav.link.name)
143143

144144
nav.children match
145145
case Nil => isSelected -> div(linkHtml())
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package dotty.dokka
2+
package site
3+
4+
import org.junit.Test
5+
6+
class NavitationTest extends BaseHtmlTest:
7+
8+
case class NavMenuTestEntry( name: String, link: String, nested: Seq[NavMenuTestEntry])
9+
10+
def testNavMenu(page: String, topLevel: NavMenuTestEntry)(using ProjectContext): Unit =
11+
withHtmlFile(page){ content =>
12+
def flatten(l: NavMenuTestEntry): Seq[NavMenuTestEntry] = l +: l.nested.flatMap(flatten)
13+
14+
def test(query: String, el: Seq[NavMenuTestEntry]) =
15+
content.assertTextsIn(query, el.map(_.name):_*)
16+
content.assertAttr(query,"href", el.map(_.link):_*)
17+
18+
test("#sideMenu2 a", flatten(topLevel))
19+
test("#sideMenu2>div>div>a", topLevel.nested)
20+
test("#sideMenu2>div>div>div>a", topLevel.nested.flatMap(_.nested))
21+
test("#sideMenu2>div>div>div>div>a", topLevel.nested.flatMap(_.nested.flatMap(_.nested)))
22+
}
23+
24+
25+
@Test
26+
def testBasicNavigation() = withGeneratedSite(testDocPath.resolve("basic")){
27+
val topLevelNav = NavMenuTestEntry(projectName, "index.html", Seq(
28+
NavMenuTestEntry("Adoc", "Adoc.html", Seq()),
29+
NavMenuTestEntry("A directory", "dir/index.html", Seq(
30+
NavMenuTestEntry("Nested in a directory", "dir/nested.html", Nil)
31+
)),
32+
NavMenuTestEntry("Basic test", "../index.html", Seq()),
33+
NavMenuTestEntry("API", "../api/index.html", Seq(
34+
NavMenuTestEntry("tests.site", "../api/tests/site.html", Seq(
35+
NavMenuTestEntry("BrokenLink", "../api/tests/site/BrokenLink.html", Nil),
36+
NavMenuTestEntry("BrokenLinkWiki", "../api/tests/site/BrokenLinkWiki.html", Nil),
37+
NavMenuTestEntry("OtherPackageLink", "../api/tests/site/OtherPackageLink.html", Nil),
38+
NavMenuTestEntry("OtherPackageLinkWiki", "../api/tests/site/OtherPackageLinkWiki.html", Nil),
39+
NavMenuTestEntry("SamePackageLink", "../api/tests/site/SamePackageLink.html", Nil),
40+
NavMenuTestEntry("SamePackageLinkWiki", "../api/tests/site/SamePackageLinkWiki.html", Nil),
41+
NavMenuTestEntry("SomeClass", "../api/tests/site/SomeClass.html", Nil)
42+
)),
43+
NavMenuTestEntry("tests.site.some.other", "../api/tests/site/some/other.html", Seq(
44+
NavMenuTestEntry("SomeOtherPackage", "../api/tests/site/some/other/SomeOtherPackage.html", Nil),
45+
))
46+
)),
47+
))
48+
49+
testNavMenu("docs/Adoc.html", topLevelNav)
50+
}

scala3doc/test/dotty/dokka/site/SiteGeneratationTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class SiteGeneratationTest extends BaseHtmlTest:
7171

7272
withHtmlFile("docs/Adoc.html"){ content =>
7373
content.assertAttr("p a","href", "../api/tests/site/SomeClass.html")
74-
}
74+
}
7575
}
7676

7777
@Test

0 commit comments

Comments
 (0)