0,0 → 1,242 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
<title>SyntaxHighlighter Highlight Tests</title> |
|
<!-- jQuery & QUnit --> |
<script type="text/javascript" src="js/jquery-1.4.2.js"></script> |
<script type="text/javascript" src="js/qunit.js"></script> |
<link type="text/css" rel="stylesheet" href="js/qunit.css"/> |
|
<!-- SyntaxHighlighter --> |
<script type="text/javascript" src="/sh/scripts/XRegExp.js"></script> <!-- XRegExp is bundled with the final shCore.js during build --> |
<script type="text/javascript" src="/sh/scripts/shCore.js"></script> |
<script type="text/javascript" src="/sh/scripts/shLegacy.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushAppleScript.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushAS3.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushBash.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushColdFusion.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushCpp.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushCSharp.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushCss.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushDelphi.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushDiff.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushErlang.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushGroovy.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushJava.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushJavaFx.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushJScript.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushPerl.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushPhp.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushPlain.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushPowerShell.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushPython.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushRuby.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushSass.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushScala.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushSql.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushVb.js"></script> |
<script type="text/javascript" src="/sh/scripts/shBrushXml.js"></script> |
|
<link type="text/css" rel="stylesheet" href="/sh/styles/shCoreDefault.css"/> |
</head> |
|
<body> |
|
<h1 id="qunit-header">SyntaxHighlighter Highlight Lines Test</h1> |
<h2 id="qunit-banner"></h2> |
<div id="qunit-testrunner-toolbar"></div> |
<h2 id="qunit-userAgent"></h2> |
<ol id="qunit-tests"></ol> |
|
<button id="interaction">Run interaction tests</button> |
|
<div id="output"> |
</div> |
|
<style> |
body { |
background: white; |
} |
|
#interaction { |
margin-top: 1em; |
padding: 1em; |
font-size: 1.5em; |
} |
|
.test-wrap { |
width: 45%; |
height: 400px; |
overflow: auto; |
float: left; |
margin: 1em 1em 0 0; |
border: 5px solid silver; |
background: gray; |
font-family: Helvetica; |
} |
|
.test-wrap h3 { |
margin: 1em 0 0 1em; |
color: white; |
font-size: 1em; |
font-weight: normal; |
} |
</style> |
|
<script type="text/javascript"> |
var testQueue = [], |
renderTests = [ |
'001_basic', |
'002_brushes', |
'003_script_tag', |
'004_url_parsing', |
'005_no_gutter', |
'006_pad_line_numbers', |
'007_collapse', |
'008_first_line', |
'009_class_name', |
'010_highlight', |
'011_smart_tabs', |
'012_server_side', |
'013_html_script', |
'014_legacy' |
], |
interactionTests = [ |
'007_collapse_interaction' |
] |
; |
|
function queue(func) |
{ |
testQueue.push(func); |
}; |
|
function ok_sh($sh) |
{ |
ok($sh.length > 0, 'Element present'); |
ok($sh.is('div'), 'Element is DIV'); |
ok($sh.find('> div').is('.syntaxhighlighter'), 'Nested DIV is a .syntaxhighlighter'); |
}; |
|
function ok_toolbar($sh) |
{ |
var $target = $sh.find('> .syntaxhighlighter > .toolbar'); |
ok($target.length > 0, 'Toolbar present'); |
ok($target.is(':visible'), 'Toolbar visible'); |
}; |
|
function ok_caption($sh, value) |
{ |
var $target = $sh.find('> .syntaxhighlighter > table > caption'); |
ok($target.length > 0, 'Caption present'); |
ok($target.is(':visible'), 'Caption visible'); |
|
if (value != null) |
equals($target.text(), value, 'Caption text'); |
}; |
|
function ok_gutter($sh) |
{ |
var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .gutter'); |
ok($target.length > 0, 'Gutter present'); |
ok($target.is(':visible'), 'Gutter visible'); |
}; |
|
function ok_code($sh) |
{ |
var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .code'); |
ok($target.length > 0, 'Code present'); |
ok($target.is(':visible'), 'Code visible'); |
}; |
|
function ok_collapsed($sh) |
{ |
ok($sh.find('> .syntaxhighlighter.collapsed').length == 1, '.collapsed present'); |
}; |
|
function loadTests(tests, addHtml) |
{ |
var html = ''; |
|
$.each(tests, function(index) |
{ |
var name = this; |
|
if (addHtml != false) |
{ |
html += '<div class="test-wrap">\n' |
html += '<h3>' + name + '</h3>\n'; |
} |
|
$.ajax({ |
url: 'cases/' + name + '.html', |
type: 'GET', |
dataType: 'text', |
async: false, |
success: function(data) |
{ |
html += data; |
}, |
error: function() |
{ |
html += '<p>Not found...</p>'; |
} |
}); |
|
if (addHtml != false) |
{ |
html += '</div>\n'; |
|
if (index % 2 != 0) |
html += '<div style="clear:both"></div>\n'; |
} |
}); |
|
// |
// Looks like .html() is producing different results when it comes to |
// content that has <script /> which type is NOT "text/javascript". |
// $('#output').html(html); |
// |
$('#output')[0].innerHTML += html; |
|
// |
// However, if HTML assigned to to .innerHTML container <script/> tags, |
// they are not executed, so we have to manually walk all of them and |
// eval() the content. |
// |
$('#output script[type="text/javascript"][class!="executed"]').each(function() |
{ |
eval($(this).text() || $(this).html()); |
$(this).addClass('executed') |
}); |
}; |
|
function runTestQueue() |
{ |
|
$.each(testQueue, function() |
{ |
this.apply(null); |
}); |
|
testQueue = []; |
}; |
|
$(document).ready(function() |
{ |
loadTests(renderTests); |
SyntaxHighlighter.highlight(); |
runTestQueue(); |
|
$('#interaction').click(function() |
{ |
loadTests(interactionTests, false /* addHtml */); |
runTestQueue(); |
}); |
}); |
</script> |
|
</body> |
</html> |