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.pages.*
11 import net.pterodactylus.util.template.Template
12 import org.hamcrest.Matcher
13 import org.hamcrest.MatcherAssert.assertThat
14 import org.hamcrest.Matchers
18 * Test for [AllPages].
22 private val injector by lazy {
23 baseInjector.createChildInjector(
24 PluginVersion::class.isProvidedByMock(),
25 PluginYear::class.isProvidedByMock(),
26 PluginHomepage::class.isProvidedByMock()
29 private val allPages by lazy { injector.getInstance<AllPages>() }
31 private inline fun <reified T> instanceOf(): Matcher<T> = Matchers.instanceOf<T>(T::class.java)
34 fun `about page can be injected`() {
35 assertThat(allPages.aboutPage, instanceOf<AboutPage>())
39 fun `bookmark page can be injected`() {
40 assertThat(allPages.bookmarkPage, instanceOf<BookmarkPage>())
44 fun `bookmarks page can be injected`() {
45 assertThat(allPages.bookmarksPage, instanceOf<BookmarksPage>())
49 fun `create album page can be injected`() {
50 assertThat(allPages.createAlbumPage, instanceOf<CreateAlbumPage>())
54 fun `create post page can be injected`() {
55 assertThat(allPages.createPostPage, instanceOf<CreatePostPage>())
59 fun `create reply page can be injected`() {
60 assertThat(allPages.createReplyPage, instanceOf<CreateReplyPage>())
64 fun `create sone page can be injected`() {
65 assertThat(allPages.createSonePage, instanceOf<CreateSonePage>())
69 fun `delete album page can be injected`() {
70 assertThat(allPages.deleteAlbumPage, instanceOf<DeleteAlbumPage>())
74 fun `delete image page can be injected`() {
75 assertThat(allPages.deleteImagePage, instanceOf<DeleteImagePage>())
79 fun `delete post page can be injected`() {
80 assertThat(allPages.deletePostPage, instanceOf<DeletePostPage>())
84 fun `delete profile field page can be injected`() {
85 assertThat(allPages.deleteProfileFieldPage, instanceOf<DeleteProfileFieldPage>())
89 fun `delete reply page can be injected`() {
90 assertThat(allPages.deleteReplyPage, instanceOf<DeleteReplyPage>())
94 fun `delete sone page can be injected`() {
95 assertThat(allPages.deleteSonePage, instanceOf<DeleteSonePage>())
99 fun `dismiss notification page can be injected`() {
100 assertThat(allPages.dismissNotificationPage, instanceOf<DismissNotificationPage>())
104 fun `distrust page can be injected`() {
105 assertThat(allPages.distrustPage, instanceOf<DistrustPage>())
109 fun `edit album page can be injected`() {
110 assertThat(allPages.editAlbumPage, instanceOf<EditAlbumPage>())
114 fun `edit image page can be injected`() {
115 assertThat(allPages.editImagePage, instanceOf<EditImagePage>())
119 fun `edit profile field page can be injected`() {
120 assertThat(allPages.editProfileFieldPage, instanceOf<EditProfileFieldPage>())
124 fun `edit profile page can be injected`() {
125 assertThat(allPages.editProfilePage, instanceOf<EditProfilePage>())
129 fun `follow sone page can be injected`() {
130 assertThat(allPages.followSonePage, instanceOf<FollowSonePage>())
134 fun `get image page can be injected`() {
135 assertThat(allPages.getImagePage, instanceOf<GetImagePage>())
139 fun `image browser page can be injected`() {
140 assertThat(allPages.imageBrowserPage, instanceOf<ImageBrowserPage>())
144 fun `index page can be injected`() {
145 assertThat(allPages.indexPage, instanceOf<IndexPage>())
149 fun `known sones page can be injected`() {
150 assertThat(allPages.knownSonesPage, instanceOf<KnownSonesPage>())
154 fun `like page can be injected`() {
155 assertThat(allPages.likePage, instanceOf<LikePage>())
159 fun `lock sone page can be injected`() {
160 assertThat(allPages.lockSonePage, instanceOf<LockSonePage>())
164 fun `login page can be injected`() {
165 assertThat(allPages.loginPage, instanceOf<LoginPage>())
169 fun `logout page can be injected`() {
170 assertThat(allPages.logoutPage, instanceOf<LogoutPage>())
174 fun `mark as known page can be injected`() {
175 assertThat(allPages.markAsKnownPage, instanceOf<MarkAsKnownPage>())
179 fun `new page can be injected`() {
180 assertThat(allPages.newPage, instanceOf<NewPage>())
184 fun `options page can be injected`() {
185 assertThat(allPages.optionsPage, instanceOf<OptionsPage>())
189 fun `rescue page can be injected`() {
190 assertThat(allPages.rescuePage, instanceOf<RescuePage>())
194 fun `search page can be injected`() {
195 assertThat(allPages.searchPage, instanceOf<SearchPage>())
199 fun `trust page can be injected`() {
200 assertThat(allPages.trustPage, instanceOf<TrustPage>())
204 fun `unbookmark page can be injected`() {
205 assertThat(allPages.unbookmarkPage, instanceOf<UnbookmarkPage>())
209 fun `unfollow sone page can be injected`() {
210 assertThat(allPages.unfollowSonePage, instanceOf<UnfollowSonePage>())
214 fun `unlike page can be injected`() {
215 assertThat(allPages.unlikePage, instanceOf<UnlikePage>())
219 fun `unlock sone page can be injected`() {
220 assertThat(allPages.unlockSonePage, instanceOf<UnlockSonePage>())
224 fun `untrust page can be injected`() {
225 assertThat(allPages.untrustPage, instanceOf<UntrustPage>())
229 fun `upload image page can be injected`() {
230 assertThat(allPages.uploadImagePage, instanceOf<UploadImagePage>())
234 fun `view post page can be injected`() {
235 assertThat(allPages.viewPostPage, instanceOf<ViewPostPage>())
239 fun `view sone page can be injected`() {
240 assertThat(allPages.viewSonePage, instanceOf<ViewSonePage>())
244 val baseInjector by lazy {
246 Core::class.isProvidedByMock(),
247 FreenetInterface::class.isProvidedByMock(),
248 Template::class.isProvidedByMock(),
249 WebInterface::class.isProvidedByDeepMock()