| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../http/tests/inspector/inspector-test.js"></script> |
| 4 <script> | 4 <script> |
| 5 | 5 |
| 6 function test() | 6 function test() |
| 7 { | 7 { |
| 8 WebInspector.inspectorView.showPanel("sources"); | 8 WebInspector.inspectorView.showPanel("sources"); |
| 9 | 9 |
| 10 var overridenInput = []; | 10 var overridenInput = []; |
| 11 var overridenTitle = []; | |
| 12 var overridenQuery = ""; | 11 var overridenQuery = ""; |
| 13 var overridenScores = []; | 12 var overrideShowMatchingItems = true; |
| 14 | 13 |
| 15 function StubDelegate() | 14 function StubDelegate() |
| 16 { | 15 { |
| 17 WebInspector.SelectionDialogContentProvider.call(this); | 16 WebInspector.SelectionDialogContentProvider.call(this); |
| 18 } | 17 } |
| 19 StubDelegate.prototype = { | 18 StubDelegate.prototype = { |
| 20 itemKeyAt: function(itemIndex) { return overridenInput[itemIndex]; }, | 19 itemKeyAt: function(itemIndex) { return overridenInput[itemIndex]; }, |
| 21 itemScoreAt: function(itemIndex) { return overridenScores[itemIndex] ||
0; }, | 20 itemScoreAt: function(itemIndex) { return 0; }, |
| 22 itemCount: function() { return overridenInput.length; }, | 21 itemCount: function() { return overridenInput.length; }, |
| 23 selectItem: function(itemIndex, promptValue) { }, | 22 selectItem: function(itemIndex, promptValue) |
| 23 { |
| 24 InspectorTest.addResult("Selected item index: " + itemIndex); |
| 25 }, |
| 24 rewriteQuery: function(query) { return overridenQuery; }, | 26 rewriteQuery: function(query) { return overridenQuery; }, |
| 27 shouldShowMatchingItems: function() { return overrideShowMatchingItems;
}, |
| 25 | 28 |
| 26 __proto__: WebInspector.SelectionDialogContentProvider.prototype | 29 __proto__: WebInspector.SelectionDialogContentProvider.prototype |
| 27 } | 30 } |
| 28 | 31 |
| 29 var overridenInput = []; | 32 var overridenInput = []; |
| 30 var overridenTitle = []; | |
| 31 var overridenQuery = ""; | 33 var overridenQuery = ""; |
| 32 var overridenScores = []; | |
| 33 var delegate = new StubDelegate(); | 34 var delegate = new StubDelegate(); |
| 34 | 35 |
| 35 function checkQuery(title, query, input, titles, scores) | 36 function checkQuery(title, query, input, hideMatchingItems) |
| 36 { | 37 { |
| 37 overridenInput = input; | 38 overridenInput = input; |
| 38 overridenQuery = query; | 39 overridenQuery = query; |
| 39 overridenTitles = titles || []; | 40 overrideShowMatchingItems = !hideMatchingItems; |
| 40 overridenScores = scores || []; | |
| 41 | 41 |
| 42 InspectorTest.addResult("\n" + title); | 42 InspectorTest.addResult("\n" + title); |
| 43 InspectorTest.addResult("Query:" + JSON.stringify(query)); | 43 InspectorTest.addResult("Query:" + JSON.stringify(query)); |
| 44 InspectorTest.addResult("Input:" + JSON.stringify(input)); | 44 InspectorTest.addResult("Input:" + JSON.stringify(input)); |
| 45 | 45 |
| 46 var filteredSelectionDialog = new WebInspector.FilteredItemSelectionDial
og(delegate); | 46 var filteredSelectionDialog = new WebInspector.FilteredItemSelectionDial
og(delegate); |
| 47 filteredSelectionDialog._updateAfterItemsLoaded(); | 47 filteredSelectionDialog._updateAfterItemsLoaded(); |
| 48 var items = filteredSelectionDialog._filteredItems; | 48 var items = filteredSelectionDialog._filteredItems; |
| 49 var output = []; | 49 var output = []; |
| 50 for (var i = 0; i < items.length; ++i) | 50 for (var i = 0; i < items.length; ++i) |
| 51 output.push(delegate.itemKeyAt(items[i])); | 51 output.push(delegate.itemKeyAt(items[i])); |
| 52 InspectorTest.addResult("Output:" + JSON.stringify(output)); | 52 InspectorTest.addResult("Output:" + JSON.stringify(output)); |
| 53 filteredSelectionDialog.onEnter(); |
| 53 } | 54 } |
| 54 | 55 |
| 55 checkQuery("Empty query matches everything", "", ["a", "bc"]); | 56 checkQuery("Empty query matches everything", "", ["a", "bc"]); |
| 56 checkQuery("Case sensitive matching", "aB", ["abc", "acB"]); | 57 checkQuery("Case sensitive matching", "aB", ["abc", "acB"]); |
| 57 checkQuery("Case insensitive matching", "ab", ["abc", "bac", "a_B"]); | 58 checkQuery("Case insensitive matching", "ab", ["abc", "bac", "a_B"]); |
| 58 checkQuery("Duplicate symbols in query", "aab", ["abab", "abaa", "caab", "ba
ac", "fooaab"]); | 59 checkQuery("Duplicate symbols in query", "aab", ["abab", "abaa", "caab", "ba
ac", "fooaab"]); |
| 59 checkQuery("Dangerous input escaping", "^[]{}()\\.$*+?|", ["^[]{}()\\.$*+?|"
, "0123456789abcdef"]); | 60 checkQuery("Dangerous input escaping", "^[]{}()\\.$*+?|", ["^[]{}()\\.$*+?|"
, "0123456789abcdef"]); |
| 61 checkQuery("Item index is not reported in go-to line", ":1", [":1:2:3.js"],
true); |
| 60 InspectorTest.completeTest(); | 62 InspectorTest.completeTest(); |
| 61 } | 63 } |
| 62 | 64 |
| 63 </script> | 65 </script> |
| 64 </head> | 66 </head> |
| 65 | 67 |
| 66 <body onload="runTest()"> | 68 <body onload="runTest()"> |
| 67 <p> | 69 <p> |
| 68 Check to see that FilteredItemSelectionDialog uses proper regex to filter result
s. | 70 Check to see that FilteredItemSelectionDialog uses proper regex to filter result
s. |
| 69 </p> | 71 </p> |
| 70 | 72 |
| 71 </body> | 73 </body> |
| 72 </html> | 74 </html> |
| OLD | NEW |