c9-core/plugins/c9.ide.language.javascript/outline_test.js

81 wiersze
3.1 KiB
JavaScript

/*global describe it before*/
"use client";
if (typeof define === "undefined") {
require("amd-loader");
require("../../test/setup_paths");
require("c9/inline-mocha")(module);
}
function outlineSync(handler, document, node) {
var result;
handler.outline(document, node, function(o) {
result = o.items;
});
return result;
}
define(function(require, exports, module) {
var handler = require("./outline");
var parser = require("treehugger/js/parse");
var assert = require("ace/test/assertions");
var Document = require("ace/document").Document;
//var microtime = require("microtime");
describe("Outline", function() {
it("test basic outline", function(done) {
var testfile = "" + require('text!./test/test1.js');
var node = parser.parse(testfile);
var outline = outlineSync(handler, new Document(testfile), node);
//console.log(""+node);
//console.log(JSON.stringify(outline, null, 2));
assert.equal(outline[0].name, 'simpleFunction()');
assert.equal(outline[1].name, 'simpleFunctionNested(a, b)');
assert.equal(outline[1].items[0].name, 'nested(c)');
assert.equal(outline[2].name, 'someFunction(a, b)');
assert.equal(outline[3].name, 'someFunction.bla()');
assert.equal(outline[4].name, 'SomeClass');
assert.equal(outline[4].items[0].name, 'method(x)');
assert.equal(outline.length, 5);
done();
});
it("!test jquery", function(done) {
// we don't have jquery now, so let's test something else
// var now = microtime.now();
// var testfile = "" + require('text!jquery.js');
// var node = parser.parse(testfile);
// console.log("Parsing time: " + (microtime.now() - now)/1000 + "ms");
// var now = microtime.now();
// var outline = outlineSync(handler, new Document(testfile), node);
// console.log("Outline time: " + (microtime.now() - now)/1000 + "ms");
done();
});
it("test complicated outline", function(done) {
var testfile = "" + require('text!./test/test2.js');
var node = parser.parse(testfile);
console.log(Document);
var outline = outlineSync(handler, new Document(testfile), node);
//console.log(""+node);
//console.log(JSON.stringify(outline, null, 2));
assert.equal(outline[0].name, 'simpleFunction()');
assert.equal(outline[1].name, 'simpleFunctionNested(a, b)');
assert.equal(outline[1].items[0].name, 'nested(c)');
assert.equal(outline[2].name, 'someFunction(a, b)');
assert.equal(outline[3].name, 'someFunction.bla()');
assert.equal(outline[4].name, 'b[x]()');
assert.equal(outline[7].items.length, 1);
assert.equal(outline[3].items[0].items.length, 3);
assert.equal(outline.length, 8);
done();
});
});
onload && onload();
});