X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=Tom-Marble%2Fdeck.js%2Ftest%2Fspec.navigation.js;fp=Tom-Marble%2Fdeck.js%2Ftest%2Fspec.navigation.js;h=db04794a9affcbd6f9ff9b4074fc1effca239a6e;hb=d0f6c3cd6fa0c1b7dc83f3ae3d548209e4f1c6fd;hp=0000000000000000000000000000000000000000;hpb=8048db2de1e49dc68c0c2f8b2e133fe4a43dbd70;p=lp17-speaker-slides.git diff --git a/Tom-Marble/deck.js/test/spec.navigation.js b/Tom-Marble/deck.js/test/spec.navigation.js new file mode 100644 index 0000000..db04794 --- /dev/null +++ b/Tom-Marble/deck.js/test/spec.navigation.js @@ -0,0 +1,63 @@ +describe('Deck JS Navigation Buttons', function() { + beforeEach(function() { + loadFixtures('standard.html'); + if (Modernizr.history) { + history.replaceState({}, "", "#") + } + else { + window.location.hash = '#'; + } + $.deck('.slide'); + }); + + it('should go to the next slide if next link is clicked', function() { + $(defaults.selectors.nextLink).click(); + expect($.deck('getSlide')).toHaveClass('slide2'); + }); + + it('should go to the previous slide if previous link is clicked', function() { + $.deck('go', 2); + $(defaults.selectors.previousLink).click(); + expect($.deck('getSlide')).toHaveClass('slide2'); + }); + + it('should add the disabled class to the previous link if on first slide', function() { + expect($(defaults.selectors.previousLink)).toHaveClass(defaults.classes.navDisabled); + $(defaults.selectors.nextLink).click(); + expect($(defaults.selectors.previousLink)).not.toHaveClass(defaults.classes.navDisabled); + $(defaults.selectors.previousLink).click(); + expect($(defaults.selectors.previousLink)).toHaveClass(defaults.classes.navDisabled); + }); + + it('should add aria-disabled to previous link if on first slide', function() { + $.deck('go', 0); + expect($(defaults.selectors.previousLink)).toHaveAttr('aria-disabled', 'true'); + }); + + it('should add the disabled class to the next link if on last slide', function() { + expect($(defaults.selectors.nextLink)).not.toHaveClass(defaults.classes.navDisabled); + $.deck('go', $.deck('getSlides').length - 1); + expect($(defaults.selectors.nextLink)).toHaveClass(defaults.classes.navDisabled); + }); + + it('should add aria-disabled to next link if on last slide', function() { + $.deck('go', $.deck('getSlides').length - 1); + expect($(defaults.selectors.nextLink)).toHaveAttr('aria-disabled', 'true'); + }); + + it('should not start disabled if deck initialized in the middle', function() { + $.deck('go', 2); + $.deck('.slide'); + waitsFor(function() { + return !$(defaults.selectors.previousLink).hasClass(defaults.classes.navDisabled); + }); + }); + + it('should update the links hrefs with real fragment ids', function() { + expect($(defaults.selectors.previousLink).attr('href')).toMatch(/#$/); + expect($(defaults.selectors.nextLink).attr('href')).toMatch('#custom-id'); + $.deck('go', 2); + expect($(defaults.selectors.previousLink).attr('href')).toMatch('#custom-id'); + expect($(defaults.selectors.nextLink).attr('href')).toMatch('#slide-3'); + }); +});