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+ }
0 commit comments