]>
Commit | Line | Data |
---|---|---|
5f92c4dc C |
1 | import { VideoWatchPage } from './po/video-watch.po' |
2 | import { VideoUploadPage } from './po/video-upload.po' | |
3 | import { LoginPage } from './po/login.po' | |
4 | import { browser } from 'protractor' | |
5 | ||
6 | describe('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 | }) |