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
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')
|
|
}()
|
|
})
|