PageRenderTime 57ms CodeModel.GetById 42ms app.highlight 12ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/syntaxhighlighter_3.0.83/tests/syntaxhighlighter_tests.html

#
HTML | 242 lines | 206 code | 34 blank | 2 comment | 0 complexity | 772df05a1b1c1695cb6373cbd5fe3f8c MD5 | raw file
  1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3<head>
  4	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5	<title>SyntaxHighlighter Highlight Tests</title>
  6
  7	<!-- jQuery & QUnit -->
  8	<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
  9	<script type="text/javascript" src="js/qunit.js"></script>
 10	<link type="text/css" rel="stylesheet" href="js/qunit.css"/>
 11
 12	<!-- SyntaxHighlighter -->
 13	<script type="text/javascript" src="/sh/scripts/XRegExp.js"></script> <!-- XRegExp is bundled with the final shCore.js during build -->
 14	<script type="text/javascript" src="/sh/scripts/shCore.js"></script>
 15	<script type="text/javascript" src="/sh/scripts/shLegacy.js"></script>
 16	<script type="text/javascript" src="/sh/scripts/shBrushAppleScript.js"></script>
 17	<script type="text/javascript" src="/sh/scripts/shBrushAS3.js"></script>
 18	<script type="text/javascript" src="/sh/scripts/shBrushBash.js"></script>
 19	<script type="text/javascript" src="/sh/scripts/shBrushColdFusion.js"></script>
 20	<script type="text/javascript" src="/sh/scripts/shBrushCpp.js"></script>
 21	<script type="text/javascript" src="/sh/scripts/shBrushCSharp.js"></script>
 22	<script type="text/javascript" src="/sh/scripts/shBrushCss.js"></script>
 23	<script type="text/javascript" src="/sh/scripts/shBrushDelphi.js"></script>
 24	<script type="text/javascript" src="/sh/scripts/shBrushDiff.js"></script>
 25	<script type="text/javascript" src="/sh/scripts/shBrushErlang.js"></script>
 26	<script type="text/javascript" src="/sh/scripts/shBrushGroovy.js"></script>
 27	<script type="text/javascript" src="/sh/scripts/shBrushJava.js"></script>
 28	<script type="text/javascript" src="/sh/scripts/shBrushJavaFx.js"></script>
 29	<script type="text/javascript" src="/sh/scripts/shBrushJScript.js"></script>
 30	<script type="text/javascript" src="/sh/scripts/shBrushPerl.js"></script>
 31	<script type="text/javascript" src="/sh/scripts/shBrushPhp.js"></script>
 32	<script type="text/javascript" src="/sh/scripts/shBrushPlain.js"></script>
 33	<script type="text/javascript" src="/sh/scripts/shBrushPowerShell.js"></script>
 34	<script type="text/javascript" src="/sh/scripts/shBrushPython.js"></script>
 35	<script type="text/javascript" src="/sh/scripts/shBrushRuby.js"></script>
 36	<script type="text/javascript" src="/sh/scripts/shBrushSass.js"></script>
 37	<script type="text/javascript" src="/sh/scripts/shBrushScala.js"></script>
 38	<script type="text/javascript" src="/sh/scripts/shBrushSql.js"></script>
 39	<script type="text/javascript" src="/sh/scripts/shBrushVb.js"></script>
 40	<script type="text/javascript" src="/sh/scripts/shBrushXml.js"></script>
 41
 42	<link type="text/css" rel="stylesheet" href="/sh/styles/shCoreDefault.css"/>
 43</head>
 44
 45<body>
 46
 47<h1 id="qunit-header">SyntaxHighlighter Highlight Lines Test</h1>
 48<h2 id="qunit-banner"></h2>
 49<div id="qunit-testrunner-toolbar"></div>
 50<h2 id="qunit-userAgent"></h2>
 51<ol id="qunit-tests"></ol>
 52
 53<button id="interaction">Run interaction tests</button>
 54
 55<div id="output">
 56</div>
 57
 58<style>
 59body {
 60	background: white;
 61}
 62
 63#interaction {
 64	margin-top: 1em;
 65	padding: 1em;
 66	font-size: 1.5em;
 67}
 68
 69.test-wrap {
 70	width: 45%;
 71	height: 400px;
 72	overflow: auto;
 73	float: left;
 74	margin: 1em 1em 0 0;
 75	border: 5px solid silver;
 76	background: gray;
 77	font-family: Helvetica;
 78}
 79
 80.test-wrap h3 {
 81	margin: 1em 0 0 1em;
 82	color: white;
 83	font-size: 1em;
 84	font-weight: normal;
 85}
 86</style>
 87
 88<script type="text/javascript">
 89var testQueue = [],
 90	renderTests = [
 91		'001_basic',
 92		'002_brushes',
 93		'003_script_tag',
 94		'004_url_parsing',
 95		'005_no_gutter',
 96		'006_pad_line_numbers',
 97		'007_collapse',
 98		'008_first_line',
 99		'009_class_name',
100		'010_highlight',
101		'011_smart_tabs',
102		'012_server_side',
103		'013_html_script',
104		'014_legacy'
105	],
106	interactionTests = [
107		'007_collapse_interaction'
108	]
109	;
110
111function queue(func)
112{
113	testQueue.push(func);
114};
115
116function ok_sh($sh)
117{
118	ok($sh.length > 0, 'Element present');
119	ok($sh.is('div'), 'Element is DIV');
120	ok($sh.find('> div').is('.syntaxhighlighter'), 'Nested DIV is a .syntaxhighlighter');
121};
122
123function ok_toolbar($sh)
124{
125	var $target = $sh.find('> .syntaxhighlighter > .toolbar');
126	ok($target.length > 0, 'Toolbar present');
127	ok($target.is(':visible'), 'Toolbar visible');
128};
129
130function ok_caption($sh, value)
131{
132	var $target = $sh.find('> .syntaxhighlighter > table > caption');
133	ok($target.length > 0, 'Caption present');
134	ok($target.is(':visible'), 'Caption visible');
135	
136	if (value != null)
137		equals($target.text(), value, 'Caption text');
138};
139
140function ok_gutter($sh)
141{
142	var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .gutter');
143	ok($target.length > 0, 'Gutter present');
144	ok($target.is(':visible'), 'Gutter visible');
145};
146
147function ok_code($sh)
148{
149	var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .code');
150	ok($target.length > 0, 'Code present');
151	ok($target.is(':visible'), 'Code visible');
152};
153
154function ok_collapsed($sh)
155{
156	ok($sh.find('> .syntaxhighlighter.collapsed').length == 1, '.collapsed present');
157};
158
159function loadTests(tests, addHtml)
160{
161	var html = '';
162	
163	$.each(tests, function(index)
164	{
165		var name = this;
166		
167		if (addHtml != false)
168		{
169			html += '<div class="test-wrap">\n'
170			html += '<h3>' + name + '</h3>\n';
171		}
172		
173		$.ajax({
174			url: 'cases/' + name + '.html',
175			type: 'GET',
176			dataType: 'text',
177			async: false,
178			success: function(data)
179			{
180				html += data;
181			},
182			error: function()
183			{
184				html += '<p>Not found...</p>';
185			}
186		});
187		
188		if (addHtml != false)
189		{
190			html += '</div>\n';
191		
192			if (index % 2 != 0)
193				html += '<div style="clear:both"></div>\n';
194		}
195	});
196
197	//
198	// Looks like .html() is producing different results when it comes to
199	// content that has <script /> which type is NOT "text/javascript".
200	// $('#output').html(html);
201	//
202	$('#output')[0].innerHTML += html;
203		
204	//
205	// However, if HTML assigned to to .innerHTML container <script/> tags,
206	// they are not executed, so we have to manually walk all of them and
207	// eval() the content.
208	//
209	$('#output script[type="text/javascript"][class!="executed"]').each(function()
210	{
211		eval($(this).text() || $(this).html());
212		$(this).addClass('executed')
213	});
214};
215
216function runTestQueue()
217{
218	
219	$.each(testQueue, function()
220	{
221		this.apply(null);
222	});
223	
224	testQueue = [];
225};
226
227$(document).ready(function()
228{
229	loadTests(renderTests);
230	SyntaxHighlighter.highlight();
231	runTestQueue();
232	
233	$('#interaction').click(function()
234	{
235		loadTests(interactionTests, false /* addHtml */);
236		runTestQueue();
237	});
238});
239</script>
240
241</body>
242</html>