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 |