diff options
| author | Alon Levy <alon@pobox.com> | 2014-10-26 12:23:34 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2014-10-26 12:23:34 +0200 |
| commit | 9e7c7ddc7de091d404e83efbab113f35ebde2b77 (patch) | |
| tree | 145a055b05456668e4b7d59168a0bf15a7cfcf13 | |
| parent | 51445c0818bfd07c0c838ee656db6751d6953c95 (diff) | |
oops, forgot tests/base.js
| -rw-r--r-- | tests/base.js | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/base.js b/tests/base.js new file mode 100644 index 00000000..910bd97e --- /dev/null +++ b/tests/base.js @@ -0,0 +1,87 @@ +var fs = require('fs'), + jsdom = require('jsdom'), + addScript = require('./test_util').addScript; + +function dump_nodes(window) { + var nodes = window.force.nodes(); + for(var i = 0 ; i < nodes.length; ++i) { + console.log('nodes[' + nodes[i].id + '/' + nodes[i].type + '].[xy] = (' + nodes[i].x + ',' + nodes[i].y + ')'); + } +} + +function dump_graphviz(force) { + var i; + var nodes = force.nodes(); + var links = force.links(); + var q = function(s) { + if (s.search(' ') == -1) { + return s; + } + return '"' + s + '"'; + }; + + console.log('digraph {'); + for (i = 0 ; i < nodes.length; ++i) { + if (nodes[i].type == 'bubble') { + console.log(' BUBBLE;'); + } else { + console.log(' ' + q(nodes[i].name) + ';'); + } + } + for (i = 0 ; i < links.length; ++i) { + var link = links[i]; + console.log(' ' + q(link.source.name) + ' -> ' + q(link.target.name) + ';'); + } + console.log('}'); +} + +function run_tests(settings) { + var document = jsdom.jsdom('<html><body></body></html>'); + var window = document.parentWindow; + + window.console.log = console.log; // slightly evil + window.process = process; // more evil + window.is_node = true; + if (settings.created) { + settings.created(undefined, window); + } + debugger + addScript(window, '../scripts/external/require.js') + .load_next('../scripts/app.js') + .done(function () { + console.log('test harness: starting script loading with requirejs'); + window.require.config(window.rhizi_require_config); + window.requirejs(['main'], function(main) { + console.log('test harness: main loaded'); + main.main(); + if (settings.done) { + settings.done(undefined, window); + } + process.quit(); + }); + }); + //window.setInterval(function() { console.log('.'); return true; }, 100); +} + +function reset(window) { + window.require('rhizicore').graph.clear(); +} + +function nodes(window) { + return window.require('rhizicore').force.nodes().map(function (n) { + return n.name; + }); +} + +function links(window) { + return window.require('rhizicore').force.links().map(function (l) { + debugger; + return [l.source.name, l.target.name, l.name]; + }); +} + +exports.run_tests = run_tests; +exports.dump_graphviz = dump_graphviz; +exports.reset = reset; +exports.links = links; +exports.nodes = nodes; |
