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