| // Copyright 2008 The Closure Library Authors. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS-IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| goog.provide('goog.ui.TabTest'); |
| goog.setTestOnly('goog.ui.TabTest'); |
| |
| goog.require('goog.dom'); |
| goog.require('goog.testing.jsunit'); |
| goog.require('goog.ui.Component'); |
| goog.require('goog.ui.Tab'); |
| goog.require('goog.ui.TabRenderer'); |
| |
| var sandbox; |
| var tab; |
| |
| function setUp() { |
| sandbox = goog.dom.getElement('sandbox'); |
| tab = new goog.ui.Tab('Hello'); |
| } |
| |
| function tearDown() { |
| tab.dispose(); |
| goog.dom.removeChildren(sandbox); |
| } |
| |
| function testConstructor() { |
| assertNotNull('Tab must not be null', tab); |
| assertEquals('Tab must have expected content', 'Hello', tab.getContent()); |
| assertEquals('Tab\'s renderer must default to TabRenderer', |
| goog.ui.TabRenderer.getInstance(), tab.getRenderer()); |
| assertTrue('Tab must support the SELECTED state', |
| tab.isSupportedState(goog.ui.Component.State.SELECTED)); |
| assertTrue('SELECTED must be an auto-state', |
| tab.isAutoState(goog.ui.Component.State.SELECTED)); |
| assertTrue('Tab must dispatch transition events for the DISABLED state', |
| tab.isDispatchTransitionEvents(goog.ui.Component.State.DISABLED)); |
| assertTrue('Tab must dispatch transition events for the SELECTED state', |
| tab.isDispatchTransitionEvents(goog.ui.Component.State.SELECTED)); |
| } |
| |
| function testGetSetTooltip() { |
| assertUndefined('Tooltip must be undefined by default', tab.getTooltip()); |
| tab.setTooltip('Hello, world!'); |
| assertEquals('Tooltip must have expected value', 'Hello, world!', |
| tab.getTooltip()); |
| } |
| |
| function testSetAriaLabel() { |
| assertNull('Tab must not have aria label by default', tab.getAriaLabel()); |
| tab.setAriaLabel('My tab'); |
| tab.render(); |
| var element = tab.getElementStrict(); |
| assertNotNull('Element must not be null', element); |
| assertEquals('Tab element must have expected aria-label', 'My tab', |
| element.getAttribute('aria-label')); |
| assertEquals('Tab element must have expected aria role', 'tab', |
| element.getAttribute('role')); |
| tab.setAriaLabel('My new tab'); |
| assertEquals('Tab element must have updated aria-label', 'My new tab', |
| element.getAttribute('aria-label')); |
| assertEquals('Tab element must have expected aria role', 'tab', |
| element.getAttribute('role')); |
| } |