update components

This commit is contained in:
Luke Pulverenti 2016-04-18 16:43:57 -04:00
parent 600fceeb54
commit 9956595625
25 changed files with 213 additions and 284 deletions

View file

@ -36,6 +36,25 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
</template>
</test-fixture>
<test-fixture id="disabled">
<template>
<test-menu>
<div>a item 1</div>
<div disabled>b item 2</div>
<div>b item 3</div>
<div disabled>c item 4</div>
</test-menu>
</template>
</test-fixture>
<test-fixture id="only-disabled">
<template>
<test-menu>
<div disabled>disabled item</div>
</test-menu>
</template>
</test-fixture>
<test-fixture id="multi">
<template>
<test-menu multi>
@ -94,6 +113,156 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
});
});
test('focusing on next item skips disabled items', function(done) {
var menu = fixture('disabled');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press down
MockInteractions.keyDownOn(menu, 40);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, menu.items[2], 'menu.items[2] is focused');
done();
});
});
});
test('focusing on next item in empty menu', function(done) {
var menu = fixture('empty');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press down
MockInteractions.keyDownOn(menu, 40);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, undefined, 'no focused item');
done();
});
});
});
test('focusing on next item in all disabled menu', function(done) {
var menu = fixture('only-disabled');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press down
MockInteractions.keyDownOn(menu, 40);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, undefined, 'no focused item');
done();
});
});
});
test('focusing on previous item skips disabled items', function(done) {
var menu = fixture('disabled');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press up
MockInteractions.keyDownOn(menu, 38);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, menu.items[2], 'menu.items[2] is focused');
done();
});
});
});
test('focusing on previous item in empty menu', function(done) {
var menu = fixture('empty');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press up
MockInteractions.keyDownOn(menu, 38);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, undefined, 'no focused item');
done();
});
});
});
test('focusing on previous item in all disabled menu', function(done) {
var menu = fixture('only-disabled');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press up
MockInteractions.keyDownOn(menu, 38);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, undefined, 'no focused item');
done();
});
});
});
test('focusing on item using key press skips disabled items', function(done) {
var menu = fixture('disabled');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press 'b'
MockInteractions.keyDownOn(menu, 66);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, menu.items[2], 'menu.items[2] is focused');
done();
});
});
});
test('focusing on item using key press ignores disabled items', function(done) {
var menu = fixture('disabled');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press 'c'
MockInteractions.keyDownOn(menu, 67);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, menu.items[0], 'menu.items[0] is focused');
done();
});
});
});
test('focusing on item using key press in all disabled items', function(done) {
var menu = fixture('only-disabled');
MockInteractions.focus(menu);
// Wait for async focus
Polymer.Base.async(function() {
// Key press 'c'
MockInteractions.keyDownOn(menu, 67);
Polymer.Base.async(function() {
var focusedItem = Polymer.dom(menu).node.focusedItem;
assert.equal(focusedItem, undefined, 'no focused item');
done();
});
});
});
test('focusing non-item content does not auto-focus an item', function(done) {
var menu = fixture('basic');
menu.extraContent.focus();