goog.ui.tabrenderer_test.js Maven / Gradle / Ivy
// 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.TabRendererTest');
goog.setTestOnly('goog.ui.TabRendererTest');
goog.require('goog.a11y.aria.Role');
goog.require('goog.dom');
goog.require('goog.dom.classlist');
goog.require('goog.testing.dom');
goog.require('goog.testing.jsunit');
goog.require('goog.testing.ui.rendererasserts');
goog.require('goog.ui.Tab');
goog.require('goog.ui.TabRenderer');
var sandbox;
var renderer;
var tab;
function setUp() {
sandbox = goog.dom.getElement('sandbox');
renderer = goog.ui.TabRenderer.getInstance();
tab = new goog.ui.Tab('Hello');
}
function tearDown() {
tab.dispose();
goog.dom.removeChildren(sandbox);
}
function testConstructor() {
assertNotNull('Renderer must not be null', renderer);
}
function testGetCssClass() {
assertEquals(
'CSS class must have expected value', goog.ui.TabRenderer.CSS_CLASS,
renderer.getCssClass());
}
function testGetAriaRole() {
assertEquals(
'ARIA role must have expected value', goog.a11y.aria.Role.TAB,
renderer.getAriaRole());
}
function testCreateDom() {
var element = renderer.createDom(tab);
assertNotNull('Element must not be null', element);
goog.testing.dom.assertHtmlMatches(
'Hello', goog.dom.getOuterHtml(element));
}
function testCreateDomWithTooltip() {
tab.setTooltip('Hello, world!');
var element = renderer.createDom(tab);
assertNotNull('Element must not be null', element);
assertEquals(
'Element must have expected tooltip', 'Hello, world!',
renderer.getTooltip(element));
}
function testRender() {
tab.setRenderer(renderer);
tab.render();
var element = tab.getElementStrict();
assertNotNull('Element must not be null', element);
assertEquals(
'aria-selected should be false', 'false',
element.getAttribute('aria-selected'));
}
function testDecorate() {
sandbox.innerHTML = 'Foo\n' +
'Bar';
var foo = renderer.decorate(tab, goog.dom.getElement('foo'));
assertNotNull('Decorated element must not be null', foo);
assertSameElements(
'Decorated element must have expected class', ['goog-tab'],
goog.dom.classlist.get(foo));
assertEquals(
'Decorated tab must have expected content', 'Foo',
tab.getContent().nodeValue);
assertUndefined('Decorated tab must not have tooltip', tab.getTooltip());
assertEquals(
'Decorated element must not have title', '', renderer.getTooltip(foo));
var bar = renderer.decorate(tab, goog.dom.getElement('bar'));
assertNotNull('Decorated element must not be null', bar);
assertSameElements(
'Decorated element must have expected class', ['goog-tab'],
goog.dom.classlist.get(bar));
assertEquals(
'Decorated tab must have expected content', 'Bar',
tab.getContent().nodeValue);
assertEquals(
'Decorated tab must have expected tooltip', 'Yes', tab.getTooltip());
assertEquals(
'Decorated element must have expected title', 'Yes',
renderer.getTooltip(bar));
}
function testGetTooltip() {
sandbox.innerHTML = 'Foo\n' +
'Bar\n' +
'Baz';
assertEquals(
'getTooltip() must return empty string for no title', '',
renderer.getTooltip(goog.dom.getElement('foo')));
assertEquals(
'getTooltip() must return empty string for empty title', '',
renderer.getTooltip(goog.dom.getElement('bar')));
assertEquals(
'Tooltip must have expected value', 'BazTitle',
renderer.getTooltip(goog.dom.getElement('baz')));
}
function testSetTooltip() {
sandbox.innerHTML = 'Foo';
var element = goog.dom.getElement('foo');
renderer.setTooltip(null, null); // Must not error.
renderer.setTooltip(element, null);
assertEquals('Tooltip must be the empty string', '', element.title);
renderer.setTooltip(element, '');
assertEquals('Tooltip must be the empty string', '', element.title);
renderer.setTooltip(element, 'Foo');
assertEquals('Tooltip must have expected value', 'Foo', element.title);
}
function testDoesntCallGetCssClassInConstructor() {
goog.testing.ui.rendererasserts.assertNoGetCssClassCallsInConstructor(
goog.ui.TabRenderer);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy