X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fcheck-params%2Fvideo-captions.ts;h=1ce2202d2a63c2c1d381a24af6cc9c48ab8d4de3;hb=3d470a530c4a48b2e4f4a9e7d4f223e14f32cea4;hp=12f890db8114dceca0ce252123cf74fec9751e91;hpb=40e87e9ecc54e3513fb586928330a7855eb192c6;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/check-params/video-captions.ts b/server/tests/api/check-params/video-captions.ts index 12f890db8..1ce2202d2 100644 --- a/server/tests/api/check-params/video-captions.ts +++ b/server/tests/api/check-params/video-captions.ts @@ -1,21 +1,22 @@ -/* tslint:disable:no-unused-expression */ +/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import * as chai from 'chai' import 'mocha' + +import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { + buildAbsoluteFixturePath, + cleanupTests, createUser, - flushTests, - killallServers, + flushAndRunServer, makeDeleteRequest, makeGetRequest, makeUploadRequest, - runServer, ServerInfo, setAccessTokensToServers, uploadVideo, userLogin -} from '../../utils' -import { join } from 'path' +} from '../../../../shared/extra-utils' +import { createVideoCaption } from '../../../../shared/extra-utils/videos/video-captions' describe('Test video captions API validator', function () { const path = '/api/v1/videos/' @@ -29,9 +30,7 @@ describe('Test video captions API validator', function () { before(async function () { this.timeout(30000) - await flushTests() - - server = await runServer(1) + server = await flushAndRunServer(1) await setAccessTokensToServers([ server ]) @@ -45,7 +44,7 @@ describe('Test video captions API validator', function () { username: 'user1', password: 'my super password' } - await createUser(server.url, server.accessToken, user.username, user.password) + await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password }) userAccessToken = await userLogin(server, user) } }) @@ -53,14 +52,14 @@ describe('Test video captions API validator', function () { describe('When adding video caption', function () { const fields = { } const attaches = { - 'captionfile': join(__dirname, '..', '..', 'fixtures', 'subtitle-good1.vtt') + captionfile: buildAbsoluteFixturePath('subtitle-good1.vtt') } it('Should fail without a valid uuid', async function () { await makeUploadRequest({ method: 'PUT', url: server.url, - path: path + '4da6fde3-88f7-4d16-b119-108df563d0b06/captions', + path: path + '4da6fde3-88f7-4d16-b119-108df563d0b06/captions/fr', token: server.accessToken, fields, attaches @@ -71,10 +70,11 @@ describe('Test video captions API validator', function () { await makeUploadRequest({ method: 'PUT', url: server.url, - path: path + '4da6fde3-88f7-4d16-b119-108df5630b06/captions', + path: path + '4da6fde3-88f7-4d16-b119-108df5630b06/captions/fr', token: server.accessToken, fields, - attaches + attaches, + statusCodeExpected: 404 }) }) @@ -110,7 +110,7 @@ describe('Test video captions API validator', function () { path: captionPath, fields, attaches, - statusCodeExpected: 401 + statusCodeExpected: HttpStatusCode.UNAUTHORIZED_401 }) }) @@ -123,10 +123,70 @@ describe('Test video captions API validator', function () { token: 'blabla', fields, attaches, - statusCodeExpected: 401 + statusCodeExpected: HttpStatusCode.UNAUTHORIZED_401 }) }) + // We accept any file now + // it('Should fail with an invalid captionfile extension', async function () { + // const attaches = { + // 'captionfile': buildAbsoluteFixturePath('subtitle-bad.txt') + // } + // + // const captionPath = path + videoUUID + '/captions/fr' + // await makeUploadRequest({ + // method: 'PUT', + // url: server.url, + // path: captionPath, + // token: server.accessToken, + // fields, + // attaches, + // statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 + // }) + // }) + + // We don't check the extension yet + // it('Should fail with an invalid captionfile extension and octet-stream mime type', async function () { + // await createVideoCaption({ + // url: server.url, + // accessToken: server.accessToken, + // language: 'zh', + // videoId: videoUUID, + // fixture: 'subtitle-bad.txt', + // mimeType: 'application/octet-stream', + // statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 + // }) + // }) + + it('Should succeed with a valid captionfile extension and octet-stream mime type', async function () { + await createVideoCaption({ + url: server.url, + accessToken: server.accessToken, + language: 'zh', + videoId: videoUUID, + fixture: 'subtitle-good.srt', + mimeType: 'application/octet-stream' + }) + }) + + // We don't check the file validity yet + // it('Should fail with an invalid captionfile srt', async function () { + // const attaches = { + // 'captionfile': buildAbsoluteFixturePath('subtitle-bad.srt') + // } + // + // const captionPath = path + videoUUID + '/captions/fr' + // await makeUploadRequest({ + // method: 'PUT', + // url: server.url, + // path: captionPath, + // token: server.accessToken, + // fields, + // attaches, + // statusCodeExpected: HttpStatusCode.INTERNAL_SERVER_ERROR_500 + // }) + // }) + it('Should success with the correct parameters', async function () { const captionPath = path + videoUUID + '/captions/fr' await makeUploadRequest({ @@ -136,7 +196,7 @@ describe('Test video captions API validator', function () { token: server.accessToken, fields, attaches, - statusCodeExpected: 204 + statusCodeExpected: HttpStatusCode.NO_CONTENT_204 }) }) }) @@ -147,11 +207,15 @@ describe('Test video captions API validator', function () { }) it('Should fail with an unknown id', async function () { - await makeGetRequest({ url: server.url, path: path + '4da6fde3-88f7-4d16-b119-108df5630b06/captions', statusCodeExpected: 404 }) + await makeGetRequest({ + url: server.url, + path: path + '4da6fde3-88f7-4d16-b119-108df5630b06/captions', + statusCodeExpected: HttpStatusCode.NOT_FOUND_404 + }) }) it('Should success with the correct parameters', async function () { - await makeGetRequest({ url: server.url, path: path + videoUUID + '/captions', statusCodeExpected: 200 }) + await makeGetRequest({ url: server.url, path: path + videoUUID + '/captions', statusCodeExpected: HttpStatusCode.OK_200 }) }) }) @@ -169,7 +233,7 @@ describe('Test video captions API validator', function () { url: server.url, path: path + '4da6fde3-88f7-4d16-b119-108df5630b06/captions/fr', token: server.accessToken, - statusCodeExpected: 404 + statusCodeExpected: HttpStatusCode.NOT_FOUND_404 }) }) @@ -193,31 +257,36 @@ describe('Test video captions API validator', function () { it('Should fail without access token', async function () { const captionPath = path + videoUUID + '/captions/fr' - await makeDeleteRequest({ url: server.url, path: captionPath, statusCodeExpected: 401 }) + await makeDeleteRequest({ url: server.url, path: captionPath, statusCodeExpected: HttpStatusCode.UNAUTHORIZED_401 }) }) it('Should fail with a bad access token', async function () { const captionPath = path + videoUUID + '/captions/fr' - await makeDeleteRequest({ url: server.url, path: captionPath, token: 'coucou', statusCodeExpected: 401 }) + await makeDeleteRequest({ url: server.url, path: captionPath, token: 'coucou', statusCodeExpected: HttpStatusCode.UNAUTHORIZED_401 }) }) it('Should fail with another user', async function () { const captionPath = path + videoUUID + '/captions/fr' - await makeDeleteRequest({ url: server.url, path: captionPath, token: userAccessToken, statusCodeExpected: 403 }) + await makeDeleteRequest({ + url: server.url, + path: captionPath, + token: userAccessToken, + statusCodeExpected: HttpStatusCode.FORBIDDEN_403 + }) }) it('Should success with the correct parameters', async function () { const captionPath = path + videoUUID + '/captions/fr' - await makeDeleteRequest({ url: server.url, path: captionPath, token: server.accessToken, statusCodeExpected: 204 }) + await makeDeleteRequest({ + url: server.url, + path: captionPath, + token: server.accessToken, + statusCodeExpected: HttpStatusCode.NO_CONTENT_204 + }) }) }) after(async function () { - killallServers([ server ]) - - // Keep the logs if the test failed - if (this['ok']) { - await flushTests() - } + await cleanupTests([ server ]) }) })