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