2020-01-25 23:33:14 -06:00
|
|
|
/* global describe it cy beforeEach require expect afterEach*/
|
|
|
|
|
|
|
|
var helper = require('../common/helper');
|
|
|
|
|
|
|
|
describe('Insert objects via insertion wizard.', function() {
|
|
|
|
beforeEach(function() {
|
|
|
|
helper.loadTestDoc('empty.odt', true);
|
|
|
|
|
|
|
|
// Click on edit button
|
|
|
|
cy.get('#mobile-edit-button').click();
|
|
|
|
|
|
|
|
// Open insertion wizard
|
|
|
|
cy.get('#tb_actionbar_item_insertion_mobile_wizard')
|
|
|
|
.should('not.have.class', 'disabled')
|
|
|
|
.click();
|
|
|
|
});
|
|
|
|
|
|
|
|
afterEach(function() {
|
|
|
|
cy.get('.closemobile').click();
|
|
|
|
cy.wait(200); // wait some time to actually release the document
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Insert local image.', function() {
|
|
|
|
// We check whether the entry is there
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Local Image...');
|
|
|
|
// We not not test the insertion, it might depend on the system.
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Insert comment.', function() {
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Comment')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
// Comment insertion dialog is opened
|
|
|
|
cy.get('.loleaflet-annotation-table')
|
|
|
|
.should('exist');
|
|
|
|
|
|
|
|
// Push cancel to close the dialog
|
|
|
|
cy.get('.vex-dialog-button-secondary.vex-dialog-button.vex-last')
|
|
|
|
.click();
|
|
|
|
});
|
|
|
|
|
2020-01-29 08:24:01 -06:00
|
|
|
it('Insert default table.', function() {
|
2020-01-25 23:33:14 -06:00
|
|
|
// Open Table submenu
|
2020-01-28 12:23:37 -06:00
|
|
|
cy.get('.menu-entry-with-icon.flex-fullwidth')
|
2020-01-25 23:33:14 -06:00
|
|
|
.contains('Table')
|
|
|
|
.click();
|
|
|
|
cy.get('.mobile-wizard.ui-text')
|
|
|
|
.should('be.visible');
|
|
|
|
|
|
|
|
// Scroll to the bottom
|
|
|
|
cy.get('#mobile-wizard-content').scrollTo(0, 1000);
|
|
|
|
|
|
|
|
// Push insert table button
|
|
|
|
cy.get('.inserttablecontrols button')
|
|
|
|
.should('be.visible')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
// Table is inserted with the markers shown
|
|
|
|
cy.get('.leaflet-marker-icon.table-column-resize-marker')
|
|
|
|
.should('exist')
|
|
|
|
.should('have.length', 3);
|
|
|
|
cy.get('.leaflet-marker-icon.table-row-resize-marker')
|
|
|
|
.should('exist')
|
|
|
|
.should('have.length', 2);
|
|
|
|
});
|
|
|
|
|
2020-01-29 08:24:01 -06:00
|
|
|
it('Insert custom table.', function() {
|
|
|
|
// Open Table submenu
|
|
|
|
cy.get('.menu-entry-with-icon.flex-fullwidth')
|
|
|
|
.contains('Table')
|
|
|
|
.click();
|
|
|
|
cy.get('.mobile-wizard.ui-text')
|
|
|
|
.should('be.visible');
|
|
|
|
|
|
|
|
// Scroll to the bottom
|
|
|
|
cy.get('#mobile-wizard-content').scrollTo(0, 1000);
|
|
|
|
|
|
|
|
// Change rows and columns
|
|
|
|
cy.get('.inserttablecontrols #rows .sinfieldcontrols .plus')
|
|
|
|
.click();
|
|
|
|
cy.get('.inserttablecontrols #cols .sinfieldcontrols .plus')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
// Push insert table button
|
|
|
|
cy.get('.inserttablecontrols button')
|
|
|
|
.should('be.visible')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
// Table is inserted with the markers shown
|
|
|
|
cy.get('.leaflet-marker-icon.table-column-resize-marker')
|
|
|
|
.should('exist')
|
|
|
|
.should('have.length', 4);
|
|
|
|
cy.get('.leaflet-marker-icon.table-row-resize-marker')
|
|
|
|
.should('exist')
|
|
|
|
.should('have.length', 3);
|
|
|
|
});
|
|
|
|
|
2020-01-25 23:33:14 -06:00
|
|
|
it('Insert header.', function() {
|
|
|
|
// Get the blinking cursor pos
|
|
|
|
cy.get('#document-container').type('xxxx');
|
|
|
|
var cursorOrigLeft = 0;
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1) ;
|
|
|
|
cursorOrigLeft = cursor[0].getBoundingClientRect().left;
|
|
|
|
});
|
|
|
|
|
|
|
|
// Open header/footer submenu
|
|
|
|
cy.get('.sub-menu-title')
|
|
|
|
.contains('Header and Footer')
|
|
|
|
.click();
|
|
|
|
cy.get('.ui-header.level-1.mobile-wizard.ui-widget')
|
|
|
|
.should('be.visible');
|
|
|
|
|
|
|
|
// Open header submenu
|
|
|
|
cy.get('.ui-header.level-1.mobile-wizard.ui-widget .sub-menu-title')
|
|
|
|
.contains('Header')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
// Insert header for All
|
|
|
|
cy.get('.menu-entry-no-icon')
|
|
|
|
.contains('All')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
cy.wait(100);
|
|
|
|
|
|
|
|
// Check that the cursor was moved
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
expect(cursor[0].getBoundingClientRect().left).to.be.lessThan(cursorOrigLeft);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2020-01-29 08:24:01 -06:00
|
|
|
it.only('Insert footer.', function() {
|
|
|
|
// Get the blinking cursor pos
|
|
|
|
cy.get('#document-container').type('xxxx');
|
|
|
|
var cursorOrigTop = 0;
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1) ;
|
|
|
|
cursorOrigTop = cursor[0].getBoundingClientRect().top;
|
|
|
|
});
|
|
|
|
|
|
|
|
// Open header/footer submenu
|
|
|
|
cy.get('.sub-menu-title')
|
|
|
|
.contains('Header and Footer')
|
|
|
|
.click();
|
|
|
|
cy.get('.ui-header.level-1.mobile-wizard.ui-widget')
|
|
|
|
.should('be.visible');
|
|
|
|
|
|
|
|
// Open footer submenu
|
|
|
|
cy.get('.ui-header.level-1.mobile-wizard.ui-widget .sub-menu-title')
|
|
|
|
.contains('Footer')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
// Insert footer for All
|
|
|
|
cy.get('.ui-content.level-1.mobile-wizard[title~="Footer"] .ui-header.level-2.mobile-wizard.ui-widget .menu-entry-no-icon')
|
|
|
|
.contains('All')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
cy.wait(100);
|
|
|
|
|
|
|
|
// Check that the cursor was moved
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
expect(cursor[0].getBoundingClientRect().top).to.be.greaterThan(cursorOrigTop);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2020-01-25 23:33:14 -06:00
|
|
|
it('Insert footnote.', function() {
|
|
|
|
// Get the blinking cursor pos
|
|
|
|
cy.get('#document-container').type('xxxx');
|
|
|
|
var cursorOrigTop = 0;
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
cursorOrigTop = cursor[0].getBoundingClientRect().top;
|
|
|
|
});
|
|
|
|
|
|
|
|
// Insert footnote
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Footnote')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
cy.wait(100);
|
|
|
|
|
|
|
|
// Check that the cursor was moved down
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
expect(cursor[0].getBoundingClientRect().top).to.be.greaterThan(cursorOrigTop);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Insert endnote.', function() {
|
|
|
|
// Get the blinking cursor pos
|
|
|
|
cy.get('#document-container').type('xxxx');
|
|
|
|
var cursorOrigTop = 0;
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
cursorOrigTop = cursor[0].getBoundingClientRect().top;
|
|
|
|
});
|
|
|
|
|
|
|
|
// Insert endnote
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Endnote')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
cy.wait(100);
|
|
|
|
|
|
|
|
// Check that the cursor was moved down
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
expect(cursor[0].getBoundingClientRect().top).to.be.greaterThan(cursorOrigTop);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Insert page break.', function() {
|
|
|
|
// Get the blinking cursor pos
|
|
|
|
cy.get('#document-container').type('xxxx');
|
|
|
|
var cursorOrigTop = 0;
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
cursorOrigTop = cursor[0].getBoundingClientRect().top;
|
|
|
|
});
|
|
|
|
|
|
|
|
// Insert endnote
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Page Break')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
cy.wait(100);
|
|
|
|
|
|
|
|
// Check that the cursor was moved down
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
expect(cursor[0].getBoundingClientRect().top).to.be.greaterThan(cursorOrigTop);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Insert column break.', function() {
|
|
|
|
// Get the blinking cursor pos
|
|
|
|
cy.get('#document-container').type('xxxx');
|
|
|
|
var cursorOrigTop = 0;
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
cursorOrigTop = cursor[0].getBoundingClientRect().top;
|
|
|
|
});
|
|
|
|
|
|
|
|
// Do insertion
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Column Break')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
cy.wait(100);
|
|
|
|
|
|
|
|
// Check that the cursor was moved down
|
|
|
|
cy.get('.blinking-cursor')
|
|
|
|
.then(function(cursor) {
|
|
|
|
expect(cursor).to.have.lengthOf(1);
|
|
|
|
expect(cursor[0].getBoundingClientRect().top).to.be.greaterThan(cursorOrigTop);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Insert hyperlink.', function() {
|
|
|
|
// Open hyperlink dialog
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Hyperlink...')
|
|
|
|
.click();
|
|
|
|
|
|
|
|
// Dialog is opened
|
|
|
|
cy.get('.vex-content.hyperlink-dialog')
|
|
|
|
.should('exist');
|
|
|
|
|
|
|
|
// Push cancel to close the dialog
|
|
|
|
cy.get('.vex-dialog-button-secondary.vex-dialog-button.vex-last')
|
|
|
|
.click();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Insert shape.', function() {
|
|
|
|
// Do insertion
|
|
|
|
cy.get('.menu-entry-with-icon')
|
|
|
|
.contains('Shape')
|
|
|
|
.click();
|
2020-01-27 06:21:58 -06:00
|
|
|
|
|
|
|
cy.get('.col.w2ui-icon.basicshapes_rectangle').
|
|
|
|
click();
|
|
|
|
|
|
|
|
// Check that the shape is there
|
|
|
|
cy.get('.leaflet-pane.leaflet-overlay-pane svg g')
|
|
|
|
.should('exist');
|
|
|
|
|
|
|
|
cy.get('.leaflet-pane.leaflet-overlay-pane svg')
|
|
|
|
.then(function(svg) {
|
|
|
|
expect(svg).to.have.lengthOf(1);
|
|
|
|
expect(svg[0].getBBox().width).to.be.greaterThan(0);
|
|
|
|
expect(svg[0].getBBox().height).to.be.greaterThan(0);
|
|
|
|
});
|
2020-01-25 23:33:14 -06:00
|
|
|
});
|
|
|
|
});
|