gecko-dev/layout/tools/tests/regression_tests.js

1 строка
15 KiB
JavaScript
Исходник Обычный вид История

const nsIFilePicker = Components.interfaces.nsIFilePicker; const nsIFrameDebugObject = Components.interfaces.nsIFrameDebugObject; const kTestTypeBaseline = 1; const kTestTypeVerify = 2; const kTestTypeVerifyAndCompare = 3; const kTestTypeCompare = 4; const kTestSourceSingleFile = 1; const kTestSourceDirList = 2; var gTestcaseDirArray = new Array; // array of nsILocalFiles var gBaselineOutputDir; // nsIFile var gVerifyOutputDir; // nsIFile var gBaselineFileExtension; // string var gVerifyFileExtension; // string var gTestType; // baseline, verify, compare etc. var gTestWindow; var gTestURLs = new Array; var gTestURLsIndex; function DoOnload() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); // clear any values that the form manager may have unhelpfully filled in document.testForm.singleTestFileInput.value = ""; document.testForm.baselineOutputDir.value = ""; document.testForm.verifyOutputDir.value = ""; InitFormFromPrefs(); UpdateRunTestsButton(); } function InitFormFromPrefs() { // load prefs try { var testURL = GetStringPref("nglayout.debug.testcaseURL"); document.testForm.singleTestFileInput.value = testURL; var baselineDirURL = GetStringPref("nglayout.debug.baselineDirURL"); gBaselineOutputDir = GetFileFromURISpec(baselineDirURL); document.testForm.baselineOutputDir.value = gBaselineOutputDir.path; var verifyDirURL = GetStringPref("nglayout.debug.verifyDirURL"); gVerifyOutputDir = GetFileFromURISpec(verifyDirURL); document.testForm.verifyOutputDir.value = gVerifyOutputDir.path; var dirIndex = 0; while (true) // we'll throw when we reach a nonexistent pref { var curDir = GetStringPref("nglayout.debug.testcaseDir" + dirIndex); var dirFileSpec = GetFileFromURISpec(curDir); gTestcaseDirArray.push(dirFileSpec); dirIndex ++; } } catch(e) { } RebuildTestDirsSelect(); } function SaveFormToPrefs() { SaveStringPref("nglayout.debug.testcaseURL", document.testForm.singleTestFileInput.value); // save prefs if (gBaselineOutputDir) { var baselineDirURL = GetURISpecFromFile(gBaselineOutputDir); SaveStringPref("nglayout.debug.baselineDirURL", baselineDirURL); } if (gVerifyOutputDir) { var verifyDirURL = GetURISpecFromFile(gVerifyOutputDir); SaveStringPref("nglayout.debug.verifyDirURL", verifyDirURL); } var dirIndex; for (dirIndex = 0; dirIndex < gTestcaseDirArray.length; dirIndex ++) { var curURL = GetURISpecFromFile(gTestcaseDirArray[dirIndex]); SaveStringPref("nglayout.debug.testcaseDir" + dirIndex, curURL); } try { // clear prefs for higher indices until we throw while (1) { ClearPref("nglayout.debug.testcaseDir" + dirIndex); } } catch(e) { } } function GetURISpecFromFile(inFile) { var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var fileHandler = ioService.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler); return fileHandler.getURLSpecFromFile(inFile); } function GetFileFromURISpec(uriSpec) { var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var fileHandler = ioService.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler); return fileHandler.getFileFromURLSpec(uriSpec); } function SaveStringPref(inPrefName, inPrefValue) { var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); prefs.setCharPref(inPrefName, inPrefValue); } function GetStringPref(inPrefName) { var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); return prefs.getCharPref(inPrefName); } function ClearPref(inPrefName) { var prefs = Components.classes["@mozilla.org/preference