From: alliclemens Date: Wed, 21 Feb 2018 14:00:19 +0000 (-0600) Subject: Tests added for dropdown open X-Git-Tag: v6.6.0~3^2~278^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c25c7f0e9;p=thirdparty%2Ffoundation%2Ffoundation-sites.git Tests added for dropdown open --- diff --git a/test/javascript/components/dropdown.js b/test/javascript/components/dropdown.js index 9162635c9..373c720f5 100644 --- a/test/javascript/components/dropdown.js +++ b/test/javascript/components/dropdown.js @@ -8,6 +8,12 @@ describe('Dropdown', function() { const getDropdownContainer = (dropdownClasses = '') => `
Dropdown
`; + const getHoverDropdownContainer = (dropdownClasses = '') => + `
Dropdown
`; + + const getAutoFocusDropdownContainer = (dropdownClasses = '') => + `
Dropdown
`; + afterEach(function() { plugin.destroy(); $dropdownController.remove(); @@ -19,6 +25,7 @@ describe('Dropdown', function() { $dropdownController = $(getDropdownController()).appendTo('body'); $dropdownContainer = $(getDropdownContainer()).appendTo('body'); plugin = new Foundation.Dropdown($dropdownContainer, {}); + console.log('dropdown constructor'); plugin.$element.should.be.an('object'); plugin.options.should.be.an('object'); @@ -37,6 +44,54 @@ describe('Dropdown', function() { sinon.assert.called(spy); Foundation.Keyboard.trapFocus.restore(); }); + + it('should open dropdown on button click', function() { + $dropdownController = $(getDropdownController()).appendTo('body'); + $dropdownContainer = $(getDropdownContainer()).appendTo('body'); + plugin = new Foundation.Dropdown($dropdownContainer, {}); + plugin.open(); + + $dropdownController.on('show.zf.dropdown', function() { + $('#my-dropdown').should.not.be.hidden; + $('#my-dropdown').should.have.attr('aria-hidden', 'false'); + $('#my-dropdown').should.have.class('is-open'); + done(); + }); + plugin.close(); + }); + + it('should open dropdown on hover', function() { + $dropdownController = $(getDropdownController()).appendTo('body'); + $dropdownContainer = $(getHoverDropdownContainer()).appendTo('body'); + plugin = new Foundation.Dropdown($dropdownContainer, {}); + plugin.open(); + + $dropdownController.on('show.zf.dropdown', function() { + $('#my-dropdown').should.not.be.hidden; + $('#my-dropdown').should.have.attr('aria-hidden', 'false'); + $('#my-dropdown').should.have.class('is-open'); + done(); + }); + plugin.close(); + }); + + it('should autofocus input on open', function() { + $dropdownController = $(getDropdownController()).appendTo('body'); + $dropdownContainer = $(getAutoFocusDropdownContainer()).appendTo('body'); + plugin = new Foundation.Dropdown($dropdownContainer, {}); + plugin.open(); + + $focusedElement = ''; + + $dropdownController.on('show.zf.dropdown', function() { + $('#my-dropdown').should.not.be.hidden; + $('#my-dropdown').should.have.attr('aria-hidden', 'false'); + $('#my-dropdown').should.have.class('is-open'); + document.activeElement.should.be.equal($focusedElement); + done(); + }); + plugin.close(); + }); }); describe('close()', function() {