From c1c86c1599acf8aad71fb7d7f312c43d6d1fa5ac Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 8 Oct 2018 17:47:19 +0200 Subject: Try to cache video_high_bitrate_1080p in travis --- server/tests/utils/miscs/miscs.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'server/tests/utils/miscs') diff --git a/server/tests/utils/miscs/miscs.ts b/server/tests/utils/miscs/miscs.ts index b2f80e9b1..d20fa96b8 100644 --- a/server/tests/utils/miscs/miscs.ts +++ b/server/tests/utils/miscs/miscs.ts @@ -51,11 +51,13 @@ async function testImage (url: string, imageName: string, imagePath: string, ext expect(data.length).to.be.below(maxLength) } -function buildAbsoluteFixturePath (path: string) { +function buildAbsoluteFixturePath (path: string, customTravisPath = false) { if (isAbsolute(path)) { return path } + if (customTravisPath && process.env.TRAVIS) return join(process.env.HOME, 'fixtures', path) + return join(__dirname, '..', '..', 'fixtures', path) } -- cgit v1.2.3 From 74cd011b6c089cac88a4b8aa76ad3be2ca4f1c15 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 18 Oct 2018 16:53:52 +0200 Subject: Fix optimize old videos script --- server/tests/utils/miscs/miscs.ts | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'server/tests/utils/miscs') diff --git a/server/tests/utils/miscs/miscs.ts b/server/tests/utils/miscs/miscs.ts index d20fa96b8..589daa420 100644 --- a/server/tests/utils/miscs/miscs.ts +++ b/server/tests/utils/miscs/miscs.ts @@ -4,7 +4,8 @@ import * as chai from 'chai' import { isAbsolute, join } from 'path' import * as request from 'supertest' import * as WebTorrent from 'webtorrent' -import { readFile } from 'fs-extra' +import { pathExists, readFile } from 'fs-extra' +import * as ffmpeg from 'fluent-ffmpeg' const expect = chai.expect let webtorrent = new WebTorrent() @@ -61,6 +62,31 @@ function buildAbsoluteFixturePath (path: string, customTravisPath = false) { return join(__dirname, '..', '..', 'fixtures', path) } +async function generateHighBitrateVideo () { + const tempFixturePath = buildAbsoluteFixturePath('video_high_bitrate_1080p.mp4', true) + + const exists = await pathExists(tempFixturePath) + if (!exists) { + + // Generate a random, high bitrate video on the fly, so we don't have to include + // a large file in the repo. The video needs to have a certain minimum length so + // that FFmpeg properly applies bitrate limits. + // https://stackoverflow.com/a/15795112 + return new Promise(async (res, rej) => { + ffmpeg() + .outputOptions([ '-f rawvideo', '-video_size 1920x1080', '-i /dev/urandom' ]) + .outputOptions([ '-ac 2', '-f s16le', '-i /dev/urandom', '-t 10' ]) + .outputOptions([ '-maxrate 10M', '-bufsize 10M' ]) + .output(tempFixturePath) + .on('error', rej) + .on('end', () => res(tempFixturePath)) + .run() + }) + } + + return tempFixturePath +} + // --------------------------------------------------------------------------- export { @@ -70,5 +96,6 @@ export { immutableAssign, testImage, buildAbsoluteFixturePath, - root + root, + generateHighBitrateVideo } -- cgit v1.2.3 From 9639bd175726b73f8fe664b5ced12a72407b1f0b Mon Sep 17 00:00:00 2001 From: buoyantair Date: Mon, 29 Oct 2018 22:18:31 +0530 Subject: Move utils to /shared Move utils used by /server/tools/* & /server/tests/**/* into /shared folder. Issue: #1336 --- server/tests/utils/miscs/email.ts | 25 ---------- server/tests/utils/miscs/miscs.ts | 101 -------------------------------------- 2 files changed, 126 deletions(-) delete mode 100644 server/tests/utils/miscs/email.ts delete mode 100644 server/tests/utils/miscs/miscs.ts (limited to 'server/tests/utils/miscs') diff --git a/server/tests/utils/miscs/email.ts b/server/tests/utils/miscs/email.ts deleted file mode 100644 index 21accd09d..000000000 --- a/server/tests/utils/miscs/email.ts +++ /dev/null @@ -1,25 +0,0 @@ -import * as MailDev from 'maildev' - -function mockSmtpServer (emailsCollection: object[]) { - const maildev = new MailDev({ - ip: '127.0.0.1', - smtp: 1025, - disableWeb: true, - silent: true - }) - maildev.on('new', email => emailsCollection.push(email)) - - return new Promise((res, rej) => { - maildev.listen(err => { - if (err) return rej(err) - - return res() - }) - }) -} - -// --------------------------------------------------------------------------- - -export { - mockSmtpServer -} diff --git a/server/tests/utils/miscs/miscs.ts b/server/tests/utils/miscs/miscs.ts deleted file mode 100644 index 589daa420..000000000 --- a/server/tests/utils/miscs/miscs.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* tslint:disable:no-unused-expression */ - -import * as chai from 'chai' -import { isAbsolute, join } from 'path' -import * as request from 'supertest' -import * as WebTorrent from 'webtorrent' -import { pathExists, readFile } from 'fs-extra' -import * as ffmpeg from 'fluent-ffmpeg' - -const expect = chai.expect -let webtorrent = new WebTorrent() - -function immutableAssign (target: T, source: U) { - return Object.assign<{}, T, U>({}, target, source) -} - - // Default interval -> 5 minutes -function dateIsValid (dateString: string, interval = 300000) { - const dateToCheck = new Date(dateString) - const now = new Date() - - return Math.abs(now.getTime() - dateToCheck.getTime()) <= interval -} - -function wait (milliseconds: number) { - return new Promise(resolve => setTimeout(resolve, milliseconds)) -} - -function webtorrentAdd (torrent: string, refreshWebTorrent = false) { - if (refreshWebTorrent === true) webtorrent = new WebTorrent() - - return new Promise(res => webtorrent.add(torrent, res)) -} - -function root () { - // We are in server/tests/utils/miscs - return join(__dirname, '..', '..', '..', '..') -} - -async function testImage (url: string, imageName: string, imagePath: string, extension = '.jpg') { - const res = await request(url) - .get(imagePath) - .expect(200) - - const body = res.body - - const data = await readFile(join(__dirname, '..', '..', 'fixtures', imageName + extension)) - const minLength = body.length - ((20 * body.length) / 100) - const maxLength = body.length + ((20 * body.length) / 100) - - expect(data.length).to.be.above(minLength) - expect(data.length).to.be.below(maxLength) -} - -function buildAbsoluteFixturePath (path: string, customTravisPath = false) { - if (isAbsolute(path)) { - return path - } - - if (customTravisPath && process.env.TRAVIS) return join(process.env.HOME, 'fixtures', path) - - return join(__dirname, '..', '..', 'fixtures', path) -} - -async function generateHighBitrateVideo () { - const tempFixturePath = buildAbsoluteFixturePath('video_high_bitrate_1080p.mp4', true) - - const exists = await pathExists(tempFixturePath) - if (!exists) { - - // Generate a random, high bitrate video on the fly, so we don't have to include - // a large file in the repo. The video needs to have a certain minimum length so - // that FFmpeg properly applies bitrate limits. - // https://stackoverflow.com/a/15795112 - return new Promise(async (res, rej) => { - ffmpeg() - .outputOptions([ '-f rawvideo', '-video_size 1920x1080', '-i /dev/urandom' ]) - .outputOptions([ '-ac 2', '-f s16le', '-i /dev/urandom', '-t 10' ]) - .outputOptions([ '-maxrate 10M', '-bufsize 10M' ]) - .output(tempFixturePath) - .on('error', rej) - .on('end', () => res(tempFixturePath)) - .run() - }) - } - - return tempFixturePath -} - -// --------------------------------------------------------------------------- - -export { - dateIsValid, - wait, - webtorrentAdd, - immutableAssign, - testImage, - buildAbsoluteFixturePath, - root, - generateHighBitrateVideo -} -- cgit v1.2.3 From df66d81583e07ce049daeeef1edc6a87b57b3684 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 23 Oct 2018 11:38:48 +0200 Subject: Add compatibility with other Linked Signature algorithms --- server/tests/utils/miscs/sql.ts | 29 +++++++++++++++++++++++++++++ server/tests/utils/miscs/stubs.ts | 14 ++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 server/tests/utils/miscs/sql.ts create mode 100644 server/tests/utils/miscs/stubs.ts (limited to 'server/tests/utils/miscs') diff --git a/server/tests/utils/miscs/sql.ts b/server/tests/utils/miscs/sql.ts new file mode 100644 index 000000000..204ff5163 --- /dev/null +++ b/server/tests/utils/miscs/sql.ts @@ -0,0 +1,29 @@ +import * as Sequelize from 'sequelize' + +function getSequelize (serverNumber: number) { + const dbname = 'peertube_test' + serverNumber + const username = 'peertube' + const password = 'peertube' + const host = 'localhost' + const port = 5432 + + return new Sequelize(dbname, username, password, { + dialect: 'postgres', + host, + port, + operatorsAliases: false, + logging: false + }) +} + +function setActorField (serverNumber: number, to: string, field: string, value: string) { + const seq = getSequelize(serverNumber) + + const options = { type: Sequelize.QueryTypes.UPDATE } + + return seq.query(`UPDATE actor SET "${field}" = '${value}' WHERE url = '${to}'`, options) +} + +export { + setActorField +} diff --git a/server/tests/utils/miscs/stubs.ts b/server/tests/utils/miscs/stubs.ts new file mode 100644 index 000000000..d1eb0e3b2 --- /dev/null +++ b/server/tests/utils/miscs/stubs.ts @@ -0,0 +1,14 @@ +function buildRequestStub (): any { + return { } +} + +function buildResponseStub (): any { + return { + locals: {} + } +} + +export { + buildResponseStub, + buildRequestStub +} -- cgit v1.2.3 From a130f33c9c07ffaf2f11a5e629d686a158b9e1c7 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 14 Nov 2018 16:32:12 +0100 Subject: Add AP fetch tests --- server/tests/utils/miscs/sql.ts | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'server/tests/utils/miscs') diff --git a/server/tests/utils/miscs/sql.ts b/server/tests/utils/miscs/sql.ts index 204ff5163..027f78131 100644 --- a/server/tests/utils/miscs/sql.ts +++ b/server/tests/utils/miscs/sql.ts @@ -24,6 +24,15 @@ function setActorField (serverNumber: number, to: string, field: string, value: return seq.query(`UPDATE actor SET "${field}" = '${value}' WHERE url = '${to}'`, options) } +function setVideoField (serverNumber: number, uuid: string, field: string, value: string) { + const seq = getSequelize(serverNumber) + + const options = { type: Sequelize.QueryTypes.UPDATE } + + return seq.query(`UPDATE video SET "${field}" = '${value}' WHERE uuid = '${uuid}'`, options) +} + export { + setVideoField, setActorField } -- cgit v1.2.3