Skip to content

Commit 563445d

Browse files
authored
vp test: test if videos on poster options page are playing (#784)
1 parent bc08526 commit 563445d

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { vpTest } from '../fixtures/vpTest';
2+
import { test } from '@playwright/test';
3+
import { waitForPageToLoadWithTimeout } from '../src/helpers/waitForPageToLoadWithTimeout';
4+
import { getLinkByName } from '../testData/pageLinksData';
5+
import { ExampleLinkName } from '../testData/ExampleLinkNames';
6+
7+
const link = getLinkByName(ExampleLinkName.PosterOptions);
8+
9+
vpTest(`Test if 4 videos on poster options page are playing as expected`, async ({ page, pomPages }) => {
10+
await test.step('Navigate to poster options page by clicking on link', async () => {
11+
await pomPages.mainPage.clickLinkByName(link.name);
12+
await waitForPageToLoadWithTimeout(page, 5000);
13+
});
14+
await test.step('Click on play button of custom image poster player to play video', async () => {
15+
return pomPages.posterOptionsPage.posterOptionsCustomImageVideoComponent.clickPlay();
16+
});
17+
await test.step('Validating that the custom image poster video is playing', async () => {
18+
await pomPages.posterOptionsPage.posterOptionsCustomImageVideoComponent.validateVideoIsPlaying(true);
19+
});
20+
await test.step('Click on play button of specific frame poster player to play video', async () => {
21+
return pomPages.posterOptionsPage.posterOptionsSpecificFrameVideoComponent.clickPlay();
22+
});
23+
await test.step('Validating that specific frame poster video is playing', async () => {
24+
await pomPages.posterOptionsPage.posterOptionsSpecificFrameVideoComponent.validateVideoIsPlaying(true);
25+
});
26+
await test.step('Click on play button of transformations array poster player to play video', async () => {
27+
return pomPages.posterOptionsPage.posterOptionsTransformationsArrayVideoComponent.clickPlay();
28+
});
29+
await test.step('Validating that transformations array poster video is playing', async () => {
30+
await pomPages.posterOptionsPage.posterOptionsTransformationsArrayVideoComponent.validateVideoIsPlaying(true);
31+
});
32+
await test.step('Click on play button of raw url no poster player to play video', async () => {
33+
return pomPages.posterOptionsPage.posterOptionsRawUrlNoPosterVideoComponent.clickPlay();
34+
});
35+
await test.step('Validating that raw url no poster video is playing', async () => {
36+
await pomPages.posterOptionsPage.posterOptionsRawUrlNoPosterVideoComponent.validateVideoIsPlaying(true);
37+
});
38+
});

test/e2e/src/pom/PageManager.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { ForceHlsSubtitlesPage } from './forceHlsSubtitlesPage';
1818
import { MultiplePlayersPage } from './multiplePlayersPage';
1919
import { PlaylistPage } from './playlistPage';
2020
import { PlaylistByTagPage } from './playlistByTagPage';
21+
import { PosterOptionsPage } from './posterOptionsPage';
2122

2223
/**
2324
* Page manager,
@@ -141,5 +142,9 @@ export class PageManager {
141142
public get playlistByTagPage(): PlaylistByTagPage {
142143
return this.getPage(PlaylistByTagPage);
143144
}
145+
146+
public get posterOptionsPage(): PosterOptionsPage {
147+
return this.getPage(PosterOptionsPage);
148+
}
144149
}
145150
export default PageManager;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { Page } from '@playwright/test';
2+
import { VideoComponent } from '../../components/videoComponent';
3+
import { BasePage } from './BasePage';
4+
const POSTER_OPTIONS_PAGE_CUSTOM_IMAGE_VIDEO_SELECTOR = '//*[@id="player-image-poster_html5_api"]';
5+
const POSTER_OPTIONS_PAGE_SPECIFIC_FRAME_VIDEO_SELECTOR = '//*[@id="player-frame-0_html5_api"]';
6+
const POSTER_OPTIONS_PAGE_TRANSFORMATIONS_ARRAY_VIDEO_SELECTOR = '//*[@id="player-poster-options_html5_api"]';
7+
const POSTER_OPTIONS_PAGE_RAW_URL_NO_POSTER_VIDEO_SELECTOR = '//*[@id="player-raw_html5_api"]';
8+
9+
/**
10+
* Video player examples poster options page object
11+
*/
12+
export class PosterOptionsPage extends BasePage {
13+
public posterOptionsCustomImageVideoComponent: VideoComponent;
14+
public posterOptionsSpecificFrameVideoComponent: VideoComponent;
15+
public posterOptionsTransformationsArrayVideoComponent: VideoComponent;
16+
public posterOptionsRawUrlNoPosterVideoComponent: VideoComponent;
17+
18+
constructor(page: Page) {
19+
super(page);
20+
this.posterOptionsCustomImageVideoComponent = new VideoComponent(page, POSTER_OPTIONS_PAGE_CUSTOM_IMAGE_VIDEO_SELECTOR);
21+
this.posterOptionsSpecificFrameVideoComponent = new VideoComponent(page, POSTER_OPTIONS_PAGE_SPECIFIC_FRAME_VIDEO_SELECTOR);
22+
this.posterOptionsTransformationsArrayVideoComponent = new VideoComponent(page, POSTER_OPTIONS_PAGE_TRANSFORMATIONS_ARRAY_VIDEO_SELECTOR);
23+
this.posterOptionsRawUrlNoPosterVideoComponent = new VideoComponent(page, POSTER_OPTIONS_PAGE_RAW_URL_NO_POSTER_VIDEO_SELECTOR);
24+
}
25+
}

0 commit comments

Comments
 (0)