Cypress. Test for "Switch text font size and position". (#4027)
* Add className * Update the test. * Some reworks. * Fix typo * Revert changes in the case 36 * Move to a different test. Added check a text position * Rework calculate the shape height * Enabling the test for Firefox Co-authored-by: dvkruchinin <dvkruchinin@gmail.com>main
parent
5e5555d259
commit
3cf5265b01
@ -0,0 +1,126 @@
|
||||
// Copyright (C) 2021 Intel Corporation
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/// <reference types="cypress" />
|
||||
|
||||
import { taskName, labelName } from '../../support/const';
|
||||
|
||||
context('Settings. Text size/position.', () => {
|
||||
const caseId = '111';
|
||||
const rectangleShape2Points = {
|
||||
points: 'By 2 Points',
|
||||
type: 'Shape',
|
||||
labelName,
|
||||
firstX: 100,
|
||||
firstY: 100,
|
||||
secondX: 500,
|
||||
secondY: 300,
|
||||
};
|
||||
const polygonTrack = {
|
||||
reDraw: false,
|
||||
type: 'Track',
|
||||
labelName,
|
||||
pointsMap: [
|
||||
{ x: 100, y: 400 },
|
||||
{ x: 550, y: 400 },
|
||||
{ x: 550, y: 700 },
|
||||
{ x: 100, y: 700 },
|
||||
],
|
||||
complete: true,
|
||||
numberOfPoints: null,
|
||||
};
|
||||
|
||||
function testTextPosition(shape, expectedPosition) {
|
||||
let shapeLeftPosition = 0;
|
||||
let shapeTopPosition = 0;
|
||||
let shapeWidth = 0;
|
||||
let shapeHeight = 0;
|
||||
let textLeftPosition = 0;
|
||||
let textTopPosition = 0;
|
||||
let getText;
|
||||
|
||||
cy.get(shape).then(($shape) => {
|
||||
shapeLeftPosition = Math.trunc($shape.position().left);
|
||||
shapeTopPosition = Math.trunc($shape.position().top);
|
||||
if (shape === '#cvat_canvas_shape_1') {
|
||||
shapeWidth = $shape.attr('width');
|
||||
shapeHeight = $shape.attr('height');
|
||||
} else {
|
||||
const points = $shape.attr('points').split(' ');
|
||||
shapeWidth = +points[1].split(',')[0] - +points[0].split(',')[0];
|
||||
shapeHeight = +points[2].split(',')[1] - +points[0].split(',')[1];
|
||||
}
|
||||
if (shape === '#cvat_canvas_shape_1') {
|
||||
getText = cy.get('.cvat_canvas_text').first();
|
||||
} else {
|
||||
getText = cy.get('.cvat_canvas_text').last();
|
||||
}
|
||||
getText.then(($text) => {
|
||||
textLeftPosition = Math.trunc($text.position().left);
|
||||
textTopPosition = Math.trunc($text.position().top);
|
||||
if (expectedPosition === 'outside') {
|
||||
// Text outside the shape of the right. Slightly below the shape upper edge.
|
||||
expect(+shapeLeftPosition + +shapeWidth).lessThan(+textLeftPosition);
|
||||
expect(+textTopPosition).to.be.within(+shapeTopPosition, +shapeTopPosition + 10);
|
||||
} else {
|
||||
// Text inside the shape
|
||||
expect(+shapeLeftPosition + +shapeWidth / 2).greaterThan(+textLeftPosition);
|
||||
expect(+shapeTopPosition + +shapeHeight / 2).greaterThan(+textTopPosition);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
before(() => {
|
||||
cy.openTaskJob(taskName);
|
||||
cy.createRectangle(rectangleShape2Points);
|
||||
cy.createPolygon(polygonTrack);
|
||||
|
||||
// Always show object details
|
||||
cy.openSettings();
|
||||
cy.get('.cvat-settings-modal').within(() => {
|
||||
cy.contains('Workspace').click();
|
||||
cy.get('.cvat-workspace-settings-show-text-always').within(() => {
|
||||
cy.get('[type="checkbox"]').check();
|
||||
});
|
||||
});
|
||||
cy.closeSettings();
|
||||
});
|
||||
|
||||
describe(`Testing case "${caseId}"`, () => {
|
||||
it('Text position.', () => {
|
||||
testTextPosition('#cvat_canvas_shape_1', 'outside');
|
||||
testTextPosition('#cvat_canvas_shape_2', 'outside');
|
||||
|
||||
// Change the text position
|
||||
cy.openSettings();
|
||||
cy.get('.cvat-workspace-settings-text-position')
|
||||
.find('[title="Auto"]')
|
||||
.click();
|
||||
cy.get('.ant-select-dropdown')
|
||||
.not('.ant-select-dropdown-hidden')
|
||||
.find('[title="Center"]')
|
||||
.click();
|
||||
cy.closeSettings();
|
||||
|
||||
testTextPosition('#cvat_canvas_shape_1', 'inside');
|
||||
testTextPosition('#cvat_canvas_shape_2', 'inside');
|
||||
});
|
||||
|
||||
it('Text font size.', () => {
|
||||
cy.get('.cvat_canvas_text').should('have.attr', 'style', 'font-size: 14px;');
|
||||
cy.openSettings();
|
||||
|
||||
// Change the text size to 16
|
||||
cy.get('.cvat-workspace-settings-text-size')
|
||||
.find('input')
|
||||
.should('have.attr', 'value', '14')
|
||||
.clear()
|
||||
.type('16')
|
||||
.should('have.attr', 'value', '16');
|
||||
cy.closeSettings();
|
||||
cy.get('.cvat_canvas_text').should('have.attr', 'style', 'font-size: 16px;');
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue