Skip to content

Commit

Permalink
tests: add serial tests for button-name, input-button-name, aria-togg…
Browse files Browse the repository at this point in the history
…le-field-name, aria-input-field-name, and area-alt (#2396)

* tests: add serial tests for button-name, input-button-name, aria-toggle-field-name, and aria-input-field-name

* add area-alt
  • Loading branch information
straker authored Jul 20, 2020
1 parent 739d1b1 commit 2b5507e
Show file tree
Hide file tree
Showing 7 changed files with 783 additions and 1 deletion.
152 changes: 152 additions & 0 deletions test/integration/virtual-rules/area-alt.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
describe('area-alt', function() {
it('should pass for aria-label', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'map'
});
var child = new axe.SerialVirtualNode({
nodeName: 'area',
attributes: {
href: 'foobar',
'aria-label': 'foobar'
}
});
child.parent = node;
node.children = [child];

var results = axe.runVirtualRule('area-alt', node);

assert.lengthOf(results.passes, 1);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 0);
});

it('should incomplete for aria-labelledby', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'map'
});
var child = new axe.SerialVirtualNode({
nodeName: 'area',
attributes: {
href: 'foobar',
'aria-labelledby': 'foobar'
}
});
child.parent = node;
node.children = [child];

var results = axe.runVirtualRule('area-alt', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 1);
});

it('should pass for alt', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'map'
});
var child = new axe.SerialVirtualNode({
nodeName: 'area',
attributes: {
href: 'foobar',
alt: 'foobar'
}
});
child.parent = node;
node.children = [child];

var results = axe.runVirtualRule('area-alt', node);

assert.lengthOf(results.passes, 1);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 0);
});

it('should pass for title', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'map'
});
var child = new axe.SerialVirtualNode({
nodeName: 'area',
attributes: {
href: 'foobar',
title: 'foobar'
}
});
// children are required since titleText comes after subtree text
// in accessible name calculation
child.children = [];
child.parent = node;
node.children = [child];

var results = axe.runVirtualRule('area-alt', node);

assert.lengthOf(results.passes, 1);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 0);
});

it('should fail when alt contains only whitespace', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'map'
});
var child = new axe.SerialVirtualNode({
nodeName: 'area',
attributes: {
href: 'foobar',
alt: ' \t \n '
}
});
child.parent = node;
node.children = [child];

var results = axe.runVirtualRule('area-alt', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 1);
assert.lengthOf(results.incomplete, 0);
});

it('should fail when aria-label is empty', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'map'
});
var child = new axe.SerialVirtualNode({
nodeName: 'area',
attributes: {
href: 'foobar',
'aria-label': ''
}
});
child.parent = node;
node.children = [child];

var results = axe.runVirtualRule('area-alt', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 1);
assert.lengthOf(results.incomplete, 0);
});

it('should fail when title is empty', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'map'
});
var child = new axe.SerialVirtualNode({
nodeName: 'area',
attributes: {
href: 'foobar',
title: ''
}
});
child.children = [];
child.parent = node;
node.children = [child];

var results = axe.runVirtualRule('area-alt', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 1);
assert.lengthOf(results.incomplete, 0);
});
});
126 changes: 126 additions & 0 deletions test/integration/virtual-rules/aria-input-field-name.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
describe('aria-input-field-name', function() {
it('should pass for aria-label', function() {
var results = axe.runVirtualRule('aria-input-field-name', {
nodeName: 'div',
attributes: {
role: 'combobox',
'aria-label': 'foobar'
}
});

assert.lengthOf(results.passes, 1);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 0);
});

it('should incomplete for aria-labelledby', function() {
var results = axe.runVirtualRule('aria-input-field-name', {
nodeName: 'div',
attributes: {
role: 'listbox',
'aria-labelledby': 'foobar'
}
});

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 1);
});

it('should pass for title', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'div',
attributes: {
role: 'searchbox',
title: 'foobar'
}
});
// children are required since titleText comes after subtree text
// in accessible name calculation
node.children = [];

var results = axe.runVirtualRule('aria-input-field-name', node);

assert.lengthOf(results.passes, 1);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 0);
});

it('should fail when aria-label contains only whitespace', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'div',
attributes: {
role: 'spinbutton',
'aria-label': ' \t \n '
}
});
node.children = [];

var results = axe.runVirtualRule('aria-input-field-name', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 1);
assert.lengthOf(results.incomplete, 0);
});

it('should fail when aria-label is empty', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'div',
attributes: {
role: 'textbox',
'aria-label': ''
}
});
node.children = [];

var results = axe.runVirtualRule('aria-input-field-name', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 1);
assert.lengthOf(results.incomplete, 0);
});

it('should fail when title is empty', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'div',
attributes: {
role: 'combobox',
title: ''
}
});
node.children = [];

var results = axe.runVirtualRule('aria-input-field-name', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 1);
assert.lengthOf(results.incomplete, 0);
});

it('should incomplete if has explicit and implicit label', function() {
var node = new axe.SerialVirtualNode({
nodeName: 'div',
attributes: {
role: 'listbox',
'aria-label': 'name'
}
});
var parent = new axe.SerialVirtualNode({
nodeName: 'label'
});
var child = new axe.SerialVirtualNode({
nodeName: '#text',
nodeType: 3,
nodeValue: 'first name'
});
node.parent = parent;
node.children = [];
parent.children = [child, node];

var results = axe.runVirtualRule('aria-input-field-name', node);

assert.lengthOf(results.passes, 0);
assert.lengthOf(results.violations, 0);
assert.lengthOf(results.incomplete, 1);
});
});
Loading

0 comments on commit 2b5507e

Please sign in to comment.