text changes to registration mail content
[namibia] / public / js / lib / syntaxhighlighter / tests / syntaxhighlighter_tests.html
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>
59 body {
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">
89 var 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
111 function queue(func)
112 {
113         testQueue.push(func);
114 };
115
116 function 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
123 function 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
130 function 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
140 function 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
147 function 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
154 function ok_collapsed($sh)
155 {
156         ok($sh.find('> .syntaxhighlighter.collapsed').length == 1, '.collapsed present');
157 };
158
159 function 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
216 function 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>