Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(408)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.js

Issue 2513423003: DevTools: Convert inspector-unit tests to use reusable test harness (Closed)
Patch Set: address CL feedback Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.js
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.js b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1e1c33478a9ed7a0d1e212b74ef4bf343eeaae1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.js
@@ -0,0 +1,95 @@
+UnitTest.loadLazyModules(["ui_lazy"]).then(test);
+function test() {
+ UnitTest.addResult("Check to see that FilteredItemSelectionDialog uses proper regex to filter results.");
+
+ var overridenInput = [];
+ var overrideShowMatchingItems = true;
+ var history = [];
+
+ var StubDelegate = class extends UI.FilteredListWidget.Delegate {
+ constructor()
+ {
+ super(history);
+ }
+
+ itemKeyAt(itemIndex) { return overridenInput[itemIndex]; }
+ itemScoreAt(itemIndex) { return 0; }
+ itemCount() { return overridenInput.length; }
+ selectItem(itemIndex, promptValue)
+ {
+ UnitTest.addResult("Selected item index: " + itemIndex);
+ }
+ shouldShowMatchingItems () { return overrideShowMatchingItems; }
+ };
+
+ var delegate = new StubDelegate();
+
+ function checkQuery(query, input, hideMatchingItems)
+ {
+ overridenInput = input;
+ overrideShowMatchingItems = !hideMatchingItems;
+
+ UnitTest.addResult("Input:" + JSON.stringify(input));
+
+ var filteredSelectionDialog = new UI.FilteredListWidget(delegate);
+ filteredSelectionDialog.showAsDialog();
+ var promise = UnitTest.addSniffer(filteredSelectionDialog, "_itemsFilteredForTest").then(accept);
+ filteredSelectionDialog.setQuery(query);
+ filteredSelectionDialog._updateAfterItemsLoaded();
+ return promise;
+
+ function dump()
+ {
+ UnitTest.addResult("Query:" + JSON.stringify(filteredSelectionDialog._value()));
+ var items = filteredSelectionDialog._filteredItems;
+ var output = [];
+ for (var i = 0; i < items.length; ++i)
+ output.push(delegate.itemKeyAt(items[i]));
+ UnitTest.addResult("Output:" + JSON.stringify(output));
+ }
+
+ function accept()
+ {
+ dump();
+ filteredSelectionDialog._onEnter(UnitTest.createKeyEvent("Enter"));
+ UnitTest.addResult("History:" + JSON.stringify(history));
+ }
+ }
+
+ UnitTest.runTests([
+ function emptyQueryMatchesEverything()
+ {
+ return checkQuery("", ["a", "bc"]);
+ },
+
+ function caseSensitiveMatching()
+ {
+ return checkQuery("aB", ["abc", "acB"]);
+ },
+
+ function caseInsensitiveMatching()
+ {
+ return checkQuery("ab", ["abc", "bac", "a_B"]);
+ },
+
+ function dumplicateSymbolsInQuery(next)
+ {
+ return checkQuery("aab", ["abab", "abaa", "caab", "baac", "fooaab"]);
+ },
+
+ function dangerousInputEscaping(next)
+ {
+ return checkQuery("^[]{}()\\.$*+?|", ["^[]{}()\\.$*+?|", "0123456789abcdef"]);
+ },
+
+ function itemIndexIsNotReportedInGoToLine(next)
+ {
+ return checkQuery(":1", [":1:2:3.js"], true, next);
+ },
+
+ function autoCompleteIsLast(next)
+ {
+ return checkQuery("", ["abc", "abcd"]);
+ }
+ ]);
+}

Powered by Google App Engine
This is Rietveld 408576698