| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2010 Google Inc. All rights reserved. | 2  * Copyright (C) 2010 Google Inc. All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions are | 5  * modification, are permitted provided that the following conditions are | 
| 6  * met: | 6  * met: | 
| 7  * | 7  * | 
| 8  *     * Redistributions of source code must retain the above copyright | 8  *     * Redistributions of source code must retain the above copyright | 
| 9  * notice, this list of conditions and the following disclaimer. | 9  * notice, this list of conditions and the following disclaimer. | 
| 10  *     * Redistributions in binary form must reproduce the above | 10  *     * Redistributions in binary form must reproduce the above | 
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 237 } | 237 } | 
| 238 | 238 | 
| 239 // UI Tests | 239 // UI Tests | 
| 240 | 240 | 
| 241 | 241 | 
| 242 /** | 242 /** | 
| 243  * Tests that scripts tab can be open and populated with inspected scripts. | 243  * Tests that scripts tab can be open and populated with inspected scripts. | 
| 244  */ | 244  */ | 
| 245 TestSuite.prototype.testShowScriptsTab = function() | 245 TestSuite.prototype.testShowScriptsTab = function() | 
| 246 { | 246 { | 
| 247     this.showPanel("scripts"); | 247     this.showPanel("sources"); | 
| 248     var test = this; | 248     var test = this; | 
| 249     // There should be at least main page script. | 249     // There should be at least main page script. | 
| 250     this._waitUntilScriptsAreParsed(["debugger_test_page.html"], | 250     this._waitUntilScriptsAreParsed(["debugger_test_page.html"], | 
| 251         function() { | 251         function() { | 
| 252             test.releaseControl(); | 252             test.releaseControl(); | 
| 253         }); | 253         }); | 
| 254     // Wait until all scripts are added to the debugger. | 254     // Wait until all scripts are added to the debugger. | 
| 255     this.takeControl(); | 255     this.takeControl(); | 
| 256 }; | 256 }; | 
| 257 | 257 | 
| 258 | 258 | 
| 259 /** | 259 /** | 
| 260  * Tests that scripts tab is populated with inspected scripts even if it | 260  * Tests that scripts tab is populated with inspected scripts even if it | 
| 261  * hadn't been shown by the moment inspected paged refreshed. | 261  * hadn't been shown by the moment inspected paged refreshed. | 
| 262  * @see http://crbug.com/26312 | 262  * @see http://crbug.com/26312 | 
| 263  */ | 263  */ | 
| 264 TestSuite.prototype.testScriptsTabIsPopulatedOnInspectedPageRefresh = function() | 264 TestSuite.prototype.testScriptsTabIsPopulatedOnInspectedPageRefresh = function() | 
| 265 { | 265 { | 
| 266     var test = this; | 266     var test = this; | 
| 267     this.assertEquals(WebInspector.panels.elements, WebInspector.inspectorView.c
     urrentPanel(), "Elements panel should be current one."); | 267     this.assertEquals(WebInspector.panels.elements, WebInspector.inspectorView.c
     urrentPanel(), "Elements panel should be current one."); | 
| 268 | 268 | 
| 269     WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Event
     s.GlobalObjectCleared, waitUntilScriptIsParsed); | 269     WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Event
     s.GlobalObjectCleared, waitUntilScriptIsParsed); | 
| 270 | 270 | 
| 271     // Reload inspected page. It will reset the debugger agent. | 271     // Reload inspected page. It will reset the debugger agent. | 
| 272     test.evaluateInConsole_("window.location.reload(true);", function(resultText
     ) {}); | 272     test.evaluateInConsole_("window.location.reload(true);", function(resultText
     ) {}); | 
