1 import { by, element, browser } from 'protractor'
3 export class MyAccountPage {
5 navigateToMyVideos () {
6 return element(by.css('a[href="/my-library/videos"]')).click()
9 navigateToMyPlaylists () {
10 return element(by.css('a[href="/my-library/video-playlists"]')).click()
13 navigateToMyHistory () {
14 return element(by.css('a[href="/my-library/history/videos"]')).click()
19 removeVideo (name: string) {
20 return this.getVideoElement(name).element(by.css('my-delete-button')).click()
24 return element(by.css('.action-button-submit')).click()
27 countVideos (names: string[]) {
28 return element.all(by.css('.video'))
30 return e.element(by.css('.video-miniature-name'))
32 .then(t => names.some(n => t.includes(n)))
37 // My account playlists
39 getPlaylistVideosText (name: string) {
40 return this.getPlaylist(name).element(by.css('.miniature-playlist-info-overlay')).getText()
43 clickOnPlaylist (name: string) {
44 return this.getPlaylist(name).element(by.css('.miniature-thumbnail')).click()
47 countTotalPlaylistElements () {
48 return element.all(by.css('my-video-playlist-element-miniature')).count()
52 return element(by.css('.playlist-info .miniature-thumbnail')).click()
55 async goOnAssociatedPlaylistEmbed () {
56 let url = await browser.getCurrentUrl()
57 url = url.replace('/videos/watch/playlist/', '/video-playlists/embed/')
58 url = url.replace(':3333', ':9001')
60 return browser.get(url)
65 private getVideoElement (name: string) {
66 return element.all(by.css('.video'))
67 .filter(e => e.element(by.css('.video-miniature-name')).getText().then(t => t.includes(name)))
71 // My account playlists
73 private getPlaylist (name: string) {
74 return element.all(by.css('my-video-playlist-miniature'))
75 .filter(e => e.element(by.css('.miniature-name')).getText().then(t => t.includes(name)))