]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/e2e/src/po/my-account.ts
Support '/w/' and '/w/p/' for watch page
[github/Chocobozzz/PeerTube.git] / client / e2e / src / po / my-account.ts
index e49372983c482a4bda9a89fb4ad6fdda7ab2f1dd..9866953e910bfc36900f8e85d3e29f1edd2fe67b 100644 (file)
@@ -1,49 +1,54 @@
-import { by, element } from 'protractor'
+import { by, element, browser } from 'protractor'
 
 export class MyAccountPage {
 
   navigateToMyVideos () {
-    return element(by.css('a[href="/my-account/videos"]')).click()
+    return element(by.css('a[href="/my-library/videos"]')).click()
   }
 
   navigateToMyPlaylists () {
-    return element(by.css('a[href="/my-account/video-playlists"]')).click()
+    return element(by.css('a[href="/my-library/video-playlists"]')).click()
   }
 
   navigateToMyHistory () {
-    return element(by.css('a[href="/my-account/history/videos"]')).click()
+    return element(by.css('a[href="/my-library/history/videos"]')).click()
   }
 
   // My account Videos
 
-  getLastVideoName () {
-    return this.getAllVideoNameElements().first().getText()
-  }
+  async removeVideo (name: string) {
+    const container = this.getVideoElement(name)
+
+    await container.element(by.css('.dropdown-toggle')).click()
 
-  removeLastVideo () {
-    return this.getLastVideoElement().element(by.css('my-delete-button')).click()
+    const dropdownMenu = container.element(by.css('.dropdown-menu .dropdown-item:nth-child(2)'))
+    await browser.wait(browser.ExpectedConditions.presenceOf(dropdownMenu))
+
+    return dropdownMenu.click()
   }
 
   validRemove () {
-    return element(by.css('.action-button-submit')).click()
+    return element(by.css('input[type=submit]')).click()
   }
 
-  countVideos () {
-    return this.getAllVideoNameElements().count()
+  countVideos (names: string[]) {
+    return element.all(by.css('.video'))
+                  .filter(e => {
+                    return e.element(by.css('.video-miniature-name'))
+                            .getText()
+                            .then(t => names.some(n => t.includes(n)))
+                  })
+                  .count()
   }
 
   // My account playlists
 
-  getLastUpdatedPlaylistName () {
-    return this.getLastUpdatedPlaylist().element(by.css('.miniature-name')).getText()
-  }
-
-  getLastUpdatedPlaylistVideosText () {
-    return this.getLastUpdatedPlaylist().element(by.css('.miniature-playlist-info-overlay')).getText()
+  getPlaylistVideosText (name: string) {
+    return this.getPlaylist(name).element(by.css('.miniature-playlist-info-overlay')).getText()
   }
 
-  clickOnLastUpdatedPlaylist () {
-    return this.getLastUpdatedPlaylist().element(by.css('.miniature-thumbnail')).click()
+  clickOnPlaylist (name: string) {
+    return this.getPlaylist(name).element(by.css('.miniature-thumbnail')).click()
   }
 
   countTotalPlaylistElements () {
@@ -54,19 +59,27 @@ export class MyAccountPage {
     return element(by.css('.playlist-info .miniature-thumbnail')).click()
   }
 
-  // My account Videos
+  async goOnAssociatedPlaylistEmbed () {
+    let url = await browser.getCurrentUrl()
+    url = url.replace('/w/p/', '/video-playlists/embed/')
+    url = url.replace(':3333', ':9001')
 
-  private getLastVideoElement () {
-    return element.all(by.css('.video')).first()
+    return browser.get(url)
   }
 
-  private getAllVideoNameElements () {
-    return element.all(by.css('.video-miniature-name'))
+  // My account Videos
+
+  private getVideoElement (name: string) {
+    return element.all(by.css('.video'))
+                  .filter(e => e.element(by.css('.video-miniature-name')).getText().then(t => t.includes(name)))
+                  .first()
   }
 
   // My account playlists
 
-  private getLastUpdatedPlaylist () {
-    return element.all(by.css('my-video-playlist-miniature')).first()
+  private getPlaylist (name: string) {
+    return element.all(by.css('my-video-playlist-miniature'))
+      .filter(e => e.element(by.css('.miniature-name')).getText().then(t => t.includes(name)))
+      .first()
   }
 }