🔥 Remove templates from FreenetTemplatePages
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / ErrorPagesTest.kt
1 package net.pterodactylus.sone.web.pages
2
3 import net.pterodactylus.sone.main.*
4 import net.pterodactylus.sone.web.*
5 import net.pterodactylus.sone.web.page.*
6 import org.hamcrest.MatcherAssert.*
7 import org.hamcrest.Matchers.*
8 import org.junit.*
9
10 class ErrorPagesTest {
11
12         private val webPageTest = WebPageTest()
13
14         private fun testPage(page: (WebInterface, Loaders, TemplateRenderer) -> FreenetTemplatePage, test: (FreenetTemplatePage) -> Unit) =
15                         with(webPageTest) {
16                                 test(page(webInterface, loaders, templateRenderer))
17                         }
18
19         @Test
20         fun `invalid page returns correct path`() {
21                 testPage(::InvalidPage) { page ->
22                         assertThat(page.path, equalTo("invalid.html"))
23                 }
24         }
25
26         @Test
27         fun `invalid page returns correct title`() {
28                 testPage(::InvalidPage) { page ->
29                         assertThat(page.getPageTitle(webPageTest.freenetRequest), equalTo("Page.Invalid.Title"))
30                 }
31         }
32
33         @Test
34         fun `invalid page is annotated with correct template path`() {
35                 testPage(::InvalidPage) { page ->
36                         assertThat(page.templatePath, equalTo("/templates/invalid.html"))
37                 }
38         }
39
40         @Test
41         fun `no permission page returns correct path`() {
42                 testPage(::NoPermissionPage) { page ->
43                         assertThat(page.path, equalTo("noPermission.html"))
44                 }
45         }
46
47         @Test
48         fun `no permission page returns correct title`() {
49                 testPage(::NoPermissionPage) { page ->
50                         assertThat(page.getPageTitle(webPageTest.freenetRequest), equalTo("Page.NoPermission.Title"))
51                 }
52         }
53
54         @Test
55         fun `no permission page is annotated with correct template path`() {
56                 testPage(::NoPermissionPage) { page ->
57                         assertThat(page.templatePath, equalTo("/templates/noPermission.html"))
58                 }
59         }
60
61         @Test
62         fun `empty image title page returns correct path`() {
63                 testPage(::EmptyImageTitlePage) { page ->
64                         assertThat(page.path, equalTo("emptyImageTitle.html"))
65                 }
66         }
67
68         @Test
69         fun `empty image title page returns correct page title`() {
70                 testPage(::EmptyImageTitlePage) { page ->
71                         assertThat(page.getPageTitle(webPageTest.freenetRequest), equalTo("Page.EmptyImageTitle.Title"))
72                 }
73         }
74
75         @Test
76         fun `empty image title page is annotated with correct template path`() {
77                 testPage(::EmptyImageTitlePage) { page ->
78                         assertThat(page.templatePath, equalTo("/templates/emptyImageTitle.html"))
79                 }
80         }
81
82         @Test
83         fun `empty album title page returns correct path`() {
84                 testPage(::EmptyAlbumTitlePage) { page ->
85                         assertThat(page.path, equalTo("emptyAlbumTitle.html"))
86                 }
87         }
88
89         @Test
90         fun `empty album title page returns correct page title`() {
91                 testPage(::EmptyAlbumTitlePage) { page ->
92                         assertThat(page.getPageTitle(webPageTest.freenetRequest), equalTo("Page.EmptyAlbumTitle.Title"))
93                 }
94         }
95
96         @Test
97         fun `empty album title page is annotated with correct template path`() {
98                 testPage(::EmptyAlbumTitlePage) { page ->
99                         assertThat(page.templatePath, equalTo("/templates/emptyAlbumTitle.html"))
100                 }
101         }
102
103 }