243 lines
6.4 KiB
HTML
243 lines
6.4 KiB
HTML
<!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>
|