diff --git a/cvat-ui/src/components/header/settings-modal/player-settings.tsx b/cvat-ui/src/components/header/settings-modal/player-settings.tsx
index d87a357b6e48d69f961a95c67e96ba5b8cd0e48e..13d98dc9c41b417fd42e7613087ac97978910b02 100644
--- a/cvat-ui/src/components/header/settings-modal/player-settings.tsx
+++ b/cvat-ui/src/components/header/settings-modal/player-settings.tsx
@@ -1,4 +1,4 @@
-// Copyright (C) 2020 Intel Corporation
+// Copyright (C) 2020-2021 Intel Corporation
//
// SPDX-License-Identifier: MIT
@@ -109,27 +109,28 @@ export default function PlayerSettingsComponent(props: Props): JSX.Element {
Player speed
diff --git a/tests/cypress/integration/actions_tasks_objects/case_50_settings_player_speed.js b/tests/cypress/integration/actions_tasks_objects/case_50_settings_player_speed.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec696c6dcfe1a25aba27dcffe53dd303f3f9e1a3
--- /dev/null
+++ b/tests/cypress/integration/actions_tasks_objects/case_50_settings_player_speed.js
@@ -0,0 +1,79 @@
+// Copyright (C) 2021 Intel Corporation
+//
+// SPDX-License-Identifier: MIT
+
+///
+
+import { taskName, imageFileName } from '../../support/const';
+
+context('Settings. "Player speed" option.', () => {
+ const caseId = '50';
+
+ let timeBeforePlay = 0;
+ let timeAferPlay = 0;
+ let durationSlower = 0;
+ let durationFastest = 0;
+ let durationFast = 0;
+
+ function changePlayerSpeed(speed) {
+ cy.openSettings();
+ cy.get('.cvat-player-settings-speed').within(() => {
+ cy.get('.cvat-player-settings-speed-select').click();
+ });
+ cy.get(`.cvat-player-settings-speed-${speed}`).click();
+ cy.get('.cvat-player-settings-speed-select').should(
+ 'contain.text',
+ speed.charAt(0).toUpperCase() + speed.slice(1),
+ );
+ cy.closeSettings();
+ }
+
+ before(() => {
+ cy.openTaskJob(taskName);
+ });
+
+ describe(`Testing case "${caseId}"`, () => {
+ it('Change "Player speed" to "Slower" and measure the speed of changing frames. Go to first frame.', () => {
+ changePlayerSpeed('slower');
+ cy.get('.cvat-player-play-button').click();
+ timeBeforePlay = Date.now();
+ cy.log(timeBeforePlay);
+ cy.get('.cvat-player-filename-wrapper')
+ .should('have.text', `${imageFileName}_28.png`)
+ .then(() => {
+ timeAferPlay = Date.now();
+ durationSlower = timeAferPlay - timeBeforePlay;
+ });
+ cy.goCheckFrameNumber(0);
+ });
+
+ it('Change "Player speed" to "Fastest" and measure the speed of changing frames. The "Slower" is expected to be slower than the "Fastest"', () => {
+ changePlayerSpeed('fastest');
+ cy.get('.cvat-player-play-button').click();
+ timeBeforePlay = Date.now();
+ cy.log(timeBeforePlay);
+ cy.get('.cvat-player-filename-wrapper')
+ .should('have.text', `${imageFileName}_28.png`)
+ .then(() => {
+ timeAferPlay = Date.now();
+ durationFastest = timeAferPlay - timeBeforePlay;
+ expect(durationSlower).to.be.greaterThan(durationFastest);
+ });
+ cy.goCheckFrameNumber(0);
+ });
+
+ it('Change "Player speed" to "Fast" and measure the speed of changing frames. The "Slower" is expected to be slower than the "Fastest"', () => {
+ changePlayerSpeed('fast');
+ cy.get('.cvat-player-play-button').click();
+ timeBeforePlay = Date.now();
+ cy.log(timeBeforePlay);
+ cy.get('.cvat-player-filename-wrapper')
+ .should('have.text', `${imageFileName}_28.png`)
+ .then(() => {
+ timeAferPlay = Date.now();
+ durationFast = timeAferPlay - timeBeforePlay;
+ expect(durationSlower).to.be.greaterThan(durationFast);
+ });
+ });
+ });
+});