UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

85 lines (83 loc) 3.89 kB
define(["require", "exports", 'react', 'react-dom', 'react-addons-test-utils', './focus'], function (require, exports, React, ReactDOM, ReactTestUtils, focus_1) { "use strict"; var expect = chai.expect; var _hiddenElement; var _visibleElement; var _element; function renderIntoDocument(element) { var component = ReactTestUtils.renderIntoDocument(element); var renderedDOM = ReactDOM.findDOMNode(component); return renderedDOM; } function _initialize() { _hiddenElement = renderIntoDocument(React.createElement("div", {"data-is-visible": false}, React.createElement("button", null) )); _visibleElement = renderIntoDocument(React.createElement("div", {"data-is-visible": true}, React.createElement("button", null) )); _element = renderIntoDocument(React.createElement("div", null, React.createElement("button", null) )); _element.isVisible = true; } describe('isElementVisible', function () { beforeEach(function () { return _initialize(); }); it('returns false if data-is-visible is false', function () { expect(focus_1.isElementVisible(_hiddenElement)).equals(false, 'Element is not visible'); }); it('returns true if data-is-visible is true', function () { expect(focus_1.isElementVisible(_visibleElement)).equals(true, 'Element is visible'); }); it('returns true if data-is-visible is undefined but element is visible', function () { expect(focus_1.isElementVisible(_element)).equals(true, 'Element is visible but data-is-visible is undefined'); }); }); describe('isElementTabbable', function () { it('returns false on null', function () { expect(focus_1.isElementVisible(null)).is.false; }); it('returns false on normal divs', function () { var div = document.createElement('div'); expect(focus_1.isElementTabbable(div)).is.false; }); it('returns false on disabled buttons', function () { var button = document.createElement('button'); button.setAttribute('disabled', 'true'); expect(focus_1.isElementTabbable(button)).is.false; }); it('returns true on buttons', function () { var button = document.createElement('button'); expect(focus_1.isElementTabbable(button)).is.true; }); it('returns true on anchors', function () { var anchor = document.createElement('a'); expect(focus_1.isElementTabbable(anchor)).is.true; }); it('returns true on input elements', function () { var input = document.createElement('input'); expect(focus_1.isElementTabbable(input)).is.true; }); it('returns true on textarea elements', function () { var textarea = document.createElement('textarea'); expect(focus_1.isElementTabbable(textarea)).is.true; }); it('works with tabbable divs', function () { var div = document.createElement('div'); div.tabIndex = 0; expect(focus_1.isElementTabbable(div)).is.true; }); it('returns true with role=button divs', function () { var div = document.createElement('div'); div.setAttribute('role', 'button'); expect(focus_1.isElementTabbable(div)).is.true; }); it('returns false with role=button disabled buttons', function () { var button = document.createElement('button'); button.setAttribute('role', 'button'); button.setAttribute('disabled', 'true'); expect(focus_1.isElementTabbable(button)).is.false; }); }); }); //# sourceMappingURL=focus.test.js.map