You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

96 lines
2.6 KiB

'use strict';
/*jshint asi: true, browser: true */
var test = require('tape');
+function setup() {
function createEditorElem(lang) {
var elem = document.createElement('div')
elem.setAttribute('id', lang + '-editor')
elem.setAttribute('class', 'editor')
document.body.appendChild(elem)
}
function loadStyle() {
var css = require('./stringified/style');
var head = document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
}
['javascript', 'coffee', 'json', 'lua', 'xml'].forEach(createEditorElem);
loadStyle();
require('./fixtures/javascript-editor');
require('./fixtures/coffee-editor');
require('./fixtures/json-editor');
require('./fixtures/lua-editor');
require('./fixtures/xml-editor');
}()
test('error annotations provided by inlined worker', function (t) {
function getError(lang) {
var editor = document.getElementById(lang + '-editor');
var errors = editor.getElementsByClassName('ace_error')
return { length: errors.length, line: errors[0] && errors[0].textContent }
}
// give editors time to initialize and workers to do the annotations
var jsCount = 0
, coffeeCount = 0
, jsonCount = 0
, luaCount = 0
, xmlCount = 0;
var max = 10; // give it a max of 10 seconds
+function javascript() {
var err = getError('javascript')
if (!err.length && ++jsCount < max) return setTimeout(javascript, 1000)
t.equal(err.length, 1, 'javascript editor shows one error')
t.equal(err.line, '5', 'on line 5')
}()
+function coffee() {
var err = getError('coffee')
if (!err.length && ++coffeeCount < max) return setTimeout(coffee, 1000)
t.equal(err.length, 1, 'coffee editor shows one error')
t.equal(err.line, '5', 'on line 5')
}()
+function json() {
var err = getError('json')
if (!err.length && ++jsonCount < max) return setTimeout(json, 1000)
t.equal(err.length, 1, 'json editor shows one error')
t.equal(err.line, '5', 'on line 5')
}()
+function lua() {
var err = getError('lua')
if (!err.length && ++luaCount < max) return setTimeout(lua, 1000)
t.equal(err.length, 1, 'lua editor shows one error')
t.equal(err.line, '6', 'on line 6')
t.end()
}()
+function xml() {
var err = getError('xml')
if (!err.length && ++xmlCount < max) return setTimeout(xml, 1000)
t.equal(err.length, 1, 'xml editor shows one error')
t.equal(err.line, '5', 'on line 5')
}()
})