| Index: third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-list-widget-providers.js
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-list-widget-providers.js b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-list-widget-providers.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..44774ddb2726dee6bd173c7884b6455f8460cee9
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-list-widget-providers.js
|
| @@ -0,0 +1,59 @@
|
| +TestRunner.loadLazyModules(['quick_open']).then(test);
|
| +function test() {
|
| + TestRunner.addResult(
|
| + 'Test that FilteredListWidget.setProvider changes the provider.');
|
| +
|
| + var StubProvider = class extends QuickOpen.FilteredListWidget.Provider {
|
| + constructor(input) {
|
| + super();
|
| + this._input = input
|
| + }
|
| + itemKeyAt(itemIndex) { return this._input[itemIndex]; }
|
| + itemScoreAt(itemIndex) { return 0; }
|
| + itemCount() { return this._input.length; }
|
| + shouldShowMatchingItems() { return true; }
|
| + renderItem(item, query, titleElement, subtitleElement) {
|
| + titleElement.textContent = this._input[item];
|
| + }
|
| + };
|
| +
|
| + var filteredListWidget = new QuickOpen.FilteredListWidget(null, []);
|
| + filteredListWidget.showAsDialog();
|
| +
|
| + TestRunner.runTests([
|
| + function providerWithOneItem() {
|
| + return setProvider(new StubProvider(['One Item']));
|
| + },
|
| + function nullProvider() {
|
| + return setProvider(null);
|
| + },
|
| + function providerWithTwoItems() {
|
| + return setProvider(new StubProvider(['First Item', 'Second item']));
|
| + },
|
| + function providerWithNoItems() {
|
| + return setProvider(new StubProvider([]));
|
| + }
|
| + ]);
|
| +
|
| + function setProvider(provider) {
|
| + var promise = TestRunner.addSniffer(filteredListWidget, "_itemsFilteredForTest").then(dump);
|
| + filteredListWidget.setProvider(provider);
|
| + return promise;
|
| + }
|
| +
|
| + function dump() {
|
| + var list = filteredListWidget._list;
|
| + if (filteredListWidget._bottomElementsContainer.classList.contains('hidden')) {
|
| + TestRunner.addResult('Output: <hidden>');
|
| + return;
|
| + }
|
| + if (list.element.classList.contains('hidden')) {
|
| + TestRunner.addResult('Output: ' + filteredListWidget._notFoundElement.textContent);
|
| + return;
|
| + }
|
| + var output = [];
|
| + for (var i = 0; i < list.length(); ++i)
|
| + output.push(filteredListWidget._provider.itemKeyAt(list.itemAtIndex(i)));
|
| + TestRunner.addResult('Output:' + JSON.stringify(output));
|
| + }
|
| +}
|
|
|