Index: webkit/glue/devtools/js/tests.js |
=================================================================== |
--- webkit/glue/devtools/js/tests.js (revision 30804) |
+++ webkit/glue/devtools/js/tests.js (working copy) |
@@ -528,7 +528,9 @@ |
var expectedScriptsCount = 2; |
var parsedScripts = []; |
+ this.showPanel('scripts'); |
+ |
function switchToElementsTab() { |
test.showPanel('elements'); |
setTimeout(switchToScriptsTab, 0); |
@@ -542,28 +544,31 @@ |
function checkScriptsPanel() { |
test.assertTrue(!!WebInspector.panels.scripts.visibleView, |
'No visible script view.'); |
- var select = WebInspector.panels.scripts.filesSelectElement; |
- test.assertEquals(expectedScriptsCount, select.options.length, |
- 'Unexpected options count'); |
+ test.assertTrue(test._scriptsAreParsed(['debugger_test_page.html$']), |
+ 'Some scripts are missing.'); |
+ checkNoDuplicates(); |
test.releaseControl(); |
} |
- this.addSniffer(WebInspector, 'parsedScriptSource', |
- function(sourceID, sourceURL, source, startingLine) { |
- test.assertTrue( |
- parsedScripts.indexOf(sourceURL) == -1, |
- 'Duplicated script: ' + sourceURL); |
- test.assertTrue( |
- parsedScripts.length < expectedScriptsCount, |
- 'Too many scripts: ' + sourceURL); |
- parsedScripts.push(sourceURL); |
+ function checkNoDuplicates() { |
+ var scriptSelect = document.getElementById('scripts-files'); |
+ var options = scriptSelect.options; |
+ for (var i = 0; i < options.length; i++) { |
+ var scriptName = options[i].text; |
+ for (var j = i + 1; j < options.length; j++) { |
+ test.assertTrue(scriptName != options[j].text, |
+ 'Found script duplicates: ' + test.optionsToString_(options)); |
+ } |
+ } |
+ } |
- if (parsedScripts.length == expectedScriptsCount) { |
- setTimeout(switchToElementsTab, 0); |
- } |
- }, true /* sticky */); |
+ test._waitUntilScriptsAreParsed( |
+ ['debugger_test_page.html$'], |
+ function() { |
+ checkNoDuplicates(); |
+ setTimeout(switchToElementsTab, 0); |
+ }); |
- this.showPanel('scripts'); |
// Wait until all scripts are added to the debugger. |
this.takeControl(); |
@@ -574,25 +579,13 @@ |
* Tests that a breakpoint can be set. |
*/ |
TestSuite.prototype.testSetBreakpoint = function() { |
- var parsedDebuggerTestPageHtml = false; |
- var parsedDebuggerTestJs = false; |
- |
+ var test = this; |
this.showPanel('scripts'); |
- var scriptUrl = null; |
var breakpointLine = 12; |
- var test = this; |
- this.addSniffer(devtools.DebuggerAgent.prototype, 'handleScriptsResponse_', |
- function(msg) { |
- var scriptSelect = document.getElementById('scripts-files'); |
- var options = scriptSelect.options; |
- |
- // There should be console API source (see |
- // InjectedScript._ensureCommandLineAPIInstalled) and the page script. |
- test.assertEquals(2, options.length, 'Unexpected number of scripts(' + |
- test.optionsToString_(options) + ')'); |
- |
+ this._waitUntilScriptsAreParsed(['debugger_test_page.html'], |
+ function() { |
test.showMainPageScriptSource_( |
'debugger_test_page.html', |
function(view, url) { |
@@ -606,7 +599,6 @@ |
}); |
}); |
- |
this.takeControl(); |
}; |
@@ -637,10 +629,7 @@ |
var scriptSelect = document.getElementById('scripts-files'); |
var options = scriptSelect.options; |
- // There should be console API source (see |
- // InjectedScript._ensureCommandLineAPIInstalled) and the page script. |
- test.assertEquals(2, options.length, |
- 'Unexpected number of scripts(' + test.optionsToString_(options) + ')'); |
+ test.assertTrue(options.length, 'Scripts list is empty'); |
// Select page's script if it's not current option. |
var scriptResource; |