support reload of tests

pull/85/head
Ruben Daniels 2015-04-21 01:27:25 +00:00
rodzic c36c421003
commit 2a7d0887bb
2 zmienionych plików z 31 dodań i 4 usunięć

Wyświetl plik

@ -88,7 +88,7 @@
"c9.ide.navigate": "#64156c7f4a",
"c9.ide.newresource": "#f1f0624768",
"c9.ide.openfiles": "#28a4f5af16",
"c9.ide.preview": "#66fb343b5d",
"c9.ide.preview": "#0bd8dd6e8c",
"c9.ide.preview.browser": "#ac18aaf31d",
"c9.ide.preview.markdown": "#ab8d30ad9f",
"c9.ide.pubsub": "#b83cf15ade",

Wyświetl plik

@ -1,7 +1,8 @@
/* global requirejs */
define(function(require, exports, module) {
main.consumes = [
"Plugin", "plugin.debug", "c9", "menus", "ui", "ext", "preview"
"Plugin", "plugin.debug", "c9", "menus", "ui", "ext", "preview",
"preview.browser"
];
main.provides = ["plugin.test"];
return main;
@ -14,6 +15,7 @@ define(function(require, exports, module) {
var ext = imports.ext;
var ui = imports.ui;
var debug = imports["plugin.debug"];
var browser = imports["preview.browser"];
/***** Initialization *****/
@ -51,6 +53,29 @@ define(function(require, exports, module) {
ext.on("unregister", function(){
// TODO
}, plugin);
var reloading;
function loadPreview(url, session){
var idx = url.indexOf(options.staticPrefix);
if (!reloading && idx > -1) {
reloading = true;
var name = session.doc.meta.pluginName;
run(name, function(err){
if (err) console.error(err);
});
reloading = false;
}
}
// browser.on("navigate", function(e){
// if (!e.session.doc.meta.plugName)
// debugger;
// });
browser.on("reload", function(e){
loadPreview(e.session.path, e.session);
});
}
/***** Methods *****/
@ -62,7 +87,7 @@ define(function(require, exports, module) {
emit("ready");
}
function loadIframe(callback){
function loadIframe(pluginName, callback){
var url = options.staticPrefix + "/test.html";
if (url.indexOf("http") !== 0)
url = location.origin + url;
@ -82,6 +107,8 @@ define(function(require, exports, module) {
debugger; // e.??
handle(new Error());
}
tab.document.meta.pluginName = pluginName;
}
function loadTestSuite(name, callback){
@ -98,7 +125,7 @@ define(function(require, exports, module) {
function run(pluginName, callback){
// Load test runner
loadIframe(function(err){
loadIframe(pluginName, function(err){
if (err) return callback(err);
// Wait until iframe is loaded