import { $, $$, browser } from 'protractor'; import { leftPanelTests } from './leftPanelTests.po'; import { DataProvider } from '../data-provider/data-provider.po'; let using = require('jasmine-data-provider'); const inputInterval = $('input.form-control'); const buttonAddSlide = $('.btn'); const controlLeft = $('.left'); const controlRight = $('.right'); const slidesCount = $$('.carousel-inner > *'); const checkboxDisableLopping = $('input[type="checkbox"]'); const getSlideNumber = (tabNumber:any) => { return '.carousel-inner>slide:nth-child(' + tabNumber + ')'; }; const doClick = (element:any, q:any) => { while (q > 0) { q--; element.click(); } }; describe('Carousel page tests on bootstrap 3', () => { beforeAll(() => { browser.get('#/carousel'); browser.ignoreSynchronization = true; leftPanelTests.checkLeftPanelMini(); leftPanelTests.checkLeftPanelMaxi(); inputInterval.clear(); }); it('Carousel default count', () => { expect(slidesCount.count()).toBe(4); }); it('Carousel count after adding slides', () => { buttonAddSlide.click(); buttonAddSlide.click(); expect(slidesCount.count()).toBe(6); }); it('Change the slides by Rigth/left controls ', () => { controlRight.click(); expect($(getSlideNumber('2')).getAttribute('class')).toContain('active'); controlLeft.click(); expect($(getSlideNumber('1')).getAttribute('class')).toContain('active'); }); it('Disable slide looping. Right/Left sides', () => { checkboxDisableLopping.click(); controlLeft.click(); expect($(getSlideNumber('1')).getAttribute('class')).toContain('active'); doClick(controlRight, 7); expect($(getSlideNumber('6')).getAttribute('class')).toContain('active'); checkboxDisableLopping.click(); }); it('Slide lopping on Right/left sides', () => { doClick(controlRight, 1); expect($(getSlideNumber('1')).getAttribute('class')).toContain('active'); controlLeft.click(); expect($(getSlideNumber('6')).getAttribute('class')).toContain('active'); }); it('Change the slides by time', () => { browser.refresh(); inputInterval.clear(); inputInterval.sendKeys(`1500`); browser.sleep(2010); expect($(getSlideNumber('2')).getAttribute('class')).toContain('active'); controlLeft.click(); }); using (DataProvider.carouselSlidesTexts, (data:any, description:string) => { it ('Check table texts: ' + description, () => { expect(data.element().getText()).toBe(data.actualResult); controlRight.click(); }); }); });