forked from c9/c9.ide.language.javascript
/
outline_test.js
76 lines (65 loc) · 2.91 KB
/
outline_test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*global describe it before*/
"use client";
if (typeof define === "undefined") {
require("amd-loader");
require("../../test/setup_paths");
}
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()');
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();
});