-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 () {
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()
}
}