diff --git a/tests/cypress/integration/actions_objects/case_37_object_make_copy.js b/tests/cypress/integration/actions_objects/case_37_object_make_copy.js index 09f20a56..36b3594d 100644 --- a/tests/cypress/integration/actions_objects/case_37_object_make_copy.js +++ b/tests/cypress/integration/actions_objects/case_37_object_make_copy.js @@ -168,5 +168,48 @@ context('Object make a copy.', () => { } }, ); + + it('Copy a shape to an another frame.', () => { + cy.get('#cvat_canvas_shape_1').trigger('mousemove').should('have.class', 'cvat_canvas_shape_activated'); + cy.get('body').type('{ctrl}c'); + cy.get('.cvat-player-next-button').click(); + cy.get('body').type('{ctrl}v'); + cy.get('.cvat-canvas-container').click(); + cy.get('.cvat-player-previous-button').click(); + }); + + it('Copy a shape to an another frame after press "Ctrl+V" on the first frame.', () => { + cy.get('#cvat_canvas_shape_1').trigger('mousemove').should('have.class', 'cvat_canvas_shape_activated'); + cy.get('body').type('{ctrl}c'); + cy.get('body').type('{ctrl}v'); + cy.get('.cvat-player-next-button').click(); + cy.get('.cvat-canvas-container').click(300, 300); + cy.get('.cvat-objects-sidebar-state-item').then((sidebarItems) => { + expect(sidebarItems.length).to.be.equal(2); + }); + }); + + it('Copy a shape with holding "Ctrl".', () => { + const keyCodeC = 67; + const keyCodeV = 86; + cy.get('#cvat_canvas_shape_18').trigger('mousemove').should('have.class', 'cvat_canvas_shape_activated'); + cy.get('body').type('{ctrl}', {release: false}); // Hold + cy.get('body') + .trigger('keydown', {keyCode: keyCodeC, ctrlKey: true}) + .trigger('keyup') + .trigger('keydown', {keyCode: keyCodeV, ctrlKey: true}) + .trigger('keyup'); + cy.get('.cvat-canvas-container').click(400, 300); + cy.get('.cvat-canvas-container').click(500, 300); + cy.get('body').type('{ctrl}'); // Unhold + cy.get('.cvat-canvas-container').click(600, 300); + cy.get('.cvat_canvas_shape_drawing').should('not.exist'); + cy.get('.cvat-objects-sidebar-state-item').then((sidebarItems) => { + expect(sidebarItems.length).to.be.equal(5); + }); + cy.get('.cvat_canvas_shape').then((shapes) => { + expect(shapes.length).to.be.equal(5); + }); + }); }); }); diff --git a/tests/cypress/integration/canvas3d_functionality/case_80_canvas3d_functionality_cuboid_make_copy.js b/tests/cypress/integration/canvas3d_functionality/case_80_canvas3d_functionality_cuboid_make_copy.js index f501db1d..ed02810e 100644 --- a/tests/cypress/integration/canvas3d_functionality/case_80_canvas3d_functionality_cuboid_make_copy.js +++ b/tests/cypress/integration/canvas3d_functionality/case_80_canvas3d_functionality_cuboid_make_copy.js @@ -48,5 +48,29 @@ context('Canvas 3D functionality. Make a copy.', () => { cy.get('#cvat-objects-sidebar-state-item-3').should('have.attr', 'style').and('equal', bgColor); }); }); + + it('Copy a cuboid to an another frame.', () => { + cy.get('.cvat-canvas3d-perspective').trigger('mousemove', 100, 200).trigger('mousemove', 300, 200); + cy.get('#cvat-objects-sidebar-state-item-2').should('have.class', 'cvat-objects-sidebar-state-active-item') + cy.get('body').type('{Ctrl}c'); + cy.get('.cvat-player-next-button').click().wait(1000); + cy.get('body').type('{Ctrl}v'); + cy.get('.cvat-canvas3d-perspective').trigger('mousemove', 400, 200).dblclick(400, 200); + cy.get('.cvat-objects-sidebar-state-item').then((sideBarItems) => { + expect(sideBarItems.length).to.be.equal(1); + }); + cy.get('.cvat-player-previous-button').click().wait(1000); + }); + + it('Copy a shape to an another frame after press "Ctrl+V" on the first frame.', () => { + cy.get('.cvat-canvas3d-perspective').trigger('mousemove', 100, 200).trigger('mousemove', 300, 200); + cy.get('#cvat-objects-sidebar-state-item-2').should('have.class', 'cvat-objects-sidebar-state-active-item') + cy.get('body').type('{Ctrl}c').type('{Ctrl}v'); + cy.get('.cvat-player-next-button').click().wait(1000); + cy.get('.cvat-canvas3d-perspective').trigger('mousemove').dblclick(); + cy.get('.cvat-objects-sidebar-state-item').then((sideBarItems) => { + expect(sideBarItems.length).to.be.equal(2); + }); + }); }); });