|
1 | | - |
2 | 1 | var tape = require('tape'); |
3 | 2 | var mjAPI = require("../lib/main.js"); |
4 | 3 | var jsdom = require('jsdom').jsdom; |
5 | 4 |
|
6 | 5 | tape('Generate dummy speechText', function(t) { |
7 | | - t.plan(6); |
| 6 | + t.plan(9); |
8 | 7 | mjAPI.start(); |
9 | | - var input1 = 'x'; |
10 | | - var input2 = '<math display="block" alttext="hello"><mi>x</mi></math>'; |
11 | | - var expected = 'hello'; |
12 | | - // basic text |
| 8 | + var input1 = 'source'; |
| 9 | + var input2 = '<math display="block" alttext="alttext"><mi>x</mi></math>'; |
| 10 | + var input3 = '<math display="block"><mi>x</mi></math>'; |
| 11 | + var expected1 = 'source'; |
| 12 | + var expected2 = 'alttext'; |
| 13 | + var expected3 = 'Equation'; |
| 14 | + var desc1 = 'source'; |
| 15 | + var desc2 = 'original MathML alttext'; |
| 16 | + var desc3 = 'default dummy value'; |
| 17 | + |
| 18 | + mjSpeechTest = function(data, expected, desc) { |
| 19 | + var document = jsdom(data.html).defaultView.document; |
| 20 | + var element = document.querySelector('.MJXc-display'); |
| 21 | + var actual = element.getAttribute('aria-label'); |
| 22 | + t.equal(actual, expected, 'HTML output contains speechText from ' + desc); |
| 23 | + document = jsdom(data.mml).defaultView.document; |
| 24 | + element = document.querySelector('math'); |
| 25 | + actual = element.getAttribute('alttext'); |
| 26 | + t.equal(actual, expected, 'MathML output contains speechText from ' + desc); |
| 27 | + document = jsdom(data.svg).defaultView.document; |
| 28 | + var desc = document.querySelector('desc'); |
| 29 | + t.equal(actual, desc.innerHTML, |
| 30 | + 'SVG output contains speechText from ' + desc); |
| 31 | + }; |
| 32 | + |
| 33 | + // TeX source |
13 | 34 | mjAPI.typeset({ |
14 | 35 | math: input1, |
15 | 36 | format: "TeX", |
16 | 37 | html: true, |
17 | 38 | svg: true, |
18 | 39 | mml: true |
19 | | - }, function(data) { |
20 | | - var document = jsdom(data.html).defaultView.document; |
21 | | - var element = document.querySelector('.MJXc-display'); |
22 | | - var result = element.getAttribute('aria-label'); |
23 | | - t.equal(result, input1, 'HTML output contains dummy speechText'); |
24 | | - var document = jsdom(data.mml).defaultView.document; |
25 | | - var element = document.querySelector('math'); |
26 | | - var result = element.getAttribute('alttext'); |
27 | | - t.equal(result, input1, 'MathML output contains dummy speechText'); |
28 | | - var document = jsdom(data.svg).defaultView.document; |
29 | | - var desc = document.querySelector('desc'); |
30 | | - t.equal(result, desc.innerHTML, 'SVG output contains dummy speechText'); |
31 | | - }); |
32 | | - |
| 40 | + }, function(data) {mjSpeechTest(data, expected1, desc1)}); |
| 41 | + // MathML alttext |
33 | 42 | mjAPI.typeset({ |
34 | 43 | math: input2, |
35 | 44 | format: "MathML", |
36 | 45 | html: true, |
37 | 46 | svg: true, |
38 | 47 | mml: true |
39 | | - }, function(data) { |
40 | | - var document = jsdom(data.html).defaultView.document; |
41 | | - var element = document.querySelector('.MJXc-display'); |
42 | | - var result = element.getAttribute('aria-label'); |
43 | | - t.equal(result, expected, 'HTML output from MathML contains original speechText'); |
44 | | - var document = jsdom(data.mml).defaultView.document; |
45 | | - var element = document.querySelector('math'); |
46 | | - var result = element.getAttribute('alttext'); |
47 | | - t.equal(result, expected, 'MathML output from MathML contains original dummy speechText'); |
48 | | - var document = jsdom(data.svg).defaultView.document; |
49 | | - var desc = document.querySelector('desc'); |
50 | | - t.equal(expected, desc.innerHTML, 'SVG output from MathML contains original dummy speechText'); |
51 | | - }); |
| 48 | + }, function(data) {mjSpeechTest(data, expected2, desc2)}); |
| 49 | + // MathML without alttext |
| 50 | + mjAPI.typeset({ |
| 51 | + math: input3, |
| 52 | + format: "MathML", |
| 53 | + html: true, |
| 54 | + svg: true, |
| 55 | + mml: true |
| 56 | + }, function(data) {mjSpeechTest(data, expected3, desc3)}); |
52 | 57 | }); |
0 commit comments