diff options
Diffstat (limited to 'server/tests/api/singlePod.js')
-rw-r--r-- | server/tests/api/singlePod.js | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/server/tests/api/singlePod.js b/server/tests/api/singlePod.js new file mode 100644 index 000000000..3dd72c01b --- /dev/null +++ b/server/tests/api/singlePod.js | |||
@@ -0,0 +1,146 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | var async = require('async') | ||
4 | var chai = require('chai') | ||
5 | var expect = chai.expect | ||
6 | var fs = require('fs') | ||
7 | var pathUtils = require('path') | ||
8 | |||
9 | var webtorrent = require(pathUtils.join(__dirname, '../../lib/webtorrent')) | ||
10 | webtorrent.silent = true | ||
11 | |||
12 | var utils = require('./utils') | ||
13 | |||
14 | describe('Test a single pod', function () { | ||
15 | var app = null | ||
16 | var url = '' | ||
17 | var video_id = -1 | ||
18 | |||
19 | before(function (done) { | ||
20 | this.timeout(20000) | ||
21 | |||
22 | async.series([ | ||
23 | function (next) { | ||
24 | utils.flushTests(next) | ||
25 | }, | ||
26 | function (next) { | ||
27 | utils.runServer(1, function (app1, url1) { | ||
28 | app = app1 | ||
29 | url = url1 | ||
30 | next() | ||
31 | }) | ||
32 | }, | ||
33 | function (next) { | ||
34 | webtorrent.create({ host: 'client', port: '1' }, next) | ||
35 | } | ||
36 | ], done) | ||
37 | }) | ||
38 | |||
39 | it('Should not have videos', function (done) { | ||
40 | utils.getVideosList(url, function (err, res) { | ||
41 | if (err) throw err | ||
42 | |||
43 | expect(res.body).to.be.an('array') | ||
44 | expect(res.body.length).to.equal(0) | ||
45 | |||
46 | done() | ||
47 | }) | ||
48 | }) | ||
49 | |||
50 | it('Should upload the video', function (done) { | ||
51 | this.timeout(5000) | ||
52 | utils.uploadVideo(url, 'my super name', 'my super description', 'video_short.webm', done) | ||
53 | }) | ||
54 | |||
55 | it('Should seed the uploaded video', function (done) { | ||
56 | // Yes, this could be long | ||
57 | this.timeout(60000) | ||
58 | |||
59 | utils.getVideosList(url, function (err, res) { | ||
60 | if (err) throw err | ||
61 | |||
62 | expect(res.body).to.be.an('array') | ||
63 | expect(res.body.length).to.equal(1) | ||
64 | |||
65 | var video = res.body[0] | ||
66 | expect(video.name).to.equal('my super name') | ||
67 | expect(video.description).to.equal('my super description') | ||
68 | expect(video.podUrl).to.equal('http://localhost:9001') | ||
69 | expect(video.magnetUri).to.exist | ||
70 | |||
71 | video_id = video._id | ||
72 | |||
73 | webtorrent.add(video.magnetUri, function (torrent) { | ||
74 | expect(torrent.files).to.exist | ||
75 | expect(torrent.files.length).to.equal(1) | ||
76 | expect(torrent.files[0].path).to.exist.and.to.not.equal('') | ||
77 | |||
78 | done() | ||
79 | }) | ||
80 | }) | ||
81 | }) | ||
82 | |||
83 | it('Should search the video', function (done) { | ||
84 | utils.searchVideo(url, 'my', function (err, res) { | ||
85 | if (err) throw err | ||
86 | |||
87 | expect(res.body).to.be.an('array') | ||
88 | expect(res.body.length).to.equal(1) | ||
89 | |||
90 | var video = res.body[0] | ||
91 | expect(video.name).to.equal('my super name') | ||
92 | expect(video.description).to.equal('my super description') | ||
93 | expect(video.podUrl).to.equal('http://localhost:9001') | ||
94 | expect(video.magnetUri).to.exist | ||
95 | |||
96 | done() | ||
97 | }) | ||
98 | }) | ||
99 | |||
100 | it('Should not find a search', function (done) { | ||
101 | utils.searchVideo(url, 'hello', function (err, res) { | ||
102 | if (err) throw err | ||
103 | |||
104 | expect(res.body).to.be.an('array') | ||
105 | expect(res.body.length).to.equal(0) | ||
106 | |||
107 | done() | ||
108 | }) | ||
109 | }) | ||
110 | |||
111 | it('Should remove the video', function (done) { | ||
112 | utils.removeVideo(url, video_id, function (err) { | ||
113 | if (err) throw err | ||
114 | |||
115 | fs.readdir(pathUtils.join(__dirname, '../../test1/uploads/'), function (err, files) { | ||
116 | if (err) throw err | ||
117 | |||
118 | expect(files.length).to.equal(0) | ||
119 | done() | ||
120 | }) | ||
121 | }) | ||
122 | }) | ||
123 | |||
124 | it('Should not have videos', function (done) { | ||
125 | utils.getVideosList(url, function (err, res) { | ||
126 | if (err) throw err | ||
127 | |||
128 | expect(res.body).to.be.an('array') | ||
129 | expect(res.body.length).to.equal(0) | ||
130 | |||
131 | done() | ||
132 | }) | ||
133 | }) | ||
134 | |||
135 | after(function (done) { | ||
136 | process.kill(-app.pid) | ||
137 | process.kill(-webtorrent.app.pid) | ||
138 | |||
139 | // Keep the logs if the test failed | ||
140 | if (this.ok) { | ||
141 | utils.flushTests(done) | ||
142 | } else { | ||
143 | done() | ||
144 | } | ||
145 | }) | ||
146 | }) | ||