gecko-dev/toolkit/components/feeds/test/head.js

81 строка
2.0 KiB
JavaScript

"use strict";
let Cc = Components.classes;
let Ci = Components.interfaces;
let Cu = Components.utils;
let Cr = Components.results;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/NetUtil.jsm");
function readTestData(testFile) {
var testcase = {};
// Got a feed file, now we need to parse out the Description and Expect headers.
var istream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);
try {
istream.init(testFile, 0x01, parseInt("0444", 8), 0);
istream.QueryInterface(Ci.nsILineInputStream);
var hasmore = false;
do {
var line = {};
hasmore = istream.readLine(line);
if (line.value.indexOf('Description:') > -1) {
testcase.desc = line.value.substring(line.value.indexOf(':')+1).trim();
}
if (line.value.indexOf('Expect:') > -1) {
testcase.expect = line.value.substring(line.value.indexOf(':')+1).trim();
}
if (line.value.indexOf('Base:') > -1) {
testcase.base = NetUtil.newURI(line.value.substring(line.value.indexOf(':')+1).trim());
}
if (testcase.expect && testcase.desc) {
testcase.path = 'xml/' + testFile.parent.leafName + '/' + testFile.leafName;
testcase.file = testFile;
break;
}
} while (hasmore);
} catch(e) {
Assert.ok(false, "FAILED! Error reading testFile case in file " + testFile.leafName + " ---- " + e);
} finally {
istream.close();
}
return testcase;
}
function iterateDir(dir, recurse, callback) {
do_print("Iterate " + dir.leafName);
let entries = dir.directoryEntries;
// Loop over everything in this dir. If its a dir
while (entries.hasMoreElements()) {
let entry = entries.getNext();
entry.QueryInterface(Ci.nsILocalFile);
if (entry.isDirectory()) {
if (recurse) {
iterateDir(entry, recurse, callback);
}
} else {
callback(entry);
}
}
}
function isIID(a, iid){
try {
a.QueryInterface(iid);
return true;
} catch(e) { }
return false;
}