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.navigate": "#64156c7f4a",
"c9.ide.newresource": "#f1f0624768", "c9.ide.newresource": "#f1f0624768",
"c9.ide.openfiles": "#28a4f5af16", "c9.ide.openfiles": "#28a4f5af16",
"c9.ide.preview": "#66fb343b5d", "c9.ide.preview": "#0bd8dd6e8c",
"c9.ide.preview.browser": "#ac18aaf31d", "c9.ide.preview.browser": "#ac18aaf31d",
"c9.ide.preview.markdown": "#ab8d30ad9f", "c9.ide.preview.markdown": "#ab8d30ad9f",
"c9.ide.pubsub": "#b83cf15ade", "c9.ide.pubsub": "#b83cf15ade",

Wyświetl plik

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