~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/app/javascript/testing/testrunner.js

[r=benji][bug=809786] Refactor some DistroSeries JavaScript and add a
        declarative approach for running YUI tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
};
40
40
 
41
41
}, "0.1", {"requires": ["oop", "test", "console"]});
 
42
 
 
43
 
 
44
/**
 
45
 * Merely loading this script into a page will cause it to look for a
 
46
 * list of suites in the document using the selector ul#suites>li. If
 
47
 * found, the text within each node is considered to be a test module
 
48
 * name. This is then loaded, and its "suite" property passed to
 
49
 * Runner.run().
 
50
 *
 
51
 * Here's how to declare the suites to run:
 
52
 *
 
53
 *   <ul id="suites">
 
54
 *     <li>lp.registry.distroseries.initseries.test</li>
 
55
 *   </ul>
 
56
 *
 
57
 */
 
58
YUI().use("event", function(Y) {
 
59
    Y.on("domready", function() {
 
60
        var suites = Y.all("ul#suites > li");
 
61
        Y.each(suites, function(suite_node) {
 
62
            var suite_name = suite_node.get("text");
 
63
            Y.use("lp.testing.runner", suite_name, function(y) {
 
64
                var module = y, parts = suite_name.split(".");
 
65
                while (parts.length > 0) { module = module[parts.shift()]; }
 
66
                y.lp.testing.Runner.run(module.suite);
 
67
            });
 
68
        });
 
69
    });
 
70
});