aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/e2e/src/po/video-watch.po.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/e2e/src/po/video-watch.po.ts')
-rw-r--r--client/e2e/src/po/video-watch.po.ts21
1 files changed, 12 insertions, 9 deletions
diff --git a/client/e2e/src/po/video-watch.po.ts b/client/e2e/src/po/video-watch.po.ts
index c5e37e6de..bcfceefbc 100644
--- a/client/e2e/src/po/video-watch.po.ts
+++ b/client/e2e/src/po/video-watch.po.ts
@@ -1,4 +1,5 @@
1import { browser, by, element, ElementFinder, ExpectedConditions } from 'protractor' 1import { browser, by, element, ElementFinder, ExpectedConditions } from 'protractor'
2import { browserSleep } from '../utils'
2 3
3export class VideoWatchPage { 4export class VideoWatchPage {
4 async goOnVideosList (isMobileDevice: boolean, isSafari: boolean) { 5 async goOnVideosList (isMobileDevice: boolean, isSafari: boolean) {
@@ -11,10 +12,10 @@ export class VideoWatchPage {
11 url = '/videos/recently-added' 12 url = '/videos/recently-added'
12 } 13 }
13 14
14 await browser.get(url) 15 await browser.get(url, 20000)
15 16
16 // Waiting the following element does not work on Safari... 17 // Waiting the following element does not work on Safari...
17 if (isSafari) return browser.sleep(3000) 18 if (isSafari) return browserSleep(3000)
18 19
19 const elem = element.all(by.css('.videos .video-miniature .video-miniature-name')).first() 20 const elem = element.all(by.css('.videos .video-miniature .video-miniature-name')).first()
20 return browser.wait(browser.ExpectedConditions.visibilityOf(elem)) 21 return browser.wait(browser.ExpectedConditions.visibilityOf(elem))
@@ -27,13 +28,12 @@ export class VideoWatchPage {
27 } 28 }
28 29
29 waitWatchVideoName (videoName: string, isMobileDevice: boolean, isSafari: boolean) { 30 waitWatchVideoName (videoName: string, isMobileDevice: boolean, isSafari: boolean) {
31 if (isSafari) return browserSleep(5000)
32
30 // On mobile we display the first node, on desktop the second 33 // On mobile we display the first node, on desktop the second
31 const index = isMobileDevice ? 0 : 1 34 const index = isMobileDevice ? 0 : 1
32 35
33 const elem = element.all(by.css('.video-info .video-info-name')).get(index) 36 const elem = element.all(by.css('.video-info .video-info-name')).get(index)
34
35 if (isSafari) return browser.sleep(5000)
36
37 return browser.wait(browser.ExpectedConditions.textToBePresentInElement(elem, videoName)) 37 return browser.wait(browser.ExpectedConditions.textToBePresentInElement(elem, videoName))
38 } 38 }
39 39
@@ -55,7 +55,7 @@ export class VideoWatchPage {
55 await playButton.click() 55 await playButton.click()
56 } 56 }
57 57
58 await browser.sleep(1000) 58 await browserSleep(1000)
59 await browser.wait(browser.ExpectedConditions.invisibilityOf(element(by.css('.vjs-loading-spinner')))) 59 await browser.wait(browser.ExpectedConditions.invisibilityOf(element(by.css('.vjs-loading-spinner'))))
60 60
61 const videojsEl = element(by.css('div.video-js')) 61 const videojsEl = element(by.css('div.video-js'))
@@ -63,13 +63,16 @@ export class VideoWatchPage {
63 63
64 // On Android, we need to click twice on "play" (BrowserStack particularity) 64 // On Android, we need to click twice on "play" (BrowserStack particularity)
65 if (isMobileDevice) { 65 if (isMobileDevice) {
66 await browser.sleep(3000) 66 await browserSleep(3000)
67
67 await videojsEl.click() 68 await videojsEl.click()
68 } 69 }
69 70
70 await browser.sleep(7000) 71 browser.ignoreSynchronization = false
72 await browserSleep(7000)
73 browser.ignoreSynchronization = true
71 74
72 return videojsEl.click() 75 await videojsEl.click()
73 } 76 }
74 77
75 async clickOnVideo (videoName: string) { 78 async clickOnVideo (videoName: string) {