nextcloud/plugins/textviewer/syntaxhighlighter/tests/syntaxhighlighter_tests.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>