1 import { by, element } from 'protractor'
3 export class MyAccountPage {
5 navigateToMyVideos () {
6 return element(by.css('a[href="/my-account/videos"]')).click()
9 navigateToMyPlaylists () {
10 return element(by.css('a[href="/my-account/video-playlists"]')).click()
13 navigateToMyHistory () {
14 return element(by.css('a[href="/my-account/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()
57 private getVideoElement (name: string) {
58 return element.all(by.css('.video'))
59 .filter(e => e.element(by.css('.video-miniature-name')).getText().then(t => t.includes(name)))
63 // My account playlists
65 private getPlaylist (name: string) {
66 return element.all(by.css('my-video-playlist-miniature'))
67 .filter(e => e.element(by.css('.miniature-name')).getText().then(t => t.includes(name)))