blob: c6cfb671d73020e6737793cdd04446a8294d8ce2 [file] [log] [blame]
(async function () {
var items = [
{
title: "first",
index: 0
},
{
title: "second",
index: 1
},
{
title: "third",
index: 2
},
{
title: "fourth",
index: 3
},
{
title: "disabled 4.5",
disabled: true,
index: 4
},
{
title: "fifth",
index: 5
},
{
title: "sixth",
index: 6
},
{
title: "seventh",
index: 7
},
{
title: "eighth",
index: 8
}
];
class Delegate {
titleFor(item) {
return item.title;
}
createElementForItem(item) {
var element = createElement("div");
element.textContent = this.titleFor(item);
return element;
}
isItemSelectable(item) {
return !item.disabled;
}
itemSelected(item) {
if (item !== null)
TestRunner.addResult("Item selected: " + this.titleFor(item));
}
highlightedItemChanged(from, to, fromElement, toElement) {
if (to !== null)
TestRunner.addResult("Item highlighted: " + this.titleFor(to));
}
};
function pressKey(key) {
var element = document.deepActiveElement();
if (!element)
return;
TestRunner.addResult(key);
element.dispatchEvent(TestRunner.createKeyEvent(key));
}
var model = new UI.ListModel();
var dropDown = new UI.SoftDropDown(model, new Delegate());
for (var i = items.length - 1; i >= 0; i--)
model.insertWithComparator(items[i], (a, b) => a.index - b.index);
UI.inspectorView.element.appendChild(dropDown.element);
dropDown.selectItem(items[5]);
TestRunner.addResult("Showing drop down");
dropDown.element.dispatchEvent(new Event("mousedown"));
pressKey('ArrowDown');
pressKey('ArrowDown');
pressKey('ArrowDown');
pressKey('ArrowUp');
pressKey('ArrowUp');
pressKey('ArrowUp');
pressKey('ArrowDown');
pressKey('ArrowDown');
pressKey('f');
pressKey('f');
pressKey('t');
TestRunner.completeTest();
})();