aboutsummaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/tests/api/activitypub/helpers.ts37
-rw-r--r--server/tests/api/activitypub/security.ts7
-rw-r--r--server/tests/api/check-params/live.ts12
-rw-r--r--server/tests/api/check-params/users.ts10
-rw-r--r--server/tests/api/check-params/video-captions.ts11
-rw-r--r--server/tests/api/check-params/video-channels.ts14
-rw-r--r--server/tests/api/check-params/video-imports.ts18
-rw-r--r--server/tests/api/server/contact-form.ts4
-rw-r--r--server/tests/api/videos/multiple-servers.ts6
-rw-r--r--server/tests/fixtures/ap-json/mastodon/bad-body-http-signature.json (renamed from server/tests/api/activitypub/json/mastodon/bad-body-http-signature.json)0
-rw-r--r--server/tests/fixtures/ap-json/mastodon/bad-http-signature.json (renamed from server/tests/api/activitypub/json/mastodon/bad-http-signature.json)0
-rw-r--r--server/tests/fixtures/ap-json/mastodon/bad-public-key.json (renamed from server/tests/api/activitypub/json/mastodon/bad-public-key.json)0
-rw-r--r--server/tests/fixtures/ap-json/mastodon/create-bad-signature.json (renamed from server/tests/api/activitypub/json/mastodon/create-bad-signature.json)0
-rw-r--r--server/tests/fixtures/ap-json/mastodon/create.json (renamed from server/tests/api/activitypub/json/mastodon/create.json)0
-rw-r--r--server/tests/fixtures/ap-json/mastodon/http-signature.json (renamed from server/tests/api/activitypub/json/mastodon/http-signature.json)0
-rw-r--r--server/tests/fixtures/ap-json/mastodon/public-key.json (renamed from server/tests/api/activitypub/json/mastodon/public-key.json)0
-rw-r--r--server/tests/fixtures/ap-json/peertube/announce-without-context.json (renamed from server/tests/api/activitypub/json/peertube/announce-without-context.json)0
-rw-r--r--server/tests/fixtures/ap-json/peertube/invalid-keys.json (renamed from server/tests/api/activitypub/json/peertube/invalid-keys.json)0
-rw-r--r--server/tests/fixtures/ap-json/peertube/keys.json (renamed from server/tests/api/activitypub/json/peertube/keys.json)0
-rw-r--r--server/tests/plugins/filter-hooks.ts4
-rw-r--r--server/tests/register.ts3
21 files changed, 67 insertions, 59 deletions
diff --git a/server/tests/api/activitypub/helpers.ts b/server/tests/api/activitypub/helpers.ts
index 60d95b823..66d7631b7 100644
--- a/server/tests/api/activitypub/helpers.ts
+++ b/server/tests/api/activitypub/helpers.ts
@@ -6,13 +6,14 @@ import { buildRequestStub } from '../../../../shared/extra-utils/miscs/stubs'
6import { isHTTPSignatureVerified, isJsonLDSignatureVerified, parseHTTPSignature } from '../../../helpers/peertube-crypto' 6import { isHTTPSignatureVerified, isJsonLDSignatureVerified, parseHTTPSignature } from '../../../helpers/peertube-crypto'
7import { cloneDeep } from 'lodash' 7import { cloneDeep } from 'lodash'
8import { buildSignedActivity } from '../../../helpers/activitypub' 8import { buildSignedActivity } from '../../../helpers/activitypub'
9import { buildAbsoluteFixturePath } from '@shared/extra-utils'
9 10
10describe('Test activity pub helpers', function () { 11describe('Test activity pub helpers', function () {
11 describe('When checking the Linked Signature', function () { 12 describe('When checking the Linked Signature', function () {
12 13
13 it('Should fail with an invalid Mastodon signature', async function () { 14 it('Should fail with an invalid Mastodon signature', async function () {
14 const body = require('./json/mastodon/create-bad-signature.json') 15 const body = require(buildAbsoluteFixturePath('./ap-json/mastodon/create-bad-signature.json'))
15 const publicKey = require('./json/mastodon/public-key.json').publicKey 16 const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
16 const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' } 17 const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' }
17 18
18 const result = await isJsonLDSignatureVerified(fromActor as any, body) 19 const result = await isJsonLDSignatureVerified(fromActor as any, body)
@@ -21,8 +22,8 @@ describe('Test activity pub helpers', function () {
21 }) 22 })
22 23
23 it('Should fail with an invalid public key', async function () { 24 it('Should fail with an invalid public key', async function () {
24 const body = require('./json/mastodon/create.json') 25 const body = require(buildAbsoluteFixturePath('./ap-json/mastodon/create.json'))
25 const publicKey = require('./json/mastodon/bad-public-key.json').publicKey 26 const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/bad-public-key.json')).publicKey
26 const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' } 27 const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' }
27 28
28 const result = await isJsonLDSignatureVerified(fromActor as any, body) 29 const result = await isJsonLDSignatureVerified(fromActor as any, body)
@@ -31,8 +32,8 @@ describe('Test activity pub helpers', function () {
31 }) 32 })
32 33
33 it('Should succeed with a valid Mastodon signature', async function () { 34 it('Should succeed with a valid Mastodon signature', async function () {
34 const body = require('./json/mastodon/create.json') 35 const body = require(buildAbsoluteFixturePath('./ap-json/mastodon/create.json'))
35 const publicKey = require('./json/mastodon/public-key.json').publicKey 36 const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
36 const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' } 37 const fromActor = { publicKey, url: 'http://localhost:9002/accounts/peertube' }
37 38
38 const result = await isJsonLDSignatureVerified(fromActor as any, body) 39 const result = await isJsonLDSignatureVerified(fromActor as any, body)
@@ -41,8 +42,8 @@ describe('Test activity pub helpers', function () {
41 }) 42 })
42 43
43 it('Should fail with an invalid PeerTube signature', async function () { 44 it('Should fail with an invalid PeerTube signature', async function () {
44 const keys = require('./json/peertube/invalid-keys.json') 45 const keys = require(buildAbsoluteFixturePath('./ap-json/peertube/invalid-keys.json'))
45 const body = require('./json/peertube/announce-without-context.json') 46 const body = require(buildAbsoluteFixturePath('./ap-json/peertube/announce-without-context.json'))
46 47
47 const actorSignature = { url: 'http://localhost:9002/accounts/peertube', privateKey: keys.privateKey } 48 const actorSignature = { url: 'http://localhost:9002/accounts/peertube', privateKey: keys.privateKey }
48 const signedBody = await buildSignedActivity(actorSignature as any, body) 49 const signedBody = await buildSignedActivity(actorSignature as any, body)
@@ -54,8 +55,8 @@ describe('Test activity pub helpers', function () {
54 }) 55 })
55 56
56 it('Should succeed with a valid PeerTube signature', async function () { 57 it('Should succeed with a valid PeerTube signature', async function () {
57 const keys = require('./json/peertube/keys.json') 58 const keys = require(buildAbsoluteFixturePath('./ap-json/peertube/keys.json'))
58 const body = require('./json/peertube/announce-without-context.json') 59 const body = require(buildAbsoluteFixturePath('./ap-json/peertube/announce-without-context.json'))
59 60
60 const actorSignature = { url: 'http://localhost:9002/accounts/peertube', privateKey: keys.privateKey } 61 const actorSignature = { url: 'http://localhost:9002/accounts/peertube', privateKey: keys.privateKey }
61 const signedBody = await buildSignedActivity(actorSignature as any, body) 62 const signedBody = await buildSignedActivity(actorSignature as any, body)
@@ -73,12 +74,12 @@ describe('Test activity pub helpers', function () {
73 req.method = 'POST' 74 req.method = 'POST'
74 req.url = '/accounts/ronan/inbox' 75 req.url = '/accounts/ronan/inbox'
75 76
76 const mastodonObject = cloneDeep(require('./json/mastodon/bad-http-signature.json')) 77 const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/bad-http-signature.json')))
77 req.body = mastodonObject.body 78 req.body = mastodonObject.body
78 req.headers = mastodonObject.headers 79 req.headers = mastodonObject.headers
79 80
80 const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10) 81 const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10)
81 const publicKey = require('./json/mastodon/public-key.json').publicKey 82 const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
82 83
83 const actor = { publicKey } 84 const actor = { publicKey }
84 const verified = isHTTPSignatureVerified(parsed, actor as any) 85 const verified = isHTTPSignatureVerified(parsed, actor as any)
@@ -91,12 +92,12 @@ describe('Test activity pub helpers', function () {
91 req.method = 'POST' 92 req.method = 'POST'
92 req.url = '/accounts/ronan/inbox' 93 req.url = '/accounts/ronan/inbox'
93 94
94 const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json')) 95 const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
95 req.body = mastodonObject.body 96 req.body = mastodonObject.body
96 req.headers = mastodonObject.headers 97 req.headers = mastodonObject.headers
97 98
98 const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10) 99 const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10)
99 const publicKey = require('./json/mastodon/bad-public-key.json').publicKey 100 const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/bad-public-key.json')).publicKey
100 101
101 const actor = { publicKey } 102 const actor = { publicKey }
102 const verified = isHTTPSignatureVerified(parsed, actor as any) 103 const verified = isHTTPSignatureVerified(parsed, actor as any)
@@ -109,7 +110,7 @@ describe('Test activity pub helpers', function () {
109 req.method = 'POST' 110 req.method = 'POST'
110 req.url = '/accounts/ronan/inbox' 111 req.url = '/accounts/ronan/inbox'
111 112
112 const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json')) 113 const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
113 req.body = mastodonObject.body 114 req.body = mastodonObject.body
114 req.headers = mastodonObject.headers 115 req.headers = mastodonObject.headers
115 116
@@ -128,7 +129,7 @@ describe('Test activity pub helpers', function () {
128 req.method = 'POST' 129 req.method = 'POST'
129 req.url = '/accounts/ronan/inbox' 130 req.url = '/accounts/ronan/inbox'
130 131
131 const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json')) 132 const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
132 req.body = mastodonObject.body 133 req.body = mastodonObject.body
133 req.headers = mastodonObject.headers 134 req.headers = mastodonObject.headers
134 req.headers = 'Signature ' + mastodonObject.headers 135 req.headers = 'Signature ' + mastodonObject.headers
@@ -148,12 +149,12 @@ describe('Test activity pub helpers', function () {
148 req.method = 'POST' 149 req.method = 'POST'
149 req.url = '/accounts/ronan/inbox' 150 req.url = '/accounts/ronan/inbox'
150 151
151 const mastodonObject = cloneDeep(require('./json/mastodon/http-signature.json')) 152 const mastodonObject = cloneDeep(require(buildAbsoluteFixturePath('./ap-json/mastodon/http-signature.json')))
152 req.body = mastodonObject.body 153 req.body = mastodonObject.body
153 req.headers = mastodonObject.headers 154 req.headers = mastodonObject.headers
154 155
155 const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10) 156 const parsed = parseHTTPSignature(req, 3600 * 1000 * 365 * 10)
156 const publicKey = require('./json/mastodon/public-key.json').publicKey 157 const publicKey = require(buildAbsoluteFixturePath('./ap-json/mastodon/public-key.json')).publicKey
157 158
158 const actor = { publicKey } 159 const actor = { publicKey }
159 const verified = isHTTPSignatureVerified(parsed, actor as any) 160 const verified = isHTTPSignatureVerified(parsed, actor as any)
diff --git a/server/tests/api/activitypub/security.ts b/server/tests/api/activitypub/security.ts
index 364b53e0f..61db272f6 100644
--- a/server/tests/api/activitypub/security.ts
+++ b/server/tests/api/activitypub/security.ts
@@ -5,6 +5,7 @@ import * as chai from 'chai'
5import { buildDigest } from '@server/helpers/peertube-crypto' 5import { buildDigest } from '@server/helpers/peertube-crypto'
6import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' 6import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
7import { 7import {
8 buildAbsoluteFixturePath,
8 cleanupTests, 9 cleanupTests,
9 closeAllSequelize, 10 closeAllSequelize,
10 flushAndRunMultipleServers, 11 flushAndRunMultipleServers,
@@ -40,7 +41,7 @@ function setUpdatedAtOfServer (onServer: ServerInfo, ofServer: ServerInfo, updat
40} 41}
41 42
42function getAnnounceWithoutContext (server: ServerInfo) { 43function getAnnounceWithoutContext (server: ServerInfo) {
43 const json = require('./json/peertube/announce-without-context.json') 44 const json = require(buildAbsoluteFixturePath('./ap-json/peertube/announce-without-context.json'))
44 const result: typeof json = {} 45 const result: typeof json = {}
45 46
46 for (const key of Object.keys(json)) { 47 for (const key of Object.keys(json)) {
@@ -58,8 +59,8 @@ describe('Test ActivityPub security', function () {
58 let servers: ServerInfo[] 59 let servers: ServerInfo[]
59 let url: string 60 let url: string
60 61
61 const keys = require('./json/peertube/keys.json') 62 const keys = require(buildAbsoluteFixturePath('./ap-json/peertube/keys.json'))
62 const invalidKeys = require('./json/peertube/invalid-keys.json') 63 const invalidKeys = require(buildAbsoluteFixturePath('./ap-json/peertube/invalid-keys.json'))
63 const baseHttpSignature = () => ({ 64 const baseHttpSignature = () => ({
64 algorithm: HTTP_SIGNATURE.ALGORITHM, 65 algorithm: HTTP_SIGNATURE.ALGORITHM,
65 authorizationHeaderName: HTTP_SIGNATURE.HEADER_NAME, 66 authorizationHeaderName: HTTP_SIGNATURE.HEADER_NAME,
diff --git a/server/tests/api/check-params/live.ts b/server/tests/api/check-params/live.ts
index c171b1f81..32233c9da 100644
--- a/server/tests/api/check-params/live.ts
+++ b/server/tests/api/check-params/live.ts
@@ -2,9 +2,10 @@
2 2
3import 'mocha' 3import 'mocha'
4import { omit } from 'lodash' 4import { omit } from 'lodash'
5import { join } from 'path'
6import { LiveVideo, VideoPrivacy } from '@shared/models' 5import { LiveVideo, VideoPrivacy } from '@shared/models'
6import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
7import { 7import {
8 buildAbsoluteFixturePath,
8 cleanupTests, 9 cleanupTests,
9 createUser, 10 createUser,
10 flushAndRunServer, 11 flushAndRunServer,
@@ -24,7 +25,6 @@ import {
24 userLogin, 25 userLogin,
25 waitUntilLivePublished 26 waitUntilLivePublished
26} from '../../../../shared/extra-utils' 27} from '../../../../shared/extra-utils'
27import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
28 28
29describe('Test video lives API validator', function () { 29describe('Test video lives API validator', function () {
30 const path = '/api/v1/videos/live' 30 const path = '/api/v1/videos/live'
@@ -180,7 +180,7 @@ describe('Test video lives API validator', function () {
180 it('Should fail with an incorrect thumbnail file', async function () { 180 it('Should fail with an incorrect thumbnail file', async function () {
181 const fields = baseCorrectParams 181 const fields = baseCorrectParams
182 const attaches = { 182 const attaches = {
183 thumbnailfile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') 183 thumbnailfile: buildAbsoluteFixturePath('video_short.mp4')
184 } 184 }
185 185
186 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 186 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -189,7 +189,7 @@ describe('Test video lives API validator', function () {
189 it('Should fail with a big thumbnail file', async function () { 189 it('Should fail with a big thumbnail file', async function () {
190 const fields = baseCorrectParams 190 const fields = baseCorrectParams
191 const attaches = { 191 const attaches = {
192 thumbnailfile: join(__dirname, '..', '..', 'fixtures', 'preview-big.png') 192 thumbnailfile: buildAbsoluteFixturePath('preview-big.png')
193 } 193 }
194 194
195 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 195 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -198,7 +198,7 @@ describe('Test video lives API validator', function () {
198 it('Should fail with an incorrect preview file', async function () { 198 it('Should fail with an incorrect preview file', async function () {
199 const fields = baseCorrectParams 199 const fields = baseCorrectParams
200 const attaches = { 200 const attaches = {
201 previewfile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') 201 previewfile: buildAbsoluteFixturePath('video_short.mp4')
202 } 202 }
203 203
204 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 204 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -207,7 +207,7 @@ describe('Test video lives API validator', function () {
207 it('Should fail with a big preview file', async function () { 207 it('Should fail with a big preview file', async function () {
208 const fields = baseCorrectParams 208 const fields = baseCorrectParams
209 const attaches = { 209 const attaches = {
210 previewfile: join(__dirname, '..', '..', 'fixtures', 'preview-big.png') 210 previewfile: buildAbsoluteFixturePath('preview-big.png')
211 } 211 }
212 212
213 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 213 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
diff --git a/server/tests/api/check-params/users.ts b/server/tests/api/check-params/users.ts
index dcff0d52b..36482ee17 100644
--- a/server/tests/api/check-params/users.ts
+++ b/server/tests/api/check-params/users.ts
@@ -2,12 +2,12 @@
2 2
3import 'mocha' 3import 'mocha'
4import { omit } from 'lodash' 4import { omit } from 'lodash'
5import { join } from 'path'
6import { User, UserRole } from '../../../../shared' 5import { User, UserRole } from '../../../../shared'
7import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' 6import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
8import { 7import {
9 addVideoChannel, 8 addVideoChannel,
10 blockUser, 9 blockUser,
10 buildAbsoluteFixturePath,
11 cleanupTests, 11 cleanupTests,
12 createUser, 12 createUser,
13 deleteMe, 13 deleteMe,
@@ -600,7 +600,7 @@ describe('Test users API validators', function () {
600 it('Should fail without an incorrect input file', async function () { 600 it('Should fail without an incorrect input file', async function () {
601 const fields = {} 601 const fields = {}
602 const attaches = { 602 const attaches = {
603 avatarfile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') 603 avatarfile: buildAbsoluteFixturePath('video_short.mp4')
604 } 604 }
605 await makeUploadRequest({ url: server.url, path: path + '/me/avatar/pick', token: server.accessToken, fields, attaches }) 605 await makeUploadRequest({ url: server.url, path: path + '/me/avatar/pick', token: server.accessToken, fields, attaches })
606 }) 606 })
@@ -608,7 +608,7 @@ describe('Test users API validators', function () {
608 it('Should fail with a big file', async function () { 608 it('Should fail with a big file', async function () {
609 const fields = {} 609 const fields = {}
610 const attaches = { 610 const attaches = {
611 avatarfile: join(__dirname, '..', '..', 'fixtures', 'avatar-big.png') 611 avatarfile: buildAbsoluteFixturePath('avatar-big.png')
612 } 612 }
613 await makeUploadRequest({ url: server.url, path: path + '/me/avatar/pick', token: server.accessToken, fields, attaches }) 613 await makeUploadRequest({ url: server.url, path: path + '/me/avatar/pick', token: server.accessToken, fields, attaches })
614 }) 614 })
@@ -616,7 +616,7 @@ describe('Test users API validators', function () {
616 it('Should fail with an unauthenticated user', async function () { 616 it('Should fail with an unauthenticated user', async function () {
617 const fields = {} 617 const fields = {}
618 const attaches = { 618 const attaches = {
619 avatarfile: join(__dirname, '..', '..', 'fixtures', 'avatar.png') 619 avatarfile: buildAbsoluteFixturePath('avatar.png')
620 } 620 }
621 await makeUploadRequest({ 621 await makeUploadRequest({
622 url: server.url, 622 url: server.url,
@@ -630,7 +630,7 @@ describe('Test users API validators', function () {
630 it('Should succeed with the correct params', async function () { 630 it('Should succeed with the correct params', async function () {
631 const fields = {} 631 const fields = {}
632 const attaches = { 632 const attaches = {
633 avatarfile: join(__dirname, '..', '..', 'fixtures', 'avatar.png') 633 avatarfile: buildAbsoluteFixturePath('avatar.png')
634 } 634 }
635 await makeUploadRequest({ 635 await makeUploadRequest({
636 url: server.url, 636 url: server.url,
diff --git a/server/tests/api/check-params/video-captions.ts b/server/tests/api/check-params/video-captions.ts
index 2f049c03d..1ce2202d2 100644
--- a/server/tests/api/check-params/video-captions.ts
+++ b/server/tests/api/check-params/video-captions.ts
@@ -1,7 +1,10 @@
1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ 1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
2 2
3import 'mocha' 3import 'mocha'
4
5import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
4import { 6import {
7 buildAbsoluteFixturePath,
5 cleanupTests, 8 cleanupTests,
6 createUser, 9 createUser,
7 flushAndRunServer, 10 flushAndRunServer,
@@ -13,9 +16,7 @@ import {
13 uploadVideo, 16 uploadVideo,
14 userLogin 17 userLogin
15} from '../../../../shared/extra-utils' 18} from '../../../../shared/extra-utils'
16import { join } from 'path'
17import { createVideoCaption } from '../../../../shared/extra-utils/videos/video-captions' 19import { createVideoCaption } from '../../../../shared/extra-utils/videos/video-captions'
18import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
19 20
20describe('Test video captions API validator', function () { 21describe('Test video captions API validator', function () {
21 const path = '/api/v1/videos/' 22 const path = '/api/v1/videos/'
@@ -51,7 +52,7 @@ describe('Test video captions API validator', function () {
51 describe('When adding video caption', function () { 52 describe('When adding video caption', function () {
52 const fields = { } 53 const fields = { }
53 const attaches = { 54 const attaches = {
54 captionfile: join(__dirname, '..', '..', 'fixtures', 'subtitle-good1.vtt') 55 captionfile: buildAbsoluteFixturePath('subtitle-good1.vtt')
55 } 56 }
56 57
57 it('Should fail without a valid uuid', async function () { 58 it('Should fail without a valid uuid', async function () {
@@ -129,7 +130,7 @@ describe('Test video captions API validator', function () {
129 // We accept any file now 130 // We accept any file now
130 // it('Should fail with an invalid captionfile extension', async function () { 131 // it('Should fail with an invalid captionfile extension', async function () {
131 // const attaches = { 132 // const attaches = {
132 // 'captionfile': join(__dirname, '..', '..', 'fixtures', 'subtitle-bad.txt') 133 // 'captionfile': buildAbsoluteFixturePath('subtitle-bad.txt')
133 // } 134 // }
134 // 135 //
135 // const captionPath = path + videoUUID + '/captions/fr' 136 // const captionPath = path + videoUUID + '/captions/fr'
@@ -171,7 +172,7 @@ describe('Test video captions API validator', function () {
171 // We don't check the file validity yet 172 // We don't check the file validity yet
172 // it('Should fail with an invalid captionfile srt', async function () { 173 // it('Should fail with an invalid captionfile srt', async function () {
173 // const attaches = { 174 // const attaches = {
174 // 'captionfile': join(__dirname, '..', '..', 'fixtures', 'subtitle-bad.srt') 175 // 'captionfile': buildAbsoluteFixturePath('subtitle-bad.srt')
175 // } 176 // }
176 // 177 //
177 // const captionPath = path + videoUUID + '/captions/fr' 178 // const captionPath = path + videoUUID + '/captions/fr'
diff --git a/server/tests/api/check-params/video-channels.ts b/server/tests/api/check-params/video-channels.ts
index bc2e6192e..5c02afd31 100644
--- a/server/tests/api/check-params/video-channels.ts
+++ b/server/tests/api/check-params/video-channels.ts
@@ -1,9 +1,11 @@
1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ 1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
2 2
3import 'mocha'
3import * as chai from 'chai' 4import * as chai from 'chai'
4import { omit } from 'lodash' 5import { omit } from 'lodash'
5import 'mocha' 6import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
6import { 7import {
8 buildAbsoluteFixturePath,
7 cleanupTests, 9 cleanupTests,
8 createUser, 10 createUser,
9 deleteVideoChannel, 11 deleteVideoChannel,
@@ -23,9 +25,7 @@ import {
23 checkBadSortPagination, 25 checkBadSortPagination,
24 checkBadStartPagination 26 checkBadStartPagination
25} from '../../../../shared/extra-utils/requests/check-api-params' 27} from '../../../../shared/extra-utils/requests/check-api-params'
26import { join } from 'path'
27import { VideoChannelUpdate } from '../../../../shared/models/videos' 28import { VideoChannelUpdate } from '../../../../shared/models/videos'
28import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
29 29
30const expect = chai.expect 30const expect = chai.expect
31 31
@@ -246,7 +246,7 @@ describe('Test video channels API validator', function () {
246 for (const type of types) { 246 for (const type of types) {
247 const fields = {} 247 const fields = {}
248 const attaches = { 248 const attaches = {
249 [type + 'file']: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') 249 [type + 'file']: buildAbsoluteFixturePath('video_short.mp4')
250 } 250 }
251 251
252 await makeUploadRequest({ url: server.url, path: `${path}/${type}/pick`, token: server.accessToken, fields, attaches }) 252 await makeUploadRequest({ url: server.url, path: `${path}/${type}/pick`, token: server.accessToken, fields, attaches })
@@ -257,7 +257,7 @@ describe('Test video channels API validator', function () {
257 for (const type of types) { 257 for (const type of types) {
258 const fields = {} 258 const fields = {}
259 const attaches = { 259 const attaches = {
260 [type + 'file']: join(__dirname, '..', '..', 'fixtures', 'avatar-big.png') 260 [type + 'file']: buildAbsoluteFixturePath('avatar-big.png')
261 } 261 }
262 await makeUploadRequest({ url: server.url, path: `${path}/${type}/pick`, token: server.accessToken, fields, attaches }) 262 await makeUploadRequest({ url: server.url, path: `${path}/${type}/pick`, token: server.accessToken, fields, attaches })
263 } 263 }
@@ -267,7 +267,7 @@ describe('Test video channels API validator', function () {
267 for (const type of types) { 267 for (const type of types) {
268 const fields = {} 268 const fields = {}
269 const attaches = { 269 const attaches = {
270 [type + 'file']: join(__dirname, '..', '..', 'fixtures', 'avatar.png') 270 [type + 'file']: buildAbsoluteFixturePath('avatar.png')
271 } 271 }
272 await makeUploadRequest({ 272 await makeUploadRequest({
273 url: server.url, 273 url: server.url,
@@ -283,7 +283,7 @@ describe('Test video channels API validator', function () {
283 for (const type of types) { 283 for (const type of types) {
284 const fields = {} 284 const fields = {}
285 const attaches = { 285 const attaches = {
286 [type + 'file']: join(__dirname, '..', '..', 'fixtures', 'avatar.png') 286 [type + 'file']: buildAbsoluteFixturePath('avatar.png')
287 } 287 }
288 await makeUploadRequest({ 288 await makeUploadRequest({
289 url: server.url, 289 url: server.url,
diff --git a/server/tests/api/check-params/video-imports.ts b/server/tests/api/check-params/video-imports.ts
index 6de6b40c8..a27b624d0 100644
--- a/server/tests/api/check-params/video-imports.ts
+++ b/server/tests/api/check-params/video-imports.ts
@@ -2,8 +2,9 @@
2 2
3import 'mocha' 3import 'mocha'
4import { omit } from 'lodash' 4import { omit } from 'lodash'
5import { join } from 'path' 5import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
6import { 6import {
7 buildAbsoluteFixturePath,
7 cleanupTests, 8 cleanupTests,
8 createUser, 9 createUser,
9 flushAndRunServer, 10 flushAndRunServer,
@@ -22,9 +23,8 @@ import {
22 checkBadSortPagination, 23 checkBadSortPagination,
23 checkBadStartPagination 24 checkBadStartPagination
24} from '../../../../shared/extra-utils/requests/check-api-params' 25} from '../../../../shared/extra-utils/requests/check-api-params'
25import { getMagnetURI, getGoodVideoUrl } from '../../../../shared/extra-utils/videos/video-imports' 26import { getGoodVideoUrl, getMagnetURI } from '../../../../shared/extra-utils/videos/video-imports'
26import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum' 27import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum'
27import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
28 28
29describe('Test video imports API validator', function () { 29describe('Test video imports API validator', function () {
30 const path = '/api/v1/videos/imports' 30 const path = '/api/v1/videos/imports'
@@ -201,7 +201,7 @@ describe('Test video imports API validator', function () {
201 it('Should fail with an incorrect thumbnail file', async function () { 201 it('Should fail with an incorrect thumbnail file', async function () {
202 const fields = baseCorrectParams 202 const fields = baseCorrectParams
203 const attaches = { 203 const attaches = {
204 thumbnailfile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') 204 thumbnailfile: buildAbsoluteFixturePath('video_short.mp4')
205 } 205 }
206 206
207 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 207 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -210,7 +210,7 @@ describe('Test video imports API validator', function () {
210 it('Should fail with a big thumbnail file', async function () { 210 it('Should fail with a big thumbnail file', async function () {
211 const fields = baseCorrectParams 211 const fields = baseCorrectParams
212 const attaches = { 212 const attaches = {
213 thumbnailfile: join(__dirname, '..', '..', 'fixtures', 'preview-big.png') 213 thumbnailfile: buildAbsoluteFixturePath('preview-big.png')
214 } 214 }
215 215
216 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 216 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -219,7 +219,7 @@ describe('Test video imports API validator', function () {
219 it('Should fail with an incorrect preview file', async function () { 219 it('Should fail with an incorrect preview file', async function () {
220 const fields = baseCorrectParams 220 const fields = baseCorrectParams
221 const attaches = { 221 const attaches = {
222 previewfile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') 222 previewfile: buildAbsoluteFixturePath('video_short.mp4')
223 } 223 }
224 224
225 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 225 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -228,7 +228,7 @@ describe('Test video imports API validator', function () {
228 it('Should fail with a big preview file', async function () { 228 it('Should fail with a big preview file', async function () {
229 const fields = baseCorrectParams 229 const fields = baseCorrectParams
230 const attaches = { 230 const attaches = {
231 previewfile: join(__dirname, '..', '..', 'fixtures', 'preview-big.png') 231 previewfile: buildAbsoluteFixturePath('preview-big.png')
232 } 232 }
233 233
234 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 234 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -237,7 +237,7 @@ describe('Test video imports API validator', function () {
237 it('Should fail with an invalid torrent file', async function () { 237 it('Should fail with an invalid torrent file', async function () {
238 const fields = omit(baseCorrectParams, 'targetUrl') 238 const fields = omit(baseCorrectParams, 'targetUrl')
239 const attaches = { 239 const attaches = {
240 torrentfile: join(__dirname, '..', '..', 'fixtures', 'avatar-big.png') 240 torrentfile: buildAbsoluteFixturePath('avatar-big.png')
241 } 241 }
242 242
243 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) 243 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
@@ -312,7 +312,7 @@ describe('Test video imports API validator', function () {
312 312
313 fields = omit(fields, 'magnetUri') 313 fields = omit(fields, 'magnetUri')
314 const attaches = { 314 const attaches = {
315 torrentfile: join(__dirname, '..', '..', 'fixtures', 'video-720p.torrent') 315 torrentfile: buildAbsoluteFixturePath('video-720p.torrent')
316 } 316 }
317 317
318 await makeUploadRequest({ 318 await makeUploadRequest({
diff --git a/server/tests/api/server/contact-form.ts b/server/tests/api/server/contact-form.ts
index 9b4af1915..8851ad55e 100644
--- a/server/tests/api/server/contact-form.ts
+++ b/server/tests/api/server/contact-form.ts
@@ -54,6 +54,10 @@ describe('Test contact form', function () {
54 }) 54 })
55 55
56 it('Should not be able to send another contact form because of the anti spam checker', async function () { 56 it('Should not be able to send another contact form because of the anti spam checker', async function () {
57 this.timeout(10000)
58
59 await wait(1000)
60
57 await sendContactForm({ 61 await sendContactForm({
58 url: server.url, 62 url: server.url,
59 fromEmail: 'toto@example.com', 63 fromEmail: 'toto@example.com',
diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts
index e80d69cf3..a8c8a889b 100644
--- a/server/tests/api/videos/multiple-servers.ts
+++ b/server/tests/api/videos/multiple-servers.ts
@@ -2,11 +2,11 @@
2 2
3import 'mocha' 3import 'mocha'
4import * as chai from 'chai' 4import * as chai from 'chai'
5import { join } from 'path'
6import * as request from 'supertest' 5import * as request from 'supertest'
7import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' 6import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
8import { 7import {
9 addVideoChannel, 8 addVideoChannel,
9 buildAbsoluteFixturePath,
10 checkTmpIsEmpty, 10 checkTmpIsEmpty,
11 checkVideoFilesWereRemoved, 11 checkVideoFilesWereRemoved,
12 cleanupTests, 12 cleanupTests,
@@ -1018,9 +1018,7 @@ describe('Test multiple servers', function () {
1018 .field('privacy', '1') 1018 .field('privacy', '1')
1019 .field('channelId', '1') 1019 .field('channelId', '1')
1020 1020
1021 const filePath = join(__dirname, '..', '..', 'fixtures', 'video_short.webm') 1021 await req.attach('videofile', buildAbsoluteFixturePath('video_short.webm'))
1022
1023 await req.attach('videofile', filePath)
1024 .expect(HttpStatusCode.OK_200) 1022 .expect(HttpStatusCode.OK_200)
1025 1023
1026 await waitJobs(servers) 1024 await waitJobs(servers)
diff --git a/server/tests/api/activitypub/json/mastodon/bad-body-http-signature.json b/server/tests/fixtures/ap-json/mastodon/bad-body-http-signature.json
index 4e7bc3af5..4e7bc3af5 100644
--- a/server/tests/api/activitypub/json/mastodon/bad-body-http-signature.json
+++ b/server/tests/fixtures/ap-json/mastodon/bad-body-http-signature.json
diff --git a/server/tests/api/activitypub/json/mastodon/bad-http-signature.json b/server/tests/fixtures/ap-json/mastodon/bad-http-signature.json
index 098597db0..098597db0 100644
--- a/server/tests/api/activitypub/json/mastodon/bad-http-signature.json
+++ b/server/tests/fixtures/ap-json/mastodon/bad-http-signature.json
diff --git a/server/tests/api/activitypub/json/mastodon/bad-public-key.json b/server/tests/fixtures/ap-json/mastodon/bad-public-key.json
index 73d18b3ad..73d18b3ad 100644
--- a/server/tests/api/activitypub/json/mastodon/bad-public-key.json
+++ b/server/tests/fixtures/ap-json/mastodon/bad-public-key.json
diff --git a/server/tests/api/activitypub/json/mastodon/create-bad-signature.json b/server/tests/fixtures/ap-json/mastodon/create-bad-signature.json
index 2cd037241..2cd037241 100644
--- a/server/tests/api/activitypub/json/mastodon/create-bad-signature.json
+++ b/server/tests/fixtures/ap-json/mastodon/create-bad-signature.json
diff --git a/server/tests/api/activitypub/json/mastodon/create.json b/server/tests/fixtures/ap-json/mastodon/create.json
index 0be271bb8..0be271bb8 100644
--- a/server/tests/api/activitypub/json/mastodon/create.json
+++ b/server/tests/fixtures/ap-json/mastodon/create.json
diff --git a/server/tests/api/activitypub/json/mastodon/http-signature.json b/server/tests/fixtures/ap-json/mastodon/http-signature.json
index 4e7bc3af5..4e7bc3af5 100644
--- a/server/tests/api/activitypub/json/mastodon/http-signature.json
+++ b/server/tests/fixtures/ap-json/mastodon/http-signature.json
diff --git a/server/tests/api/activitypub/json/mastodon/public-key.json b/server/tests/fixtures/ap-json/mastodon/public-key.json
index b7b9b8308..b7b9b8308 100644
--- a/server/tests/api/activitypub/json/mastodon/public-key.json
+++ b/server/tests/fixtures/ap-json/mastodon/public-key.json
diff --git a/server/tests/api/activitypub/json/peertube/announce-without-context.json b/server/tests/fixtures/ap-json/peertube/announce-without-context.json
index 5f2af0cde..5f2af0cde 100644
--- a/server/tests/api/activitypub/json/peertube/announce-without-context.json
+++ b/server/tests/fixtures/ap-json/peertube/announce-without-context.json
diff --git a/server/tests/api/activitypub/json/peertube/invalid-keys.json b/server/tests/fixtures/ap-json/peertube/invalid-keys.json
index 0544e96b9..0544e96b9 100644
--- a/server/tests/api/activitypub/json/peertube/invalid-keys.json
+++ b/server/tests/fixtures/ap-json/peertube/invalid-keys.json
diff --git a/server/tests/api/activitypub/json/peertube/keys.json b/server/tests/fixtures/ap-json/peertube/keys.json
index 1a7700865..1a7700865 100644
--- a/server/tests/api/activitypub/json/peertube/keys.json
+++ b/server/tests/fixtures/ap-json/peertube/keys.json
diff --git a/server/tests/plugins/filter-hooks.ts b/server/tests/plugins/filter-hooks.ts
index 1d6bb6cf4..e78246d2d 100644
--- a/server/tests/plugins/filter-hooks.ts
+++ b/server/tests/plugins/filter-hooks.ts
@@ -326,7 +326,7 @@ describe('Test plugin filter hooks', function () {
326 }) 326 })
327 327
328 it('Should blacklist on remote upload', async function () { 328 it('Should blacklist on remote upload', async function () {
329 this.timeout(60000) 329 this.timeout(120000)
330 330
331 const res = await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'remote please blacklist me' }) 331 const res = await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'remote please blacklist me' })
332 await waitJobs(servers) 332 await waitJobs(servers)
@@ -335,7 +335,7 @@ describe('Test plugin filter hooks', function () {
335 }) 335 })
336 336
337 it('Should blacklist on remote update', async function () { 337 it('Should blacklist on remote update', async function () {
338 this.timeout(60000) 338 this.timeout(120000)
339 339
340 const res = await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video' }) 340 const res = await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video' })
341 await waitJobs(servers) 341 await waitJobs(servers)
diff --git a/server/tests/register.ts b/server/tests/register.ts
new file mode 100644
index 000000000..af6c8c644
--- /dev/null
+++ b/server/tests/register.ts
@@ -0,0 +1,3 @@
1import { registerTSPaths } from '../helpers/register-ts-paths'
2
3registerTSPaths()