]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/e2e/src/videos.e2e-spec.ts
Make it works with new autoplay policy
[github/Chocobozzz/PeerTube.git] / client / e2e / src / videos.e2e-spec.ts
CommitLineData
5f92c4dc
C
1import { VideoWatchPage } from './po/video-watch.po'
2import { VideoUploadPage } from './po/video-upload.po'
3import { LoginPage } from './po/login.po'
4import { browser } from 'protractor'
5
6describe('Videos workflow', () => {
7 let videoWatchPage: VideoWatchPage
8 let pageUploadPage: VideoUploadPage
9 let loginPage: LoginPage
10 const videoName = new Date().getTime() + ' video'
0b33c520
C
11 let isMobileDevice = false
12 let isIphoneDevice = false
d1bd87e0 13 let isSafari = false
0b33c520
C
14
15 beforeEach(async () => {
16 browser.waitForAngularEnabled(false)
5f92c4dc 17
5f92c4dc
C
18 videoWatchPage = new VideoWatchPage()
19 pageUploadPage = new VideoUploadPage()
20 loginPage = new LoginPage()
0b33c520
C
21
22 const caps = await browser.getCapabilities()
23 isMobileDevice = caps.get('realMobile') === 'true' || caps.get('realMobile') === true
24 isIphoneDevice = caps.get('device') === 'iphone'
d1bd87e0 25 isSafari = caps.get('browserName') && caps.get('browserName').toLowerCase() === 'safari'
5f92c4dc
C
26 })
27
28 it('Should log in', () => {
0b33c520
C
29 if (isMobileDevice) {
30 console.log('Skipping because we are on a real device and BrowserStack does not support file upload.')
31 return
32 }
33
5f92c4dc
C
34 return loginPage.loginAsRootUser()
35 })
36
37 it('Should upload a video', async () => {
0b33c520
C
38 if (isMobileDevice) {
39 console.log('Skipping because we are on a real device and BrowserStack does not support file upload.')
40 return
41 }
42
d1bd87e0 43 await pageUploadPage.navigateTo()
5f92c4dc
C
44
45 await pageUploadPage.uploadVideo()
46 return pageUploadPage.validSecondUploadStep(videoName)
47 })
48
49 it('Should list the video', async () => {
d1bd87e0 50 await videoWatchPage.goOnVideosList(isIphoneDevice, isSafari)
0b33c520
C
51
52 if (isMobileDevice) {
53 console.log('Skipping because we are on a real device and BrowserStack does not support file upload.')
54 return
55 }
5f92c4dc
C
56
57 const videoNames = videoWatchPage.getVideosListName()
58 expect(videoNames).toContain(videoName)
59 })
60
61 it('Should go on video watch page', async () => {
0b33c520
C
62 let videoNameToExcept = videoName
63
d1bd87e0 64 if (isMobileDevice) videoNameToExcept = await videoWatchPage.clickOnFirstVideo()
0b33c520 65 else await videoWatchPage.clickOnVideo(videoName)
5f92c4dc 66
0b33c520 67 return videoWatchPage.waitWatchVideoName(videoNameToExcept)
5f92c4dc
C
68 })
69
70 it('Should play the video', async () => {
d1bd87e0
C
71 await videoWatchPage.pauseVideo(7000, !isMobileDevice, isSafari)
72 expect(videoWatchPage.getWatchVideoPlayerCurrentTime()).toBeGreaterThanOrEqual(2)
73 })
74
75 it('Should watch the associated embed video', async () => {
76 await videoWatchPage.goOnAssociatedEmbed()
77
78 await videoWatchPage.pauseVideo(7000, false, isSafari)
5f92c4dc
C
79 expect(videoWatchPage.getWatchVideoPlayerCurrentTime()).toBeGreaterThanOrEqual(2)
80 })
81})