blob: 4b8e5f06f10c0edef222fb0f898b713f96f732f1 [file] [log] [blame]
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script>
function test()
{
WebInspector.showPanel("scripts");
var overridenInput = [];
var overridenTitle = [];
var overridenQuery = "";
var overridenScores = [];
function StubDelegate()
{
WebInspector.SelectionDialogContentProvider.call(this);
}
StubDelegate.prototype = {
itemKeyAt: function(itemIndex) { return overridenInput[itemIndex]; },
itemScoreAt: function(itemIndex) { return overridenScores[itemIndex] || 0; },
itemCount: function() { return overridenInput.length; },
selectItem: function(itemIndex, promptValue) { },
rewriteQuery: function(query) { return overridenQuery; },
__proto__: WebInspector.SelectionDialogContentProvider.prototype
}
var overridenInput = [];
var overridenTitle = [];
var overridenQuery = "";
var overridenScores = [];
var delegate = new StubDelegate();
function checkQuery(title, query, input, titles, scores)
{
overridenInput = input;
overridenQuery = query;
overridenTitles = titles || [];
overridenScores = scores || [];
InspectorTest.addResult("\n" + title);
InspectorTest.addResult("Query:" + JSON.stringify(query));
InspectorTest.addResult("Input:" + JSON.stringify(input));
var filteredSelectionDialog = new WebInspector.FilteredItemSelectionDialog(delegate);
filteredSelectionDialog._updateAfterItemsLoaded();
var items = filteredSelectionDialog._filteredItems;
var output = [];
for (var i = 0; i < items.length; ++i)
output.push(delegate.itemKeyAt(items[i]));
InspectorTest.addResult("Output:" + JSON.stringify(output));
}
checkQuery("Empty query matches everything", "", ["a", "bc"]);
checkQuery("Case sensitive matching", "aB", ["abc", "acB"]);
checkQuery("Case insensitive matching", "ab", ["abc", "bac", "a_B"]);
checkQuery("Duplicate symbols in query", "aab", ["abab", "abaa", "caab", "baac", "fooaab"]);
checkQuery("Dangerous input escaping", "^[]{}()\\.$*+?|", ["^[]{}()\\.$*+?|", "0123456789abcdef"]);
InspectorTest.completeTest();
}
</script>
</head>
<body onload="runTest()">
<p>
Check to see that FilteredItemSelectionDialog uses proper regex to filter results.
</p>
</body>
</html>