| 273 | 273 | 
| 274     function waitUntilScriptIsParsed() | 274     function waitUntilScriptIsParsed() | 
| 275     { | 275     { | 
| 276         WebInspector.debuggerModel.removeEventListener(WebInspector.DebuggerMode
     l.Events.GlobalObjectCleared, waitUntilScriptIsParsed); | 276         WebInspector.debuggerModel.removeEventListener(WebInspector.DebuggerMode
     l.Events.GlobalObjectCleared, waitUntilScriptIsParsed); | 
| 277         test.showPanel("scripts"); | 277         test.showPanel("sources"); | 
| 278         test._waitUntilScriptsAreParsed(["debugger_test_page.html"], | 278         test._waitUntilScriptsAreParsed(["debugger_test_page.html"], | 
| 279             function() { | 279             function() { | 
| 280                 test.releaseControl(); | 280                 test.releaseControl(); | 
| 281             }); | 281             }); | 
| 282     } | 282     } | 
| 283 | 283 | 
| 284     // Wait until all scripts are added to the debugger. | 284     // Wait until all scripts are added to the debugger. | 
| 285     this.takeControl(); | 285     this.takeControl(); | 
| 286 }; | 286 }; | 
| 287 | 287 | 
| 288 | 288 | 
| 289 /** | 289 /** | 
| 290  * Tests that scripts list contains content scripts. | 290  * Tests that scripts list contains content scripts. | 
| 291  */ | 291  */ | 
| 292 TestSuite.prototype.testContentScriptIsPresent = function() | 292 TestSuite.prototype.testContentScriptIsPresent = function() | 
| 293 { | 293 { | 
| 294     this.showPanel("scripts"); | 294     this.showPanel("sources"); | 
| 295     var test = this; | 295     var test = this; | 
| 296 | 296 | 
| 297     test._waitUntilScriptsAreParsed( | 297     test._waitUntilScriptsAreParsed( | 
| 298         ["page_with_content_script.html", "simple_content_script.js"], | 298         ["page_with_content_script.html", "simple_content_script.js"], | 
| 299         function() { | 299         function() { | 
| 300           test.releaseControl(); | 300           test.releaseControl(); | 
| 301         }); | 301         }); | 
| 302 | 302 | 
| 303     // Wait until all scripts are added to the debugger. | 303     // Wait until all scripts are added to the debugger. | 
| 304     this.takeControl(); | 304     this.takeControl(); | 
| 305 }; | 305 }; | 
| 306 | 306 | 
| 307 | 307 | 
| 308 /** | 308 /** | 
| 309  * Tests that scripts are not duplicaed on Scripts tab switch. | 309  * Tests that scripts are not duplicaed on Scripts tab switch. | 
| 310  */ | 310  */ | 
| 311 TestSuite.prototype.testNoScriptDuplicatesOnPanelSwitch = function() | 311 TestSuite.prototype.testNoScriptDuplicatesOnPanelSwitch = function() | 
| 312 { | 312 { | 
| 313     var test = this; | 313     var test = this; | 
| 314 | 314 | 
| 315     // There should be two scripts: one for the main page and another | 315     // There should be two scripts: one for the main page and another | 
| 316     // one which is source of console API(see | 316     // one which is source of console API(see | 
| 317     // InjectedScript._ensureCommandLineAPIInstalled). | 317     // InjectedScript._ensureCommandLineAPIInstalled). | 
| 318     var expectedScriptsCount = 2; | 318     var expectedScriptsCount = 2; | 
| 319     var parsedScripts = []; | 319     var parsedScripts = []; | 
| 320 | 320 | 
| 321     this.showPanel("scripts"); | 321     this.showPanel("sources"); | 
| 322 | 322 | 
| 323     function switchToElementsTab() { | 323     function switchToElementsTab() { | 
| 324         test.showPanel("elements"); | 324         test.showPanel("elements"); | 
| 325         setTimeout(switchToScriptsTab, 0); | 325         setTimeout(switchToScriptsTab, 0); | 
| 326     } | 326     } | 
| 327 | 327 | 
| 328     function switchToScriptsTab() { | 328     function switchToScriptsTab() { | 
| 329         test.showPanel("scripts"); | 329         test.showPanel("sources"); | 
| 330         setTimeout(checkScriptsPanel, 0); | 330         setTimeout(checkScriptsPanel, 0); | 
| 331     } | 331     } | 
| 332 | 332 | 
| 333     function checkScriptsPanel() { | 333     function checkScriptsPanel() { | 
| 334         test.assertTrue(test._scriptsAreParsed(["debugger_test_page.html"]), "So
     me scripts are missing."); | 334         test.assertTrue(test._scriptsAreParsed(["debugger_test_page.html"]), "So
     me scripts are missing."); | 
| 335         checkNoDuplicates(); | 335         checkNoDuplicates(); | 
| 336         test.releaseControl(); | 336         test.releaseControl(); | 
| 337     } | 337     } | 
| 338 | 338 | 
| 339     function checkNoDuplicates() { | 339     function checkNoDuplicates() { | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 355 | 355 | 
| 356     // Wait until all scripts are added to the debugger. | 356     // Wait until all scripts are added to the debugger. | 
| 357     this.takeControl(); | 357     this.takeControl(); | 
| 358 }; | 358 }; | 
| 359 | 359 | 
| 360 | 360 | 
| 361 // Tests that debugger works correctly if pause event occurs when DevTools | 361 // Tests that debugger works correctly if pause event occurs when DevTools | 
| 362 // frontend is being loaded. | 362 // frontend is being loaded. | 
| 363 TestSuite.prototype.testPauseWhenLoadingDevTools = function() | 363 TestSuite.prototype.testPauseWhenLoadingDevTools = function() | 
| 364 { | 364 { | 
| 365     this.showPanel("scripts"); | 365     this.showPanel("sources"); | 
| 366 | 366 | 
| 367     // Script execution can already be paused. | 367     // Script execution can already be paused. | 
| 368     if (WebInspector.debuggerModel.debuggerPausedDetails) | 368     if (WebInspector.debuggerModel.debuggerPausedDetails) | 
| 369         return; | 369         return; | 
| 370 | 370 | 
| 371     this._waitForScriptPause(this.releaseControl.bind(this)); | 371     this._waitForScriptPause(this.releaseControl.bind(this)); | 
| 372     this.takeControl(); | 372     this.takeControl(); | 
| 373 }; | 373 }; | 
| 374 | 374 | 
| 375 | 375 | 
| 376 // Tests that pressing "Pause" will pause script execution if the script | 376 // Tests that pressing "Pause" will pause script execution if the script | 
| 377 // is already running. | 377 // is already running. | 
| 378 TestSuite.prototype.testPauseWhenScriptIsRunning = function() | 378 TestSuite.prototype.testPauseWhenScriptIsRunning = function() | 
| 379 { | 379 { | 
| 380     this.showPanel("scripts"); | 380     this.showPanel("sources"); | 
| 381 | 381 | 
| 382     this.evaluateInConsole_( | 382     this.evaluateInConsole_( | 
| 383         'setTimeout("handleClick()" , 0)', | 383         'setTimeout("handleClick()" , 0)', | 
| 384         didEvaluateInConsole.bind(this)); | 384         didEvaluateInConsole.bind(this)); | 
| 385 | 385 | 
| 386     function didEvaluateInConsole(resultText) { | 386     function didEvaluateInConsole(resultText) { | 
| 387         this.assertTrue(!isNaN(resultText), "Failed to get timer id: " + resultT
     ext); | 387         this.assertTrue(!isNaN(resultText), "Failed to get timer id: " + resultT
     ext); | 
| 388         // Wait for some time to make sure that inspected page is running the | 388         // Wait for some time to make sure that inspected page is running the | 
| 389         // infinite loop. | 389         // infinite loop. | 
| 390         setTimeout(testScriptPause.bind(this), 300); | 390         setTimeout(testScriptPause.bind(this), 300); | 
| 391     } | 391     } | 
| 392 | 392 | 
| 393     function testScriptPause() { | 393     function testScriptPause() { | 
| 394         // The script should be in infinite loop. Click "Pause" button to | 394         // The script should be in infinite loop. Click "Pause" button to | 
| 395         // pause it and wait for the result. | 395         // pause it and wait for the result. | 
| 396         WebInspector.panels.scripts._pauseButton.element.click(); | 396         WebInspector.panels.sources._pauseButton.element.click(); | 
| 397 | 397 | 
| 398         this._waitForScriptPause(this.releaseControl.bind(this)); | 398         this._waitForScriptPause(this.releaseControl.bind(this)); | 
| 399     } | 399     } | 
| 400 | 400 | 
| 401     this.takeControl(); | 401     this.takeControl(); | 
| 402 }; | 402 }; | 
| 403 | 403 | 
| 404 | 404 | 
| 405 /** | 405 /** | 
| 406  * Tests network size. | 406  * Tests network size. | 
| (...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 902  * Waits until all the scripts are parsed and invokes the callback. | 902  * Waits until all the scripts are parsed and invokes the callback. | 
| 903  */ | 903  */ | 
| 904 TestSuite.prototype._waitUntilScriptsAreParsed = function(expectedScripts, callb
     ack) | 904 TestSuite.prototype._waitUntilScriptsAreParsed = function(expectedScripts, callb
     ack) | 
| 905 { | 905 { | 
| 906     var test = this; | 906     var test = this; | 
| 907 | 907 | 
| 908     function waitForAllScripts() { | 908     function waitForAllScripts() { | 
| 909         if (test._scriptsAreParsed(expectedScripts)) | 909         if (test._scriptsAreParsed(expectedScripts)) | 
| 910             callback(); | 910             callback(); | 
| 911         else | 911         else | 
| 912             test.addSniffer(WebInspector.panels.scripts, "_addUISourceCode", wai
     tForAllScripts); | 912             test.addSniffer(WebInspector.panels.sources, "_addUISourceCode", wai
     tForAllScripts); | 
| 913     } | 913     } | 
| 914 | 914 | 
| 915     waitForAllScripts(); | 915     waitForAllScripts(); | 
| 916 }; | 916 }; | 
| 917 | 917 | 
| 918 | 918 | 
| 919 /** | 919 /** | 
| 920  * Key event with given key identifier. | 920  * Key event with given key identifier. | 
| 921  */ | 921  */ | 
| 922 TestSuite.createKeyEvent = function(keyIdentifier) | 922 TestSuite.createKeyEvent = function(keyIdentifier) | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 972 var oldLoadCompleted = InspectorFrontendAPI.loadCompleted; | 972 var oldLoadCompleted = InspectorFrontendAPI.loadCompleted; | 
| 973 InspectorFrontendAPI.loadCompleted = function() | 973 InspectorFrontendAPI.loadCompleted = function() | 
| 974 { | 974 { | 
| 975     oldLoadCompleted.call(InspectorFrontendAPI); | 975     oldLoadCompleted.call(InspectorFrontendAPI); | 
| 976     runTests(); | 976     runTests(); | 
| 977 } | 977 } | 
| 978 | 978 | 
| 979 })(); | 979 })(); | 
| 980 | 980 | 
| 981 } | 981 } | 
| OLD | NEW | 
|---|