30286a335984f020186d7e5840bedc366e925e9d
[Sone.git] / src / test / java / net / pterodactylus / sone / web / AllPagesTest.kt
1 package net.pterodactylus.sone.web
2
3 import com.google.inject.Guice.createInjector
4 import net.pterodactylus.sone.core.Core
5 import net.pterodactylus.sone.core.FreenetInterface
6 import net.pterodactylus.sone.main.PluginHomepage
7 import net.pterodactylus.sone.main.PluginVersion
8 import net.pterodactylus.sone.main.PluginYear
9 import net.pterodactylus.sone.test.*
10 import net.pterodactylus.sone.web.pages.*
11 import net.pterodactylus.util.template.Template
12 import org.hamcrest.Matcher
13 import org.hamcrest.MatcherAssert.assertThat
14 import org.hamcrest.Matchers
15 import org.junit.Test
16
17 /**
18  * Test for [AllPages].
19  */
20 class AllPagesTest {
21
22         private val injector by lazy {
23                 baseInjector.createChildInjector(
24                                 PluginVersion::class.isProvidedByMock(),
25                                 PluginYear::class.isProvidedByMock(),
26                                 PluginHomepage::class.isProvidedByMock()
27                 )!!
28         }
29         private val allPages by lazy { injector.getInstance<AllPages>() }
30
31         private inline fun <reified T> instanceOf(): Matcher<T> = Matchers.instanceOf<T>(T::class.java)
32
33         @Test
34         fun `about page can be injected`() {
35                 assertThat(allPages.aboutPage, instanceOf<AboutPage>())
36         }
37
38         @Test
39         fun `bookmark page can be injected`() {
40                 assertThat(allPages.bookmarkPage, instanceOf<BookmarkPage>())
41         }
42
43         @Test
44         fun `bookmarks page can be injected`() {
45                 assertThat(allPages.bookmarksPage, instanceOf<BookmarksPage>())
46         }
47
48         @Test
49         fun `create album page can be injected`() {
50                 assertThat(allPages.createAlbumPage, instanceOf<CreateAlbumPage>())
51         }
52
53         @Test
54         fun `create post page can be injected`() {
55                 assertThat(allPages.createPostPage, instanceOf<CreatePostPage>())
56         }
57
58         @Test
59         fun `create reply page can be injected`() {
60                 assertThat(allPages.createReplyPage, instanceOf<CreateReplyPage>())
61         }
62
63         @Test
64         fun `create sone page can be injected`() {
65                 assertThat(allPages.createSonePage, instanceOf<CreateSonePage>())
66         }
67
68         @Test
69         fun `delete album page can be injected`() {
70                 assertThat(allPages.deleteAlbumPage, instanceOf<DeleteAlbumPage>())
71         }
72
73         @Test
74         fun `delete image page can be injected`() {
75                 assertThat(allPages.deleteImagePage, instanceOf<DeleteImagePage>())
76         }
77
78         @Test
79         fun `delete post page can be injected`() {
80                 assertThat(allPages.deletePostPage, instanceOf<DeletePostPage>())
81         }
82
83         @Test
84         fun `delete profile field page can be injected`() {
85                 assertThat(allPages.deleteProfileFieldPage, instanceOf<DeleteProfileFieldPage>())
86         }
87
88         @Test
89         fun `delete reply page can be injected`() {
90                 assertThat(allPages.deleteReplyPage, instanceOf<DeleteReplyPage>())
91         }
92
93         @Test
94         fun `delete sone page can be injected`() {
95                 assertThat(allPages.deleteSonePage, instanceOf<DeleteSonePage>())
96         }
97
98         @Test
99         fun `dismiss notification page can be injected`() {
100                 assertThat(allPages.dismissNotificationPage, instanceOf<DismissNotificationPage>())
101         }
102
103         @Test
104         fun `distrust page can be injected`() {
105                 assertThat(allPages.distrustPage, instanceOf<DistrustPage>())
106         }
107
108         @Test
109         fun `edit album page can be injected`() {
110                 assertThat(allPages.editAlbumPage, instanceOf<EditAlbumPage>())
111         }
112
113         @Test
114         fun `edit image page can be injected`() {
115                 assertThat(allPages.editImagePage, instanceOf<EditImagePage>())
116         }
117
118         @Test
119         fun `edit profile field page can be injected`() {
120                 assertThat(allPages.editProfileFieldPage, instanceOf<EditProfileFieldPage>())
121         }
122
123         @Test
124         fun `edit profile page can be injected`() {
125                 assertThat(allPages.editProfilePage, instanceOf<EditProfilePage>())
126         }
127
128         @Test
129         fun `follow sone page can be injected`() {
130                 assertThat(allPages.followSonePage, instanceOf<FollowSonePage>())
131         }
132
133         @Test
134         fun `get image page can be injected`() {
135                 assertThat(allPages.getImagePage, instanceOf<GetImagePage>())
136         }
137
138         @Test
139         fun `image browser page can be injected`() {
140                 assertThat(allPages.imageBrowserPage, instanceOf<ImageBrowserPage>())
141         }
142
143         @Test
144         fun `index page can be injected`() {
145                 assertThat(allPages.indexPage, instanceOf<IndexPage>())
146         }
147
148         @Test
149         fun `known sones page can be injected`() {
150                 assertThat(allPages.knownSonesPage, instanceOf<KnownSonesPage>())
151         }
152
153         @Test
154         fun `like page can be injected`() {
155                 assertThat(allPages.likePage, instanceOf<LikePage>())
156         }
157
158         @Test
159         fun `lock sone page can be injected`() {
160                 assertThat(allPages.lockSonePage, instanceOf<LockSonePage>())
161         }
162
163         @Test
164         fun `login page can be injected`() {
165                 assertThat(allPages.loginPage, instanceOf<LoginPage>())
166         }
167
168         @Test
169         fun `logout page can be injected`() {
170                 assertThat(allPages.logoutPage, instanceOf<LogoutPage>())
171         }
172
173         @Test
174         fun `mark as known page can be injected`() {
175                 assertThat(allPages.markAsKnownPage, instanceOf<MarkAsKnownPage>())
176         }
177
178         @Test
179         fun `new page can be injected`() {
180                 assertThat(allPages.newPage, instanceOf<NewPage>())
181         }
182
183         @Test
184         fun `options page can be injected`() {
185                 assertThat(allPages.optionsPage, instanceOf<OptionsPage>())
186         }
187
188         @Test
189         fun `rescue page can be injected`() {
190                 assertThat(allPages.rescuePage, instanceOf<RescuePage>())
191         }
192
193         @Test
194         fun `search page can be injected`() {
195                 assertThat(allPages.searchPage, instanceOf<SearchPage>())
196         }
197
198         @Test
199         fun `trust page can be injected`() {
200                 assertThat(allPages.trustPage, instanceOf<TrustPage>())
201         }
202
203         @Test
204         fun `unbookmark page can be injected`() {
205                 assertThat(allPages.unbookmarkPage, instanceOf<UnbookmarkPage>())
206         }
207
208         @Test
209         fun `unfollow sone page can be injected`() {
210                 assertThat(allPages.unfollowSonePage, instanceOf<UnfollowSonePage>())
211         }
212
213         @Test
214         fun `unlike page can be injected`() {
215                 assertThat(allPages.unlikePage, instanceOf<UnlikePage>())
216         }
217
218         @Test
219         fun `unlock sone page can be injected`() {
220                 assertThat(allPages.unlockSonePage, instanceOf<UnlockSonePage>())
221         }
222
223         @Test
224         fun `untrust page can be injected`() {
225                 assertThat(allPages.untrustPage, instanceOf<UntrustPage>())
226         }
227
228         @Test
229         fun `upload image page can be injected`() {
230                 assertThat(allPages.uploadImagePage, instanceOf<UploadImagePage>())
231         }
232
233         @Test
234         fun `view post page can be injected`() {
235                 assertThat(allPages.viewPostPage, instanceOf<ViewPostPage>())
236         }
237
238         @Test
239         fun `view sone page can be injected`() {
240                 assertThat(allPages.viewSonePage, instanceOf<ViewSonePage>())
241         }
242 }
243
244 val baseInjector by lazy {
245         createInjector(
246                         Core::class.isProvidedByMock(),
247                         FreenetInterface::class.isProvidedByMock(),
248                         Template::class.isProvidedByMock(),
249                         WebInterface::class.isProvidedByDeepMock()
250         )!!
251 }