diff --git a/test/e2e/specs/vr360VideosPage.spec.ts b/test/e2e/specs/vr360VideosPage.spec.ts new file mode 100644 index 00000000..b053fdac --- /dev/null +++ b/test/e2e/specs/vr360VideosPage.spec.ts @@ -0,0 +1,20 @@ +import { vpTest } from '../fixtures/vpTest'; +import { test } from '@playwright/test'; +import { waitForPageToLoadWithTimeout } from '../src/helpers/waitForPageToLoadWithTimeout'; +import { getLinkByName } from '../testData/pageLinksData'; +import { ExampleLinkName } from '../testData/ExampleLinkNames'; + +const link = getLinkByName(ExampleLinkName.VR360Videos); + +vpTest(`Test if video on VR 360 videos page is playing as expected`, async ({ page, pomPages }) => { + await test.step('Navigate to VR 360 videos page by clicking on link', async () => { + await pomPages.mainPage.clickLinkByName(link.name); + await waitForPageToLoadWithTimeout(page, 5000); + }); + await test.step('Click on play button of 360 video play video', async () => { + return pomPages.vr360VideosPage.vr360VideoComponent.clickPlay(); + }); + await test.step('Validating that 360 video is playing', async () => { + await pomPages.vr360VideosPage.vr360VideoComponent.validateVideoIsPlaying(true, 6000); + }); +}); diff --git a/test/e2e/src/pom/PageManager.ts b/test/e2e/src/pom/PageManager.ts index 469caadf..48afd705 100644 --- a/test/e2e/src/pom/PageManager.ts +++ b/test/e2e/src/pom/PageManager.ts @@ -27,6 +27,7 @@ import { ShoppableVideosPage } from './shoppableVideosPage'; import { SubtitlesAndCaptionsPage } from './subtitlesAndCaptionsPage'; import { VideoTransformationsPage } from './videoTransformationsPage'; import { VastAndVpaidPage } from './vastAndVpaidPage'; +import { Vr360VideosPage } from './vr360VideosPage'; /** * Page manager, @@ -186,5 +187,9 @@ export class PageManager { public get vastAndVpaidPage(): VastAndVpaidPage { return this.getPage(VastAndVpaidPage); } + + public get vr360VideosPage(): Vr360VideosPage { + return this.getPage(Vr360VideosPage); + } } export default PageManager; diff --git a/test/e2e/src/pom/vr360VideosPage.ts b/test/e2e/src/pom/vr360VideosPage.ts new file mode 100644 index 00000000..c88089ec --- /dev/null +++ b/test/e2e/src/pom/vr360VideosPage.ts @@ -0,0 +1,16 @@ +import { Page } from '@playwright/test'; +import { VideoComponent } from '../../components/videoComponent'; +import { BasePage } from './BasePage'; +const VR_360_VIDEO_SELECTOR = '//*[@id="player_html5_api"]'; + +/** + * Video player examples VR 360 videos page object + */ +export class Vr360VideosPage extends BasePage { + public vr360VideoComponent: VideoComponent; + + constructor(page: Page) { + super(page); + this.vr360VideoComponent = new VideoComponent(page, VR_360_VIDEO_SELECTOR); + } +}