]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/e2e/src/videos.e2e-spec.ts
Cleanup E2E tests
[github/Chocobozzz/PeerTube.git] / client / e2e / src / videos.e2e-spec.ts
index 27706a5061d3cf913e1e0b0d8695467a5e2b0ba5..bbc5f7da3a290469f1e6d766cb3a8f7c12cc48a3 100644 (file)
@@ -1,9 +1,11 @@
-import { VideoWatchPage } from './po/video-watch.po'
-import { VideoUploadPage } from './po/video-upload.po'
-import { LoginPage } from './po/login.po'
 import { browser } from 'protractor'
-import { VideoUpdatePage } from './po/video-update.po'
+import { AppPage } from './po/app.po'
+import { LoginPage } from './po/login.po'
 import { MyAccountPage } from './po/my-account'
+import { VideoUpdatePage } from './po/video-update.po'
+import { VideoUploadPage } from './po/video-upload.po'
+import { VideoWatchPage } from './po/video-watch.po'
+import { isIOS, isMobileDevice, isSafari } from './utils'
 
 async function skipIfUploadNotSupported () {
   if (await isMobileDevice() || await isSafari()) {
@@ -14,22 +16,13 @@ async function skipIfUploadNotSupported () {
   return false
 }
 
-async function isMobileDevice () {
-  const caps = await browser.getCapabilities()
-  return caps.get('realMobile') === 'true' || caps.get('realMobile') === true
-}
-
-async function isSafari () {
-  const caps = await browser.getCapabilities()
-  return caps.get('browserName') && caps.get('browserName').toLowerCase() === 'safari'
-}
-
 describe('Videos workflow', () => {
   let videoWatchPage: VideoWatchPage
   let videoUploadPage: VideoUploadPage
   let videoUpdatePage: VideoUpdatePage
   let myAccountPage: MyAccountPage
   let loginPage: LoginPage
+  let appPage: AppPage
 
   let videoName = new Date().getTime() + ' video'
   const video2Name = new Date().getTime() + ' second video'
@@ -42,14 +35,23 @@ describe('Videos workflow', () => {
     videoUpdatePage = new VideoUpdatePage()
     myAccountPage = new MyAccountPage()
     loginPage = new LoginPage()
+    appPage = new AppPage()
 
-    if (await isMobileDevice()) {
-      console.log('Mobile device detected.')
-    }
+    if (await isIOS()) {
+      // iOS does not seem to work with protractor
+      // https://github.com/angular/protractor/issues/2840
+      browser.ignoreSynchronization = true
 
-    if (await isSafari()) {
+      console.log('iOS detected')
+    } else if (await isMobileDevice()) {
+      console.log('Android detected.')
+    } else if (await isSafari()) {
       console.log('Safari detected.')
     }
+
+    if (!await isMobileDevice()) {
+      await browser.driver.manage().window().maximize()
+    }
   })
 
   it('Should log in', async () => {
@@ -61,6 +63,12 @@ describe('Videos workflow', () => {
     return loginPage.loginAsRootUser()
   })
 
+  it('Should close the welcome modal', async () => {
+    if (await skipIfUploadNotSupported()) return
+
+    await appPage.closeWelcomeModal()
+  })
+
   it('Should upload a video', async () => {
     if (await skipIfUploadNotSupported()) return
 
@@ -91,7 +99,7 @@ describe('Videos workflow', () => {
   it('Should play the video', async () => {
     videoWatchUrl = await browser.getCurrentUrl()
 
-    await videoWatchPage.playAndPauseVideo(true, await isMobileDevice())
+    await videoWatchPage.playAndPauseVideo(true)
     expect(videoWatchPage.getWatchVideoPlayerCurrentTime()).toBeGreaterThanOrEqual(2)
   })
 
@@ -100,7 +108,7 @@ describe('Videos workflow', () => {
 
     await videoWatchPage.goOnAssociatedEmbed()
 
-    await videoWatchPage.playAndPauseVideo(false, await isMobileDevice())
+    await videoWatchPage.playAndPauseVideo(false)
     expect(videoWatchPage.getWatchVideoPlayerCurrentTime()).toBeGreaterThanOrEqual(2)
 
     await browser.waitForAngularEnabled(true)
@@ -111,7 +119,7 @@ describe('Videos workflow', () => {
 
     await videoWatchPage.goOnP2PMediaLoaderEmbed()
 
-    await videoWatchPage.playAndPauseVideo(false, await isMobileDevice())
+    await videoWatchPage.playAndPauseVideo(false)
     expect(videoWatchPage.getWatchVideoPlayerCurrentTime()).toBeGreaterThanOrEqual(2)
 
     await browser.waitForAngularEnabled(true)