-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cypress test. Hotkeys to change labels feature. (#3086)
* Cypress test. Hotkeys to change labels feature. * Apply comments
- Loading branch information
1 parent
085d260
commit a2170f7
Showing
1 changed file
with
147 additions
and
0 deletions.
There are no files selected for viewing
147 changes: 147 additions & 0 deletions
147
tests/cypress/integration/actions_tasks_objects/case_72_hotkeys_change_labels.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
// Copyright (C) 2021 Intel Corporation | ||
// | ||
// SPDX-License-Identifier: MIT | ||
|
||
/// <reference types="cypress" /> | ||
|
||
context('Hotkeys to change labels feature.', () => { | ||
const caseId = '72'; | ||
const labelName = `Case ${caseId}`; | ||
const taskName = labelName; | ||
const attrName = `Attr for ${labelName}`; | ||
const textDefaultValue = 'Some default value for type Text'; | ||
const imagesCount = 1; | ||
const imageFileName = `image_${labelName.replace(' ', '_').toLowerCase()}`; | ||
const width = 800; | ||
const height = 800; | ||
const posX = 10; | ||
const posY = 10; | ||
const color = 'gray'; | ||
const archiveName = `${imageFileName}.zip`; | ||
const archivePath = `cypress/fixtures/${archiveName}`; | ||
const imagesFolder = `cypress/fixtures/${imageFileName}`; | ||
const directoryToArchive = imagesFolder; | ||
const secondLabel = `Case ${caseId} second` | ||
let firstLabelCurrentVal = ''; | ||
let secondLabelCurrentVal = ''; | ||
|
||
function testCheckingAlwaysShowObjectDetails(check) { | ||
cy.openSettings(); | ||
cy.get('.cvat-settings-modal').within(() => { | ||
cy.contains('Workspace').click(); | ||
cy.get('.cvat-workspace-settings-show-text-always').within(() => { | ||
check | ||
? cy.get('[type="checkbox"]').check().should('be.checked') | ||
: cy.get('[type="checkbox"]').uncheck().should('not.be.checked'); | ||
}); | ||
}); | ||
cy.closeSettings(); | ||
} | ||
|
||
before(() => { | ||
cy.visit('auth/login'); | ||
cy.login(); | ||
cy.imageGenerator(imagesFolder, imageFileName, width, height, color, posX, posY, labelName, imagesCount); | ||
cy.createZipArchive(directoryToArchive, archivePath); | ||
cy.createAnnotationTask(taskName, labelName, attrName, textDefaultValue, archiveName); | ||
cy.openTask(taskName); | ||
cy.addNewLabel(secondLabel); | ||
cy.openJob(); | ||
}); | ||
|
||
after(() => { | ||
cy.goToTaskList(); | ||
cy.deleteTask(taskName); | ||
}); | ||
|
||
describe(`Testing case "${caseId}"`, () => { | ||
// Collect labels text. Since the server can return them in reverse order. | ||
it('Collect label values relative to hotkeys.', () => { | ||
cy.get('.cvat-objects-sidebar-tabs').within(() => { | ||
cy.contains('[role="tab"]', 'Labels').click(); | ||
}); | ||
cy.get('.cvat-objects-sidebar-label-item').then(($objectsSidebarLabelItem) => { | ||
firstLabelCurrentVal = $objectsSidebarLabelItem[0].innerText.slice(0, -2); | ||
secondLabelCurrentVal = $objectsSidebarLabelItem[1].innerText.slice(0, -2); | ||
}); | ||
cy.get('.cvat-objects-sidebar-tabs').within(() => { | ||
cy.contains('[role="tab"]', 'Objects').click(); | ||
}); | ||
}); | ||
|
||
it('Changing a label for a shape using hotkey.', () => { | ||
const createPolygonShape = { | ||
reDraw: false, | ||
type: 'Shape', | ||
labelName: firstLabelCurrentVal, | ||
pointsMap: [ | ||
{ x: 200, y: 200 }, | ||
{ x: 300, y: 200 }, | ||
{ x: 300, y: 300 }, | ||
], | ||
complete: true, | ||
numberOfPoints: null, | ||
}; | ||
// Set settings "Always show object details" to check issue 3083 | ||
testCheckingAlwaysShowObjectDetails(true); | ||
cy.createPolygon(createPolygonShape); | ||
cy.get('#cvat-objects-sidebar-state-item-1').find('.cvat-objects-sidebar-state-item-label-selector').should('have.text', firstLabelCurrentVal); | ||
cy.get('.cvat-canvas-container').click(270, 260); | ||
cy.get('#cvat_canvas_shape_1').should('have.class', 'cvat_canvas_shape_activated'); | ||
cy.contains('tspan', `${firstLabelCurrentVal} 1 (manual)`).should('be.visible'); | ||
cy.get('body').type('{Ctrl}2') | ||
cy.get('#cvat-objects-sidebar-state-item-1').find('.cvat-objects-sidebar-state-item-label-selector').should('have.text', secondLabelCurrentVal); | ||
cy.contains('tspan', `${secondLabelCurrentVal} 1 (manual)`).should('be.visible'); | ||
// Unset settings "Always show object details" | ||
testCheckingAlwaysShowObjectDetails(); | ||
}); | ||
|
||
it('Changing default label before drawing a shape.', () => { | ||
cy.interactControlButton('draw-rectangle'); | ||
cy.switchLabel(firstLabelCurrentVal, 'draw-rectangle'); | ||
cy.get('.cvat-draw-rectangle-popover-visible').within(() => { | ||
cy.contains('button', 'Shape').click(); | ||
}); | ||
cy.get('body').type('{Ctrl}2'); | ||
cy.contains(`Default label was changed to "${secondLabelCurrentVal}"`).should('exist'); | ||
cy.get('.cvat-canvas-container').click(500, 500).click(600, 600); | ||
cy.get('#cvat-objects-sidebar-state-item-2').find('.cvat-objects-sidebar-state-item-label-selector').should('have.text', secondLabelCurrentVal); | ||
}); | ||
|
||
it('Check changing shortcut for a label.', () => { | ||
// Go to a labels tab | ||
cy.get('.cvat-objects-sidebar-tabs').within(() => { | ||
cy.contains('[role="tab"]', 'Labels').click(); | ||
}); | ||
cy.contains('.cvat-label-item-setup-shortcut-button', '1').click(); | ||
cy.get('.cvat-label-item-setup-shortcut-popover').should('be.visible').within(() => { | ||
cy.get('[type="button"]').then(($btn) => { | ||
expect($btn[0].innerText).to.be.equal(`1:${firstLabelCurrentVal}`); | ||
expect($btn[1].innerText).to.be.equal(`2:${secondLabelCurrentVal}`); | ||
expect($btn[2].innerText).to.be.equal('3:None'); | ||
// Click to "3" button | ||
cy.get($btn[2]).click(); | ||
}); | ||
}); | ||
cy.get('.cvat-label-item-setup-shortcut-popover').should('be.visible').within(() => { | ||
cy.get('[type="button"]').then(($btn) => { | ||
// Buttons 1 and 3 have changed values | ||
expect($btn[0].innerText).to.be.equal('1:None'); | ||
expect($btn[2].innerText).to.be.equal(`3:${firstLabelCurrentVal}`); | ||
}); | ||
}); | ||
cy.contains('.cvat-label-item-setup-shortcut-button', '3').should('exist'); | ||
cy.get('.cvat-canvas-container').click(); // Hide shortcut popover | ||
// Go to "Objects" tab | ||
cy.get('.cvat-objects-sidebar-tabs').within(() => { | ||
cy.contains('[role="tab"]', 'Objects').click(); | ||
}); | ||
// Checking the label change via the new hotkey value | ||
cy.get('.cvat-canvas-container').click(270, 260); | ||
cy.get('#cvat_canvas_shape_1').should('have.class', 'cvat_canvas_shape_activated'); | ||
cy.get('body').type('{Ctrl}3'); | ||
cy.contains('tspan', `${firstLabelCurrentVal} 1 (manual)`).should('be.visible'); | ||
cy.get('#cvat-objects-sidebar-state-item-1').find('.cvat-objects-sidebar-state-item-label-selector').should('have.text', firstLabelCurrentVal); | ||
}); | ||
}); | ||
}); |