import { $, browser } from 'protractor'; import { leftPanelTests } from './leftPanelTests.po'; import { DataProvider } from '../data-provider/data-provider.po'; const buttonLargeModal = $('.btn:nth-child(1)'); const buttonSmallModal = $('.btn:nth-child(3)'); const buttonChildModal = $('.btn:nth-child(5)'); const buttonStaticModal = $('.btn:nth-child(7)'); const modalWindow = $('.modal.fade.in'); const modalTitle = $('.modal.fade.in .modal-title'); const modalBody = $('.modal.fade.in .modal-body'); const modalCloseButton = $('.modal.fade.in .close'); let using = require('jasmine-data-provider'); describe('Modals page test on bootstrap 3', () => { beforeAll(() => { browser.get('#/modals'); leftPanelTests.checkLeftPanelMini(); leftPanelTests.checkLeftPanelMaxi(); }); using (DataProvider.modalsTableContains, (data:any, description:string) => { it ('Check table texts: ' + description, () => { expect(data.element().getText()).toBe(data.actualResult); }); }); it('Large modal open and close by missclick', () => { buttonLargeModal.click(); expect(modalTitle.getText()).toBe('Large modal'); expect(modalBody.getText()).toBe('...'); browser.actions() .mouseMove({ x: 1000, y: 0 }) .click() .perform(); expect(modalWindow.isPresent()).toBe(false); }); it('Small modal open and close by x-cross', () => { buttonSmallModal.click(); expect(modalTitle.getText()).toBe('Small modal'); expect(modalBody.getText()).toBe('...'); modalCloseButton.click(); expect(modalWindow.isPresent()).toBe(false); }); it('Open child modal click', () => { buttonChildModal.click(); expect(modalTitle.getText()).toBe('Child modal'); expect(modalBody.getText()).toBe('I am a child modal, opened from parent component!'); modalCloseButton.click(); expect(modalWindow.isPresent()).toBe(false); }); it('Static modal click', () => { buttonStaticModal.click(); expect(modalTitle.getText()).toBe('Static modal'); expect(modalBody.getText()).toBe('This is static modal, backdrop click will not close it. Click × to close modal.'); }); it('Static modal does not close by misclick', () => { browser.actions() .mouseMove({ x: 0, y: 0 }) .click() .perform(); expect(modalWindow.isDisplayed()).toBe(true); }); it('Static modal close by cross', () => { modalCloseButton.click(); expect(modalWindow.isPresent()).toBe(false); }); });