diff options
Diffstat (limited to 'server/tests')
-rw-r--r-- | server/tests/fixtures/peertube-plugin-test/main.js | 20 | ||||
-rw-r--r-- | server/tests/plugins/filter-hooks.ts | 54 |
2 files changed, 72 insertions, 2 deletions
diff --git a/server/tests/fixtures/peertube-plugin-test/main.js b/server/tests/fixtures/peertube-plugin-test/main.js index 9913d0846..dfcc874d4 100644 --- a/server/tests/fixtures/peertube-plugin-test/main.js +++ b/server/tests/fixtures/peertube-plugin-test/main.js | |||
@@ -210,6 +210,26 @@ async function register ({ registerHook, registerSetting, settingsManager, stora | |||
210 | return result | 210 | return result |
211 | } | 211 | } |
212 | }) | 212 | }) |
213 | |||
214 | registerHook({ | ||
215 | target: 'filter:html.embed.video.allowed.result', | ||
216 | handler: (result, params) => { | ||
217 | return { | ||
218 | allowed: false, | ||
219 | html: 'Lu Bu' | ||
220 | } | ||
221 | } | ||
222 | }) | ||
223 | |||
224 | registerHook({ | ||
225 | target: 'filter:html.embed.video-playlist.allowed.result', | ||
226 | handler: (result, params) => { | ||
227 | return { | ||
228 | allowed: false, | ||
229 | html: 'Diao Chan' | ||
230 | } | ||
231 | } | ||
232 | }) | ||
213 | } | 233 | } |
214 | 234 | ||
215 | async function unregister () { | 235 | async function unregister () { |
diff --git a/server/tests/plugins/filter-hooks.ts b/server/tests/plugins/filter-hooks.ts index 6996ae788..be47b20ba 100644 --- a/server/tests/plugins/filter-hooks.ts +++ b/server/tests/plugins/filter-hooks.ts | |||
@@ -3,10 +3,12 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { ServerConfig } from '@shared/models' | 5 | import { ServerConfig } from '@shared/models' |
6 | import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' | ||
6 | import { | 7 | import { |
7 | addVideoCommentReply, | 8 | addVideoCommentReply, |
8 | addVideoCommentThread, | 9 | addVideoCommentThread, |
9 | createLive, | 10 | createLive, |
11 | createVideoPlaylist, | ||
10 | doubleFollow, | 12 | doubleFollow, |
11 | getAccountVideos, | 13 | getAccountVideos, |
12 | getConfig, | 14 | getConfig, |
@@ -15,6 +17,7 @@ import { | |||
15 | getVideo, | 17 | getVideo, |
16 | getVideoChannelVideos, | 18 | getVideoChannelVideos, |
17 | getVideoCommentThreads, | 19 | getVideoCommentThreads, |
20 | getVideoPlaylist, | ||
18 | getVideosList, | 21 | getVideosList, |
19 | getVideosListPagination, | 22 | getVideosListPagination, |
20 | getVideoThreadComments, | 23 | getVideoThreadComments, |
@@ -32,9 +35,15 @@ import { | |||
32 | } from '../../../shared/extra-utils' | 35 | } from '../../../shared/extra-utils' |
33 | import { cleanupTests, flushAndRunMultipleServers, ServerInfo } from '../../../shared/extra-utils/server/servers' | 36 | import { cleanupTests, flushAndRunMultipleServers, ServerInfo } from '../../../shared/extra-utils/server/servers' |
34 | import { getGoodVideoUrl, getMyVideoImports, importVideo } from '../../../shared/extra-utils/videos/video-imports' | 37 | import { getGoodVideoUrl, getMyVideoImports, importVideo } from '../../../shared/extra-utils/videos/video-imports' |
35 | import { VideoDetails, VideoImport, VideoImportState, VideoPrivacy } from '../../../shared/models/videos' | 38 | import { |
39 | VideoDetails, | ||
40 | VideoImport, | ||
41 | VideoImportState, | ||
42 | VideoPlaylist, | ||
43 | VideoPlaylistPrivacy, | ||
44 | VideoPrivacy | ||
45 | } from '../../../shared/models/videos' | ||
36 | import { VideoCommentThreadTree } from '../../../shared/models/videos/video-comment.model' | 46 | import { VideoCommentThreadTree } from '../../../shared/models/videos/video-comment.model' |
37 | import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' | ||
38 | 47 | ||
39 | const expect = chai.expect | 48 | const expect = chai.expect |
40 | 49 | ||
@@ -418,6 +427,47 @@ describe('Test plugin filter hooks', function () { | |||
418 | }) | 427 | }) |
419 | }) | 428 | }) |
420 | 429 | ||
430 | describe('Embed filters', function () { | ||
431 | const embedVideos: VideoDetails[] = [] | ||
432 | const embedPlaylists: VideoPlaylist[] = [] | ||
433 | |||
434 | before(async function () { | ||
435 | this.timeout(60000) | ||
436 | |||
437 | await updateCustomSubConfig(servers[0].url, servers[0].accessToken, { | ||
438 | transcoding: { | ||
439 | enabled: false | ||
440 | } | ||
441 | }) | ||
442 | |||
443 | for (const name of [ 'bad embed', 'good embed' ]) { | ||
444 | { | ||
445 | const uuid = (await uploadVideoAndGetId({ server: servers[0], videoName: name })).uuid | ||
446 | const res = await getVideo(servers[0].url, uuid) | ||
447 | embedVideos.push(res.body) | ||
448 | } | ||
449 | |||
450 | { | ||
451 | const playlistAttrs = { displayName: name, videoChannelId: servers[0].videoChannel.id, privacy: VideoPlaylistPrivacy.PUBLIC } | ||
452 | const res = await createVideoPlaylist({ url: servers[0].url, token: servers[0].accessToken, playlistAttrs }) | ||
453 | |||
454 | const resPlaylist = await getVideoPlaylist(servers[0].url, res.body.videoPlaylist.id) | ||
455 | embedPlaylists.push(resPlaylist.body) | ||
456 | } | ||
457 | } | ||
458 | }) | ||
459 | |||
460 | it('Should run filter:html.embed.video.allowed.result', async function () { | ||
461 | const res = await makeRawRequest(servers[0].url + embedVideos[0].embedPath, 200) | ||
462 | expect(res.text).to.equal('Lu Bu') | ||
463 | }) | ||
464 | |||
465 | it('Should run filter:html.embed.video-playlist.allowed.result', async function () { | ||
466 | const res = await makeRawRequest(servers[0].url + embedPlaylists[0].embedPath, 200) | ||
467 | expect(res.text).to.equal('Diao Chan') | ||
468 | }) | ||
469 | }) | ||
470 | |||
421 | after(async function () { | 471 | after(async function () { |
422 | await cleanupTests(servers) | 472 | await cleanupTests(servers) |
423 | }) | 473 | }) |