]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - server/tests/api/users.js
Thumbnail, author and duration support in client
[github/Chocobozzz/PeerTube.git] / server / tests / api / users.js
... / ...
CommitLineData
1'use strict'
2
3const async = require('async')
4const chai = require('chai')
5const expect = chai.expect
6const pathUtils = require('path')
7
8const webtorrent = require(pathUtils.join(__dirname, '../../lib/webtorrent'))
9webtorrent.silent = true
10
11const utils = require('./utils')
12
13describe('Test users', function () {
14 let server = null
15 let accessToken = null
16 let videoId
17
18 before(function (done) {
19 this.timeout(20000)
20
21 async.series([
22 function (next) {
23 utils.flushTests(next)
24 },
25 function (next) {
26 utils.runServer(1, function (server1) {
27 server = server1
28 next()
29 })
30 }
31 ], done)
32 })
33
34 it('Should create a new client')
35
36 it('Should return the first client')
37
38 it('Should remove the last client')
39
40 it('Should not login with an invalid client id', function (done) {
41 const client = { id: 'client', password: server.client.secret }
42 utils.login(server.url, client, server.user, 400, function (err, res) {
43 if (err) throw err
44
45 expect(res.body.error).to.equal('invalid_client')
46 done()
47 })
48 })
49
50 it('Should not login with an invalid client password', function (done) {
51 const client = { id: server.client.id, password: 'coucou' }
52 utils.login(server.url, client, server.user, 400, function (err, res) {
53 if (err) throw err
54
55 expect(res.body.error).to.equal('invalid_client')
56 done()
57 })
58 })
59
60 it('Should not login with an invalid username', function (done) {
61 const user = { username: 'captain crochet', password: server.user.password }
62 utils.login(server.url, server.client, user, 400, function (err, res) {
63 if (err) throw err
64
65 expect(res.body.error).to.equal('invalid_grant')
66 done()
67 })
68 })
69
70 it('Should not login with an invalid password', function (done) {
71 const user = { username: server.user.username, password: 'mewthree' }
72 utils.login(server.url, server.client, user, 400, function (err, res) {
73 if (err) throw err
74
75 expect(res.body.error).to.equal('invalid_grant')
76 done()
77 })
78 })
79
80 it('Should not be able to upload a video', function (done) {
81 accessToken = 'mysupertoken'
82 utils.uploadVideo(server.url, accessToken, 'my super name', 'my super description', 'video_short.webm', 401, done)
83 })
84
85 it('Should not be able to make friends', function (done) {
86 accessToken = 'mysupertoken'
87 utils.makeFriends(server.url, accessToken, 401, done)
88 })
89
90 it('Should not be able to quit friends', function (done) {
91 accessToken = 'mysupertoken'
92 utils.quitFriends(server.url, accessToken, 401, done)
93 })
94
95 it('Should be able to login', function (done) {
96 utils.login(server.url, server.client, server.user, 200, function (err, res) {
97 if (err) throw err
98
99 accessToken = res.body.access_token
100 done()
101 })
102 })
103
104 it('Should upload the video with the correct token', function (done) {
105 utils.uploadVideo(server.url, accessToken, 'my super name', 'my super description', 'video_short.webm', 204, function (err, res) {
106 if (err) throw err
107
108 utils.getVideosList(server.url, function (err, res) {
109 if (err) throw err
110
111 const video = res.body[0]
112 expect(video.author).to.equal('root')
113
114 videoId = video.id
115 done()
116 })
117 })
118 })
119
120 it('Should upload the video again with the correct token', function (done) {
121 utils.uploadVideo(server.url, accessToken, 'my super name 2', 'my super description 2', 'video_short.webm', 204, done)
122 })
123
124 it('Should not be able to remove the video with an incorrect token', function (done) {
125 utils.removeVideo(server.url, 'bad_token', videoId, 401, done)
126 })
127
128 it('Should not be able to remove the video with the token of another account')
129
130 it('Should be able to remove the video with the correct token', function (done) {
131 utils.removeVideo(server.url, accessToken, videoId, done)
132 })
133
134 it('Should logout')
135
136 it('Should not be able to upload a video')
137
138 it('Should not be able to remove a video')
139
140 it('Should be able to login again')
141
142 after(function (done) {
143 process.kill(-server.app.pid)
144
145 // Keep the logs if the test failed
146 if (this.ok) {
147 utils.flushTests(done)
148 } else {
149 done()
150 }
151 })
152})