6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/cucumber/js_console_errors.rb', line 6
def self.inject_script
return '' unless ::Rails.env == 'test'
" <script type=\"text/javascript\">\n\n window.onerror = function(message, url, linenumber) {\n\n // We want to avoid a dependency on jQuery or any other library in case\n // the error we are capturing is due to those libraries blowing up\n var escapeHtml = function (str) {\n return String(str)\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/\\\\//g, \"/\");\n };\n\n var errorReport = '*** JavaScript Console Error: ' + message +\n ' on line ' + linenumber + ' for ' + url + ' (error location may' +\n ' be in a different file/linenumber if the test environment is' +\n ' running minified Javascript) ***';\n\n var elemDiv = document.createElement('div');\n elemDiv.className = 'debug-captured-javascript-console-errors';\n elemDiv.innerHTML = escapeHtml(errorReport);\n\n // The body may not be defined yet\n if (document.body) {\n document.body.appendChild(elemDiv);\n } else {\n window.onload = function() {\n document.body.appendChild(elemDiv);\n };\n }\n };\n\n </script>\n EOF\n\nend\n"
|