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

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

Issue 2458383003: DevTools: Remove ghost text from FilteredListWidget (Closed)
Patch Set: 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.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.html b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.html
new file mode 100644
index 0000000000000000000000000000000000000000..fbddcea4817ff1d39ea89132bb521bba7ab0e3a1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/filtered-item-selection-dialog-filtering.html
@@ -0,0 +1,109 @@
+<html>
+<head>
+<base href="/inspector-debug/"></base>
+<script src="/inspector-debug/Runtime.js"></script>
+<script src="/inspector-unit/inspector-unit-test.js"></script>
+<script>
+UnitTest.addDependency("ui_lazy");
+function test()
+{
+ var overridenInput = [];
+ var overrideShowMatchingItems = true;
+ var history = [];
+
+ function StubDelegate()
+ {
+ WebInspector.FilteredListWidget.Delegate.call(this, history);
+ }
+ StubDelegate.prototype = {
+ itemKeyAt: function(itemIndex) { return overridenInput[itemIndex]; },
+ itemScoreAt: function(itemIndex) { return 0; },
+ itemCount: function() { return overridenInput.length; },
+ selectItem: function(itemIndex, promptValue)
+ {
+ UnitTest.addResult("Selected item index: " + itemIndex);
+ },
+ shouldShowMatchingItems: function() { return overrideShowMatchingItems; },
+
+ __proto__: WebInspector.FilteredListWidget.Delegate.prototype
+ }
+
+ var delegate = new StubDelegate();
+
+ function checkQuery(query, input, hideMatchingItems)
+ {
+ overridenInput = input;
+ overrideShowMatchingItems = !hideMatchingItems;
+
+ UnitTest.addResult("Input:" + JSON.stringify(input));
+
+ var filteredSelectionDialog = new WebInspector.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"]);
+ }
+ ]);
+}
+
+</script>
+</head>
+
+<body>
+<p>Check to see that FilteredItemSelectionDialog uses proper regex to filter results.</p>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698