1
1
var url = require ( 'url' ) ;
2
2
var util = require ( 'util' ) ;
3
3
var webdriver = require ( 'selenium-webdriver' ) ;
4
+ var helper = require ( './util' ) ;
4
5
5
6
var clientSideScripts = require ( './clientsidescripts.js' ) ;
6
7
var ProtractorBy = require ( './locators.js' ) . ProtractorBy ;
@@ -14,17 +15,6 @@ var WEB_ELEMENT_FUNCTIONS = [
14
15
'getSize' , 'getLocation' , 'isEnabled' , 'isSelected' , 'submit' , 'clear' ,
15
16
'isDisplayed' , 'getOuterHtml' , 'getInnerHtml' , 'getId' ] ;
16
17
17
- var STACK_SUBSTRINGS_TO_FILTER = [
18
- 'node_modules/minijasminenode/lib/' ,
19
- 'node_modules/selenium-webdriver' ,
20
- 'at Module.' ,
21
- 'at Object.Module.' ,
22
- 'at Function.Module' ,
23
- '(timers.js:' ,
24
- 'jasminewd/index.js' ,
25
- 'protractor/lib/'
26
- ] ;
27
-
28
18
var DEFAULT_RESET_URL = 'data:text/html,<html></html>' ;
29
19
var DEFAULT_GET_PAGE_TIMEOUT = 10000 ;
30
20
@@ -1478,21 +1468,11 @@ Protractor.prototype.pause = function(opt_debugPort) {
1478
1468
1479
1469
var getDescriptions = function ( frameOrTask , descriptions ) {
1480
1470
if ( frameOrTask . getDescription ) {
1481
- var getRelevantStack = function ( stack ) {
1482
- return stack . filter ( function ( line ) {
1483
- var include = true ;
1484
- for ( var i = 0 ; i < STACK_SUBSTRINGS_TO_FILTER . length ; ++ i ) {
1485
- if ( line . toString ( ) . indexOf ( STACK_SUBSTRINGS_TO_FILTER [ i ] ) !==
1486
- - 1 ) {
1487
- include = false ;
1488
- }
1489
- }
1490
- return include ;
1491
- } ) ;
1492
- } ;
1471
+ var stacktrace = frameOrTask . snapshot_ . getStacktrace ( ) ;
1472
+ stacktrace = stacktrace ? stacktrace . join ( '\n' ) . trim ( ) : '' ;
1493
1473
descriptions . push ( {
1494
1474
description : frameOrTask . getDescription ( ) ,
1495
- stack : getRelevantStack ( frameOrTask . snapshot_ . getStacktrace ( ) )
1475
+ stack : helper . filterStackTrace ( stacktrace )
1496
1476
} ) ;
1497
1477
} else {
1498
1478
for ( var i = 0 ; i < frameOrTask . children_ . length ; ++ i ) {
@@ -1510,8 +1490,8 @@ Protractor.prototype.pause = function(opt_debugPort) {
1510
1490
var asString = '-- WebDriver control flow schedule \n' ;
1511
1491
for ( var i = 0 ; i < descriptions . length ; ++ i ) {
1512
1492
asString += ' |- ' + descriptions [ i ] . description ;
1513
- if ( descriptions [ i ] . stack . length ) {
1514
- asString += '\n |---' + descriptions [ i ] . stack . join ( '\n |---' ) ;
1493
+ if ( descriptions [ i ] . stack ) {
1494
+ asString += '\n |---' + descriptions [ i ] . stack . replace ( / \n / g , '\n |---' ) ;
1515
1495
}
1516
1496
if ( i != ( descriptions . length - 1 ) ) {
1517
1497
asString += '\n' ;
@@ -1571,28 +1551,3 @@ exports.setInstance = function(ptor) {
1571
1551
exports . getInstance = function ( ) {
1572
1552
return instance ;
1573
1553
} ;
1574
-
1575
- /**
1576
- * Utility function that filters a stack trace to be more readable. It removes
1577
- * Jasmine test frames and webdriver promise resolution.
1578
- * @param {string } text Original stack trace.
1579
- * @return {string }
1580
- */
1581
- exports . filterStackTrace = function ( text ) {
1582
- if ( ! text ) {
1583
- return text ;
1584
- }
1585
- var lines = [ ] ;
1586
- text . split ( / \n / ) . forEach ( function ( line ) {
1587
- var include = true ;
1588
- for ( var i = 0 ; i < STACK_SUBSTRINGS_TO_FILTER . length ; ++ i ) {
1589
- if ( line . indexOf ( STACK_SUBSTRINGS_TO_FILTER [ i ] ) !== - 1 ) {
1590
- include = false ;
1591
- }
1592
- }
1593
- if ( include ) {
1594
- lines . push ( line ) ;
1595
- }
1596
- } ) ;
1597
- return lines . join ( '\n' ) ;
1598
- } ;
0 commit comments