|
3 | 3 | // |
4 | 4 | casper.notebook_test(function () { |
5 | 5 | "use strict"; |
6 | | - // Test JavaScript models. |
7 | | - var output = this.evaluate(function () { |
8 | | - IPython.notebook.to_markdown(); |
9 | | - var cell = IPython.notebook.get_selected_cell(); |
10 | | - cell.set_text('# Foo'); |
11 | | - cell.render(); |
12 | | - return cell.get_rendered(); |
13 | | - }); |
14 | | - this.test.assertEquals(output.trim(), '<h1 id=\"Foo\">Foo<a class=\"anchor-link\" href=\"#Foo\">¶</a></h1>', 'Markdown JS API works.'); |
15 | | - |
16 | | - // Test menubar entries. |
17 | | - output = this.evaluate(function () { |
18 | | - $('#to_code').mouseenter().click(); |
19 | | - $('#to_markdown').mouseenter().click(); |
20 | | - var cell = IPython.notebook.get_selected_cell(); |
21 | | - cell.set_text('**Bar**'); |
22 | | - $('#run_cell').mouseenter().click(); |
23 | | - return cell.get_rendered(); |
24 | | - }); |
25 | | - this.test.assertEquals(output.trim(), '<p><strong>Bar</strong></p>', 'Markdown menubar items work.'); |
26 | | - |
27 | | - // Test toolbar buttons. |
28 | | - output = this.evaluate(function () { |
29 | | - $('#cell_type').val('code').change(); |
30 | | - $('#cell_type').val('markdown').change(); |
31 | | - var cell = IPython.notebook.get_selected_cell(); |
32 | | - cell.set_text('*Baz*'); |
33 | | - $("button[data-jupyter-action='jupyter-notebook:run-cell-and-select-next']")[0].click(); |
34 | | - return cell.get_rendered(); |
35 | | - }); |
36 | | - this.test.assertEquals(output.trim(), '<p><em>Baz</em></p>', 'Markdown toolbar items work.'); |
37 | | - |
38 | | - // Test markdown headings |
39 | 6 |
|
40 | 7 | var text = 'multi\nline'; |
41 | | - |
42 | 8 | this.evaluate(function (text) { |
43 | 9 | var cell = IPython.notebook.insert_cell_at_index('markdown', 0); |
44 | 10 | cell.set_text(text); |
45 | 11 | }, {text: text}); |
46 | 12 |
|
47 | | - var set_level = function (level) { |
48 | | - return casper.evaluate(function (level) { |
49 | | - var cell = IPython.notebook.get_cell(0); |
50 | | - cell.set_heading_level(level); |
51 | | - return cell.get_text(); |
52 | | - }, {level: level}); |
53 | | - }; |
54 | | - |
55 | | - var level_text; |
56 | | - var levels = [ 1, 2, 3, 4, 5, 6, 2, 1 ]; |
57 | | - for (var idx=0; idx < levels.length; idx++) { |
58 | | - var level = levels[idx]; |
59 | | - level_text = set_level(level); |
60 | | - var hashes = new Array(level + 1).join('#'); |
61 | | - this.test.assertEquals(level_text, hashes + ' ' + text, 'markdown set_heading_level ' + level); |
62 | | - } |
63 | | - |
64 | 13 | // Test markdown code blocks |
65 | | - |
66 | | - |
67 | | - function md_render_test (codeblock, result, message) { |
68 | | - // make a cell and trigger render |
69 | | - casper.thenEvaluate(function (text) { |
70 | | - var cell = Jupyter.notebook.insert_cell_at_bottom('markdown'); |
71 | | - cell.set_text(text); |
72 | | - // signal window._rendered when cell render completes |
73 | | - window._rendered = null; |
74 | | - cell.events.one("rendered.MarkdownCell", function (event, data) { |
75 | | - window._rendered = data.cell.get_rendered(); |
76 | | - }); |
77 | | - cell.render(); |
78 | | - }, {text: codeblock}); |
79 | | - // wait for render to complete |
80 | | - casper.waitFor(function () { |
81 | | - return casper.evaluate(function () { |
82 | | - return window._rendered; |
83 | | - }); |
84 | | - }); |
85 | | - // test after waiting |
86 | | - casper.then(function () { |
87 | | - // get rendered result |
88 | | - var output = casper.evaluate(function () { |
89 | | - var rendered = window._rendered; |
90 | | - delete window._rendered; |
91 | | - return rendered; |
92 | | - }); |
93 | | - // perform test |
94 | | - this.test.assertEquals(output.trim(), result, message); |
95 | | - }); |
96 | | - }; |
97 | | - |
98 | | - var codeblock = '```\nx = 1\n```' |
99 | | - var result = '<pre><code>x = 1</code></pre>' |
100 | | - md_render_test(codeblock, result, 'Markdown code block no language'); |
101 | | - |
102 | | - codeblock = '```aaaa\nx = 1\n```' |
103 | | - result = '<pre><code class="cm-s-ipython language-aaaa">x = 1</code></pre>' |
104 | | - md_render_test(codeblock, result, 'Markdown code block unknown language'); |
105 | | - |
106 | | - codeblock = '```python\ns = "$"\nt = "$"\n```' |
107 | | - result = '<pre><code class="cm-s-ipython language-python">' + |
108 | | - '<span class="cm-variable">s</span> <span class="cm-operator">=</span> <span class="cm-string">"$"</span>\n' + |
109 | | - '<span class="cm-variable">t</span> <span class="cm-operator">=</span> <span class="cm-string">"$"</span></code></pre>'; |
110 | | - md_render_test(codeblock, result, 'Markdown code block python'); |
111 | | - |
112 | 14 | function mathjax_render_test(input_string, result, message){ |
113 | 15 | casper.thenEvaluate(function (text){ |
114 | 16 | window._test_result = null; |
|
0 commit comments