sku-pg
Version:
Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!
264 lines (239 loc) • 9.84 kB
HTML
<html>
<!--
Copyright 2008 The Closure Library Authors. All Rights Reserved.
Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<!--
Author: attila@google.com (Attila Bodis)
-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Closure Unit Tests - goog.a11y.aria</title>
<script src="../../base.js"></script>
<script>
goog.require('goog.a11y.aria');
goog.require('goog.a11y.aria.DropEffectValues');
goog.require('goog.a11y.aria.PressedValues');
goog.require('goog.a11y.aria.Role');
goog.require('goog.a11y.aria.State');
goog.require('goog.dom');
goog.require('goog.dom.iframe');
goog.require('goog.string');
goog.require('goog.testing.jsunit');
goog.require('goog.userAgent');
</script>
</head>
<body>
<div id="sandbox"></div>
<script>
var sandbox = goog.dom.getElement('sandbox');
var someDiv;
var someSpan;
var htmlButton;
function setUp() {
someDiv = goog.dom.createDom('div', {id: 'someDiv'}, 'DIV');
someSpan = goog.dom.createDom('span', {id: 'someSpan'}, 'SPAN');
htmlButton = goog.dom.createDom(goog.dom.TagName.BUTTON,
{id: 'someButton'}, 'BUTTON');
sandbox.appendChild(someDiv);
someDiv.appendChild(someSpan);
}
function tearDown() {
sandbox.innerHTML = '';
someDiv = null;
someSpan = null;
}
function testGetSetRole() {
assertEquals('someDiv\'s role should be null',
null, goog.a11y.aria.getRole(someDiv));
assertEquals('someSpan\'s role should be null',
null, goog.a11y.aria.getRole(someSpan));
goog.a11y.aria.setRole(someDiv, goog.a11y.aria.Role.MENU);
goog.a11y.aria.setRole(someSpan, goog.a11y.aria.Role.MENU_ITEM);
assertEquals('someDiv\'s role should be MENU',
goog.a11y.aria.Role.MENU, goog.a11y.aria.getRole(someDiv));
assertEquals('someSpan\'s role should be MENU_ITEM',
goog.a11y.aria.Role.MENU_ITEM,
goog.a11y.aria.getRole(someSpan));
var div = goog.dom.createElement('div');
sandbox.appendChild(div);
div.innerHTML = '<span id="anotherSpan" role="' +
goog.a11y.aria.Role.CHECKBOX + '"></span>';
assertEquals('anotherSpan\'s role should be CHECKBOX',
goog.a11y.aria.Role.CHECKBOX,
goog.a11y.aria.getRole(document.getElementById('anotherSpan')));
}
function testGetSetState() {
assertThrows('Should throw because no state is specified.',
function () {
goog.a11y.aria.getState(someDiv)
});
assertThrows('Should throw because no state is specified.',
function () {
goog.a11y.aria.getState(someDiv)
});
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.LABELLEDBY,
'someSpan');
assertEquals(
'someDiv\'s labelledby state should be "someSpan"',
'someSpan',
goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.LABELLEDBY));
// Test setting for aria-activedescendant with empty value.
assertFalse(someDiv.hasAttribute ?
someDiv.hasAttribute('aria-activedescendant') :
!!someDiv.getAttribute('aria-activedescendant'));
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.ACTIVEDESCENDANT,
'someSpan');
assertEquals('someSpan', goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.ACTIVEDESCENDANT));
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.ACTIVEDESCENDANT,
'');
assertFalse(someDiv.hasAttribute ?
someDiv.hasAttribute('aria-activedescendant') :
!!someDiv.getAttribute('aria-activedescendant'));
// Test setting state that has a default value to empty value.
assertFalse(someDiv.hasAttribute ?
someDiv.hasAttribute('aria-relevant') :
!!someDiv.getAttribute('aria-relevant'));
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.RELEVANT,
'text');
assertEquals('text', goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.RELEVANT));
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.RELEVANT,
'');
assertEquals('additions text', someDiv.getAttribute('aria-relevant'));
}
function testGetStateValue() {
goog.a11y.aria.setState(someDiv, goog.a11y.aria.State.LABEL,
'test_label');
goog.a11y.aria.setState(someSpan, goog.a11y.aria.State.LABEL,
goog.a11y.aria.getStringStateInternalUtil(someDiv,
goog.a11y.aria.State.LABEL));
assertEquals(goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.LABEL),
goog.a11y.aria.getState(someSpan,
goog.a11y.aria.State.LABEL));
assertEquals('The someDiv\'s enum value should be "test_label".',
'test_label',
goog.a11y.aria.getStringStateInternalUtil(someDiv,
goog.a11y.aria.State.LABEL));
assertEquals('The someSpan\'s enum value should be "copy move".',
'test_label',
goog.a11y.aria.getStringStateInternalUtil(someSpan,
goog.a11y.aria.State.LABEL));
}
function testGetStateStringArray() {
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.LABELLEDBY,
['1', '2']);
goog.a11y.aria.setState(someSpan,
goog.a11y.aria.State.LABELLEDBY,
goog.a11y.aria.getStringArrayStateInternalUtil(someDiv,
goog.a11y.aria.State.LABELLEDBY));
assertEquals(goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.LABELLEDBY),
goog.a11y.aria.getState(someSpan,
goog.a11y.aria.State.LABELLEDBY));
assertEquals('The someDiv\'s enum value should be "1 2".', '1 2',
goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.LABELLEDBY));
assertEquals('The someSpan\'s enum value should be "1 2".', '1 2',
goog.a11y.aria.getState(someSpan,
goog.a11y.aria.State.LABELLEDBY));
assertSameElements('The someDiv\'s enum value should be "1 2".',
['1', '2'],
goog.a11y.aria.getStringArrayStateInternalUtil(someDiv,
goog.a11y.aria.State.LABELLEDBY));
assertSameElements('The someSpan\'s enum value should be "1 2".',
['1', '2'],
goog.a11y.aria.getStringArrayStateInternalUtil(someSpan,
goog.a11y.aria.State.LABELLEDBY));
}
function testGetNumberStateValue() {
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.LEVEL, 1);
goog.a11y.aria.setState(someSpan,
goog.a11y.aria.State.LEVEL,
goog.a11y.aria.getNumberStateInternalUtil(someDiv,
goog.a11y.aria.State.LEVEL));
assertEquals(goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.LEVEL),
goog.a11y.aria.getState(someSpan,
goog.a11y.aria.State.LEVEL));
assertEquals('The someDiv\'s enum value should be "1".',
'1',
goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.LEVEL));
assertEquals('The someSpan\'s enum value should be "1".',
'1',
goog.a11y.aria.getState(someSpan,
goog.a11y.aria.State.LEVEL));
assertEquals('The someDiv\'s enum value should be "1".',
1,
goog.a11y.aria.getNumberStateInternalUtil(someDiv,
goog.a11y.aria.State.LEVEL));
assertEquals('The someSpan\'s enum value should be "1".',
1,
goog.a11y.aria.getNumberStateInternalUtil(someSpan,
goog.a11y.aria.State.LEVEL));
}
function testGetBooleanStateValue() {
goog.a11y.aria.setState(someDiv,
goog.a11y.aria.State.MULTILINE, true);
goog.a11y.aria.setState(someSpan,
goog.a11y.aria.State.MULTILINE,
goog.a11y.aria.getBooleanStateInternalUtil(someDiv,
goog.a11y.aria.State.MULTILINE));
assertEquals(goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.MULTILINE),
goog.a11y.aria.getState(someSpan,
goog.a11y.aria.State.MULTILINE));
assertEquals('The someDiv\'s enum value should be "true".',
'true',
goog.a11y.aria.getState(someDiv,
goog.a11y.aria.State.MULTILINE));
assertEquals('The someSpan\'s enum value should be "true".',
'true',
goog.a11y.aria.getState(someSpan,
goog.a11y.aria.State.MULTILINE));
assertEquals('The someDiv\'s enum value should be "true".',
true,
goog.a11y.aria.getBooleanStateInternalUtil(someDiv,
goog.a11y.aria.State.MULTILINE));
assertEquals('The someSpan\'s enum value should be "true".',
true,
goog.a11y.aria.getBooleanStateInternalUtil(someSpan,
goog.a11y.aria.State.MULTILINE));
}
function testGetSetActiveDescendant() {
goog.a11y.aria.setActiveDescendant(someDiv, null);
assertNull('someDiv\'s activedescendant should be null',
goog.a11y.aria.getActiveDescendant(someDiv));
goog.a11y.aria.setActiveDescendant(someDiv, someSpan);
assertEquals(
'someDiv\'s active descendant should be "someSpan"',
someSpan,
goog.a11y.aria.getActiveDescendant(someDiv));
}
function testGetSetLabel() {
assertEquals(
'someDiv\'s label should be ""',
'',
goog.a11y.aria.getLabel(someDiv));
goog.a11y.aria.setLabel(someDiv, 'somelabel');
assertEquals(
'someDiv\'s label should be "somelabel"',
'somelabel',
goog.a11y.aria.getLabel(someDiv));
}
</script>
</body>
</html>