1 package net.pterodactylus.sone.web
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.page.*
11 import net.pterodactylus.sone.web.pages.*
12 import net.pterodactylus.util.template.Template
13 import org.hamcrest.Matcher
14 import org.hamcrest.MatcherAssert.assertThat
15 import org.hamcrest.Matchers
19 * Test for [AllPages].
23 private val injector by lazy {
24 baseInjector.createChildInjector(
25 PluginVersion::class.isProvidedByMock(),
26 PluginYear::class.isProvidedByMock(),
27 PluginHomepage::class.isProvidedByMock()
30 private val allPages by lazy { injector.getInstance<AllPages>() }
32 private inline fun <reified T> instanceOf(): Matcher<T> = Matchers.instanceOf<T>(T::class.java)
35 fun `about page can be injected`() {
36 assertThat(allPages.aboutPage, instanceOf<AboutPage>())
40 fun `bookmark page can be injected`() {
41 assertThat(allPages.bookmarkPage, instanceOf<BookmarkPage>())
45 fun `bookmarks page can be injected`() {
46 assertThat(allPages.bookmarksPage, instanceOf<BookmarksPage>())
50 fun `create album page can be injected`() {
51 assertThat(allPages.createAlbumPage, instanceOf<CreateAlbumPage>())
55 fun `create post page can be injected`() {
56 assertThat(allPages.createPostPage, instanceOf<CreatePostPage>())
60 fun `create reply page can be injected`() {
61 assertThat(allPages.createReplyPage, instanceOf<CreateReplyPage>())
65 fun `create sone page can be injected`() {
66 assertThat(allPages.createSonePage, instanceOf<CreateSonePage>())
70 fun `delete album page can be injected`() {
71 assertThat(allPages.deleteAlbumPage, instanceOf<DeleteAlbumPage>())
75 fun `delete image page can be injected`() {
76 assertThat(allPages.deleteImagePage, instanceOf<DeleteImagePage>())
80 fun `delete post page can be injected`() {
81 assertThat(allPages.deletePostPage, instanceOf<DeletePostPage>())
85 fun `delete profile field page can be injected`() {
86 assertThat(allPages.deleteProfileFieldPage, instanceOf<DeleteProfileFieldPage>())
90 fun `delete reply page can be injected`() {
91 assertThat(allPages.deleteReplyPage, instanceOf<DeleteReplyPage>())
95 fun `delete sone page can be injected`() {
96 assertThat(allPages.deleteSonePage, instanceOf<DeleteSonePage>())
100 fun `dismiss notification page can be injected`() {
101 assertThat(allPages.dismissNotificationPage, instanceOf<DismissNotificationPage>())
105 fun `distrust page can be injected`() {
106 assertThat(allPages.distrustPage, instanceOf<DistrustPage>())
110 fun `edit album page can be injected`() {
111 assertThat(allPages.editAlbumPage, instanceOf<EditAlbumPage>())
115 fun `edit image page can be injected`() {
116 assertThat(allPages.editImagePage, instanceOf<EditImagePage>())
120 fun `edit profile field page can be injected`() {
121 assertThat(allPages.editProfileFieldPage, instanceOf<EditProfileFieldPage>())
125 fun `edit profile page can be injected`() {
126 assertThat(allPages.editProfilePage, instanceOf<EditProfilePage>())
130 fun `follow sone page can be injected`() {
131 assertThat(allPages.followSonePage, instanceOf<FollowSonePage>())
135 fun `get image page can be injected`() {
136 assertThat(allPages.getImagePage, instanceOf<GetImagePage>())
140 fun `image browser page can be injected`() {
141 assertThat(allPages.imageBrowserPage, instanceOf<ImageBrowserPage>())
145 fun `index page can be injected`() {
146 assertThat(allPages.indexPage, instanceOf<IndexPage>())
150 fun `known sones page can be injected`() {
151 assertThat(allPages.knownSonesPage, instanceOf<KnownSonesPage>())
155 fun `like page can be injected`() {
156 assertThat(allPages.likePage, instanceOf<LikePage>())
160 fun `lock sone page can be injected`() {
161 assertThat(allPages.lockSonePage, instanceOf<LockSonePage>())
165 fun `login page can be injected`() {
166 assertThat(allPages.loginPage, instanceOf<LoginPage>())
170 fun `logout page can be injected`() {
171 assertThat(allPages.logoutPage, instanceOf<LogoutPage>())
175 fun `mark as known page can be injected`() {
176 assertThat(allPages.markAsKnownPage, instanceOf<MarkAsKnownPage>())
180 fun `new page can be injected`() {
181 assertThat(allPages.newPage, instanceOf<NewPage>())
185 fun `options page can be injected`() {
186 assertThat(allPages.optionsPage, instanceOf<OptionsPage>())
190 fun `rescue page can be injected`() {
191 assertThat(allPages.rescuePage, instanceOf<RescuePage>())
195 fun `search page can be injected`() {
196 assertThat(allPages.searchPage, instanceOf<SearchPage>())
200 fun `trust page can be injected`() {
201 assertThat(allPages.trustPage, instanceOf<TrustPage>())
205 fun `unbookmark page can be injected`() {
206 assertThat(allPages.unbookmarkPage, instanceOf<UnbookmarkPage>())
210 fun `unfollow sone page can be injected`() {
211 assertThat(allPages.unfollowSonePage, instanceOf<UnfollowSonePage>())
215 fun `unlike page can be injected`() {
216 assertThat(allPages.unlikePage, instanceOf<UnlikePage>())
220 fun `unlock sone page can be injected`() {
221 assertThat(allPages.unlockSonePage, instanceOf<UnlockSonePage>())
225 fun `untrust page can be injected`() {
226 assertThat(allPages.untrustPage, instanceOf<UntrustPage>())
230 fun `upload image page can be injected`() {
231 assertThat(allPages.uploadImagePage, instanceOf<UploadImagePage>())
235 fun `view post page can be injected`() {
236 assertThat(allPages.viewPostPage, instanceOf<ViewPostPage>())
240 fun `view sone page can be injected`() {
241 assertThat(allPages.viewSonePage, instanceOf<ViewSonePage>())
245 val baseInjector by lazy {
247 Core::class.isProvidedByMock(),
248 FreenetInterface::class.isProvidedByMock(),
249 Template::class.isProvidedByMock(),
250 WebInterface::class.isProvidedByDeepMock(),
251 TemplateRenderer::class.isProvidedByMock()