version(180); const Cc = Components.classes; const Ci = Components.interfaces; const Cr = Components.results; const Cu = Components.utils; let ds = Cc["@mozilla.org/file/directory_service;1"] .getService(Ci.nsIProperties); let provider = { getFile: function(prop, persistent) { persistent.value = true; if (prop == "ExtPrefDL") { return [ds.get("CurProcD", Ci.nsIFile)]; } throw Cr.NS_ERROR_FAILURE; }, QueryInterface: function(iid) { if (iid.equals(Ci.nsIDirectoryServiceProvider) || iid.equals(Ci.nsISupports)) { return this; } throw Cr.NS_ERROR_NO_INTERFACE; } }; ds.QueryInterface(Ci.nsIDirectoryService).registerProvider(provider); do_bind_resource(do_get_file("modules"), "weave"); function loadInSandbox(aUri) { var sandbox = Components.utils.Sandbox(this); var request = Components. classes["@mozilla.org/xmlextras/xmlhttprequest;1"]. createInstance(); request.open("GET", aUri, false); request.send(null); Components.utils.evalInSandbox(request.responseText, sandbox); return sandbox; } function initTestLogging() { Cu.import("resource://weave/log4moz.js"); function LogStats() { this.errorsLogged = 0; } LogStats.prototype = { format: function BF_format(message) { if (message.level == Log4Moz.Level.Error) this.errorsLogged += 1; return message.loggerName + "\t" + message.levelDesc + "\t" + message.message + "\n"; } }; LogStats.prototype.__proto__ = new Log4Moz.Formatter(); var log = Log4Moz.Service.rootLogger; var logStats = new LogStats(); var appender = new Log4Moz.DumpAppender(logStats); log.level = Log4Moz.Level.Debug; appender.level = Log4Moz.Level.Debug; log.addAppender(appender); return logStats; } function makeAsyncTestRunner(generator) { Cu.import("resource://weave/async.js"); var logStats = initTestLogging(); function run_test() { do_test_pending(); let onComplete = function() { if (logStats.errorsLogged) do_throw("Errors were logged."); else do_test_finished(); }; Async.run({}, generator, onComplete); } return run_test; }