]>
Commit | Line | Data |
---|---|---|
fce897f3 C |
1 | /* eslint-disable no-unused-expressions */ |
2 | ||
3 | 'use strict' | |
4 | ||
5 | const chai = require('chai') | |
6 | const each = require('async/each') | |
7 | const expect = chai.expect | |
8 | const series = require('async/series') | |
9 | const webtorrent = new (require('webtorrent'))() | |
10 | ||
11 | const loginUtils = require('../utils/login') | |
12 | const serversUtils = require('../utils/servers') | |
13 | const videosUtils = require('../utils/videos') | |
14 | ||
15 | describe('Test video blacklists', function () { | |
16 | let servers = [] | |
17 | ||
18 | before(function (done) { | |
19 | this.timeout(30000) | |
20 | ||
21 | series([ | |
22 | // Run servers | |
23 | function (next) { | |
24 | serversUtils.flushAndRunMultipleServers(2, function (serversRun) { | |
25 | servers = serversRun | |
26 | next() | |
27 | }) | |
28 | }, | |
29 | // Get the access tokens | |
30 | function (next) { | |
31 | each(servers, function (server, callbackEach) { | |
32 | loginUtils.loginAndGetAccessToken(server, function (err, accessToken) { | |
33 | if (err) return callbackEach(err) | |
34 | ||
35 | server.accessToken = accessToken | |
36 | callbackEach() | |
37 | }) | |
38 | }, next) | |
39 | } | |
40 | ], done) | |
41 | }) | |
42 | ||
43 | it('Should not transcode video on server 1', function (done) { | |
44 | this.timeout(60000) | |
45 | ||
46 | const videoAttributes = { | |
47 | name: 'my super name for pod 1', | |
48 | description: 'my super description for pod 1', | |
49 | fixture: 'video_short.webm' | |
50 | } | |
51 | videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, function (err) { | |
52 | if (err) throw err | |
53 | ||
54 | setTimeout(function () { | |
55 | videosUtils.getVideosList(servers[0].url, function (err, res) { | |
56 | if (err) throw err | |
57 | ||
58 | const video = res.body.data[0] | |
59 | expect(video.magnetUri).to.match(/\.webm/) | |
60 | ||
61 | webtorrent.add(video.magnetUri, function (torrent) { | |
62 | expect(torrent.files).to.exist | |
63 | expect(torrent.files.length).to.equal(1) | |
64 | expect(torrent.files[0].path).match(/\.webm$/) | |
65 | ||
66 | done() | |
67 | }) | |
68 | }) | |
69 | }, 30000) | |
70 | }) | |
71 | }) | |
72 | ||
73 | it('Should transcode video on server 2', function (done) { | |
74 | this.timeout(60000) | |
75 | ||
76 | const videoAttributes = { | |
77 | name: 'my super name for pod 2', | |
78 | description: 'my super description for pod 2', | |
79 | fixture: 'video_short.webm' | |
80 | } | |
81 | videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, function (err) { | |
82 | if (err) throw err | |
83 | ||
84 | setTimeout(function () { | |
85 | videosUtils.getVideosList(servers[1].url, function (err, res) { | |
86 | if (err) throw err | |
87 | ||
88 | const video = res.body.data[0] | |
89 | expect(video.magnetUri).to.match(/\.mp4/) | |
90 | ||
91 | webtorrent.add(video.magnetUri, function (torrent) { | |
92 | expect(torrent.files).to.exist | |
93 | expect(torrent.files.length).to.equal(1) | |
94 | expect(torrent.files[0].path).match(/\.mp4$/) | |
95 | ||
96 | done() | |
97 | }) | |
98 | }) | |
99 | }, 30000) | |
100 | }) | |
101 | }) | |
102 | ||
103 | after(function (done) { | |
104 | servers.forEach(function (server) { | |
105 | process.kill(-server.app.pid) | |
106 | }) | |
107 | ||
108 | // Keep the logs if the test failed | |
109 | if (this.ok) { | |
110 | serversUtils.flushTests(done) | |
111 | } else { | |
112 | done() | |
113 | } | |
114 | }) | |
115 | }) |