зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1405875
- Remove old regression test harness in layout/tools/tests/regression_tests.*. r=mats
MozReview-Commit-ID: JWRxF8c09TP
This commit is contained in:
Родитель
41e56eef86
Коммит
9610bb3236
|
@ -1,132 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Layout Regression Test Harness</title>
|
||||
</head>
|
||||
|
||||
<style>
|
||||
p.note
|
||||
{
|
||||
background-color: #FFFFDD;
|
||||
border: 2px solid red;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
div.indent
|
||||
{
|
||||
margin-left: 20px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#tests
|
||||
{
|
||||
border: 1px solid black;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
#results
|
||||
{
|
||||
border: 1px solid black;
|
||||
margin: 10px;
|
||||
overflow: auto;
|
||||
height: 200px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script src="regression_tests.js" type="application/javascript">
|
||||
<!--
|
||||
|
||||
//-->
|
||||
</script>
|
||||
|
||||
<body onload="DoOnload();">
|
||||
|
||||
<h1>Layout Regression Test Harness</h1>
|
||||
|
||||
<p class="note">
|
||||
The JavaScript in this file requires that you grant it XPConnect access,
|
||||
via the dialog that appears when you first load the file. Note that the code
|
||||
herein creates directories and files, so there is the possibility that it
|
||||
may do damage to the contents of your hard disk. You have been warned!
|
||||
</p>
|
||||
|
||||
<h2>Tests</h2>
|
||||
<div id="tests">
|
||||
<form name="testForm">
|
||||
<div class="indent">
|
||||
<input type="radio" name="testType" id="singleFileRadio" checked="true" onclick="UpdateRunTestsButton()"></input><label for="singleFileRadio">Single testcase</label>
|
||||
<div class="indent">
|
||||
URL: <input id="singleTestFileInput" name="singleTestFileInput" type="text" size="80" oninput="UpdateRunTestsButton()"></input>
|
||||
<input type="button" onclick="ChooseTestcaseFile();" value="Choose File...">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="indent">
|
||||
<input type="radio" name="testType" id="dirsRadio" onclick="UpdateRunTestsButton()"></input><label for="dirsRadio">Local Directories</label>
|
||||
<div class="indent">
|
||||
<select id="testDirsSelect" size="5" style="width: 200pt">
|
||||
<option>None selected</option>
|
||||
</select><br>
|
||||
<input type="button" value="Add..." onclick="AppendTestcaseDir();">
|
||||
<input type="button" value="Remove" onclick="RemoveTestcaseDir();">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="indent">
|
||||
<hr>
|
||||
<table cellpadding="5px">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><strong>Do what</strong></td>
|
||||
<td><strong>Output file locations</strong></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td>
|
||||
<div><input id="baselineRadio" type="radio" name="doWhat" onclick="UpdateRunTestsButton()" checked="true"></input><label for="baselineRadio">Baseline</label></div>
|
||||
<div><input id="verifyRadio" type="radio" name="doWhat" onclick="UpdateRunTestsButton()"></input><label for="verifyRadio">Verify</label></div>
|
||||
<div><input id="verifCompRadio" type="radio" name="doWhat" onclick="UpdateRunTestsButton()"></input><label for="verifCompRadio">Verify and Compare</label></div>
|
||||
<div><input id="compRadio" type="radio" name="doWhat" onclick="UpdateRunTestsButton()"></input><label for="compRadio">Compare</label></div>
|
||||
</td>
|
||||
<td valign="top">
|
||||
<table cellpadding="4px">
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>File extensions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Baseline:</td>
|
||||
<td><input id="baselineOutputDir" name="baselineOutputDir" type="text" size="40" disabled="true"></input>
|
||||
<input type="button" onclick="gBaselineOutputDir = ChooseOutputDirectory('baselineOutputDir'); UpdateRunTestsButton();" value="Choose..."></td>
|
||||
<td><input type="text" size="6" name="baselineFileExtension" value=".bas"></input> (like ".bas")</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Verify:</td>
|
||||
<td><input id="verifyOutputDir" name="verifyOutputDir" type="text" size="40" disabled="true"></input>
|
||||
<input type="button" onclick="gVerifyOutputDir = ChooseOutputDirectory('verifyOutputDir'); UpdateRunTestsButton();" value="Choose..."></td>
|
||||
<td><input type="text" size="6" name="verifyFileExtension" value=".ver"></input>(like ".ver")</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="indent">
|
||||
<hr>
|
||||
<input type="Button" name="runTests" value="Run the Tests!" onclick="RunTests();">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<h2>Results</h2>
|
||||
<div id="results">
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,553 +0,0 @@
|
|||
|
||||
|
||||
const nsIFilePicker = Components.interfaces.nsIFilePicker;
|
||||
const nsILayoutRegressionTester = Components.interfaces.nsILayoutRegressionTester;
|
||||
|
||||
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/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
|
||||
prefs.clearUserPref(inPrefName);
|
||||
}
|
||||
|
||||
function WriteOutput(aText, aReplace, aColorString)
|
||||
{
|
||||
var outputDiv = document.getElementById("results");
|
||||
|
||||
if (aReplace)
|
||||
ClearOutput();
|
||||
|
||||
var childDiv = document.createElement("div");
|
||||
var textNode = document.createTextNode(aText);
|
||||
childDiv.appendChild(textNode);
|
||||
childDiv.setAttribute("style", "color: " + aColorString + ";");
|
||||
outputDiv.appendChild(childDiv);
|
||||
}
|
||||
|
||||
function ClearOutput()
|
||||
{
|
||||
var outputDiv = document.getElementById("results");
|
||||
var curChild;
|
||||
while (curChild = outputDiv.firstChild)
|
||||
outputDiv.removeChild(curChild);
|
||||
}
|
||||
|
||||
// returns an nsIFile
|
||||
function PickDirectory()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
|
||||
fp.init(window, "Pick a directory", nsIFilePicker.modeGetFolder);
|
||||
var result = fp.show();
|
||||
if (result == nsIFilePicker.returnCancel)
|
||||
throw("User cancelled");
|
||||
|
||||
var chosenDir = fp.file;
|
||||
return chosenDir;
|
||||
}
|
||||
|
||||
|
||||
// returns a url string
|
||||
function PickFileURL()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
|
||||
fp.init(window, "Pick a directory", nsIFilePicker.modeOpen);
|
||||
fp.appendFilters(nsIFilePicker.filterHTML + nsIFilePicker.filterText);
|
||||
|
||||
var result = fp.show();
|
||||
if (result == nsIFilePicker.returnCancel)
|
||||
throw("User cancelled");
|
||||
|
||||
return fp.fileURL.spec;
|
||||
}
|
||||
|
||||
function RebuildTestDirsSelect()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var dirsSelect = document.getElementById("testDirsSelect");
|
||||
|
||||
// rebuild it from gTestcaseDirArray
|
||||
while (dirsSelect.length)
|
||||
dirsSelect.remove(0);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < gTestcaseDirArray.length; i ++)
|
||||
{
|
||||
var curDir = gTestcaseDirArray[i];
|
||||
|
||||
var optionElement = document.createElement("option");
|
||||
var textNode = document.createTextNode(curDir.leafName);
|
||||
|
||||
optionElement.appendChild(textNode);
|
||||
dirsSelect.add(optionElement, null);
|
||||
}
|
||||
|
||||
UpdateRunTestsButton();
|
||||
}
|
||||
|
||||
// set the 'single testcase' file
|
||||
function ChooseTestcaseFile()
|
||||
{
|
||||
var dirInput = document.getElementById("singleTestFileInput");
|
||||
dirInput.value = PickFileURL();
|
||||
|
||||
UpdateRunTestsButton();
|
||||
}
|
||||
|
||||
function AppendTestcaseDir()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var chosenDir = PickDirectory();
|
||||
// does the array already contain this dir?
|
||||
var i;
|
||||
for (i = 0; i < gTestcaseDirArray.length; i ++)
|
||||
{
|
||||
var curElement = gTestcaseDirArray[i];
|
||||
if (curElement.equals(chosenDir)) // nsIFile::Equals
|
||||
return;
|
||||
}
|
||||
|
||||
gTestcaseDirArray[gTestcaseDirArray.length] = chosenDir;
|
||||
RebuildTestDirsSelect();
|
||||
}
|
||||
|
||||
function RemoveTestcaseDir()
|
||||
{
|
||||
var dirsSelect = document.getElementById("testDirsSelect");
|
||||
if (dirsSelect.selectedIndex != -1)
|
||||
{
|
||||
gTestcaseDirArray.splice(dirsSelect.selectedIndex, 1);
|
||||
RebuildTestDirsSelect();
|
||||
}
|
||||
}
|
||||
|
||||
function InputOptionsValid()
|
||||
{
|
||||
if (document.testForm.testType[0].checked)
|
||||
{
|
||||
// need a test file
|
||||
var testcaseURL = document.testForm.singleTestFileInput.value;
|
||||
if (testcaseURL.length == 0) return false;
|
||||
}
|
||||
else if (document.testForm.testType[1].checked)
|
||||
{
|
||||
// need at least one dir
|
||||
if (gTestcaseDirArray.length == 0) return false;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function OutputOptionsValid()
|
||||
{
|
||||
var testType = GetTestType();
|
||||
|
||||
switch (testType)
|
||||
{
|
||||
case kTestTypeBaseline:
|
||||
if (!gBaselineOutputDir) return false;
|
||||
break;
|
||||
|
||||
case kTestTypeVerify:
|
||||
if (!gVerifyOutputDir) return false;
|
||||
break;
|
||||
|
||||
case kTestTypeVerifyAndCompare:
|
||||
case kTestTypeCompare:
|
||||
if (!gBaselineOutputDir || !gVerifyOutputDir) return false;
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function UpdateRunTestsButton()
|
||||
{
|
||||
var testType = GetTestType();
|
||||
var dataValid = OutputOptionsValid();
|
||||
if (testType != kTestTypeCompare)
|
||||
dataValid &= InputOptionsValid();
|
||||
document.testForm.runTests.disabled = !dataValid;
|
||||
}
|
||||
|
||||
// returns nsIFile, sets the input value
|
||||
function ChooseOutputDirectory(inputElementID)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var chosenDir = PickDirectory();
|
||||
|
||||
var inputElement = document.getElementById(inputElementID);
|
||||
inputElement.value = chosenDir.path;
|
||||
|
||||
return chosenDir;
|
||||
}
|
||||
|
||||
|
||||
function CompareFrameDumps(testFileBasename, baselineDir, baselineExt, verifyDir, verifyExt)
|
||||
{
|
||||
var debugObject = Components.classes["@mozilla.org/layout-debug/regressiontester;1"].createInstance(nsILayoutRegressionTester);
|
||||
|
||||
var baseFile = baselineDir.clone();
|
||||
baseFile.append(testFileBasename + baselineExt);
|
||||
|
||||
var verifyFile = verifyDir.clone();
|
||||
verifyFile.append(testFileBasename + verifyExt);
|
||||
|
||||
var filesDiffer = debugObject.compareFrameModels(baseFile, verifyFile, nsILayoutRegressionTester.COMPARE_FLAGS_BRIEF);
|
||||
if (filesDiffer)
|
||||
{
|
||||
WriteOutput("Test file '" + baseFile.leafName + "' failed", false, "red");
|
||||
}
|
||||
else
|
||||
{
|
||||
WriteOutput("Test file '" + baseFile.leafName + "' passed", false, "green");
|
||||
}
|
||||
}
|
||||
|
||||
function DumpFrames(testWindow, testFileName, outputDir, outputFileExtension)
|
||||
{
|
||||
var debugObject = Components.classes["@mozilla.org/layout-debug/regressiontester;1"].createInstance(nsILayoutRegressionTester);
|
||||
|
||||
var outputFile = outputDir.clone();
|
||||
outputFile.append(testFileName.replace(".html", outputFileExtension));
|
||||
|
||||
dump("Dumping frame model for " + testFileName + " to " + outputFile.leafName + "\n");
|
||||
var result = debugObject.dumpFrameModel(testWindow, outputFile, nsILayoutRegressionTester.DUMP_FLAGS_MASK_DEFAULT);
|
||||
if (result != 0)
|
||||
{
|
||||
WriteOutput("dumpFrameModel for " + testFileName + " failed", false, "orange");
|
||||
}
|
||||
}
|
||||
|
||||
function LoadTestURL(testWindow, theURL)
|
||||
{
|
||||
dump("Loading test " + theURL + "\n");
|
||||
// we use a 1/2 second delay to give time for async reflows to happen
|
||||
testWindow.onload = setTimeout("HandleTestWindowLoad(gTestWindow)", 1000);
|
||||
testWindow.location.href = theURL;
|
||||
}
|
||||
|
||||
function HandleTestWindowLoad(testWindow)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var outputDir;
|
||||
var outputFileExtension;
|
||||
var runCompare = false;
|
||||
|
||||
switch (gTestType)
|
||||
{
|
||||
case kTestTypeBaseline:
|
||||
outputDir = gBaselineOutputDir;
|
||||
outputFileExtension = gBaselineFileExtension;
|
||||
break;
|
||||
|
||||
case kTestTypeVerify:
|
||||
outputDir = gVerifyOutputDir;
|
||||
outputFileExtension = gVerifyFileExtension;
|
||||
break;
|
||||
|
||||
case kTestTypeVerifyAndCompare:
|
||||
outputDir = gVerifyOutputDir;
|
||||
outputFileExtension = gVerifyFileExtension;
|
||||
runCompare = true;
|
||||
break;
|
||||
|
||||
case kTestTypeCompare:
|
||||
dump("Should never get here");
|
||||
break;
|
||||
}
|
||||
|
||||
var loadedURL = testWindow.location.href;
|
||||
var loadedFile = loadedURL.substring(loadedURL.lastIndexOf('/') + 1);
|
||||
|
||||
DumpFrames(testWindow, loadedFile, outputDir, outputFileExtension);
|
||||
|
||||
if (runCompare)
|
||||
{
|
||||
var testFileBasename = loadedFile.replace(".html", "");
|
||||
CompareFrameDumps(testFileBasename, gBaselineOutputDir, gBaselineFileExtension, gVerifyOutputDir, gVerifyFileExtension);
|
||||
}
|
||||
|
||||
// now fire of the next one, if we have one
|
||||
var nextURL = gTestURLs[gTestURLsIndex++];
|
||||
if (nextURL)
|
||||
LoadTestURL(testWindow, nextURL);
|
||||
else
|
||||
testWindow.close();
|
||||
}
|
||||
|
||||
|
||||
function AddDirectoryEntriesToTestList(inDirFile, inRequiredExtension)
|
||||
{
|
||||
var enumerator = inDirFile.directoryEntries;
|
||||
|
||||
while (enumerator.hasMoreElements())
|
||||
{
|
||||
var curFile = enumerator.getNext();
|
||||
curFile = curFile.QueryInterface(Components.interfaces.nsIFile);
|
||||
|
||||
var leafName = curFile.leafName;
|
||||
if (leafName.indexOf(inRequiredExtension) != -1)
|
||||
{
|
||||
var fileURI = GetURISpecFromFile(curFile);
|
||||
gTestURLs.push(fileURI);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// returns an array of filenames
|
||||
function DirectoryEntriesToArray(inDirFile, inRequiredExtension)
|
||||
{
|
||||
var fileArray = new Array;
|
||||
|
||||
var enumerator = inDirFile.directoryEntries;
|
||||
while (enumerator.hasMoreElements())
|
||||
{
|
||||
var curFile = enumerator.getNext();
|
||||
curFile = curFile.QueryInterface(Components.interfaces.nsIFile);
|
||||
var leafName = curFile.leafName;
|
||||
if (leafName.indexOf(inRequiredExtension) != -1)
|
||||
{
|
||||
fileArray.push(leafName);
|
||||
}
|
||||
}
|
||||
|
||||
return fileArray;
|
||||
}
|
||||
|
||||
|
||||
function BuildTestURLsList(testSourceType)
|
||||
{
|
||||
// clear the array
|
||||
gTestURLs.splice(0, gTestURLs.length);
|
||||
gTestURLsIndex = 0;
|
||||
|
||||
if (testSourceType == kTestSourceSingleFile)
|
||||
{
|
||||
var testURL = document.testForm.singleTestFileInput.value;
|
||||
if (testURL.substr(-5) != ".html")
|
||||
{
|
||||
// append /index.html if we have to
|
||||
if (testURL.substr(-1) != "/")
|
||||
testURL += "/";
|
||||
testURL += "index.html";
|
||||
}
|
||||
gTestURLs[0] = testURL;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (var i = 0; i < gTestcaseDirArray.length; i++)
|
||||
{
|
||||
var dirFile = gTestcaseDirArray[i]; // nsIFile for the dir
|
||||
AddDirectoryEntriesToTestList(dirFile, ".html");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function CompareFilesInDir(inBaseDir, inBaseExtension, inVerifyDir, inVerifyExtension)
|
||||
{
|
||||
var comapareFiles = DirectoryEntriesToArray(inBaseDir, inBaseExtension);
|
||||
|
||||
for (var i = 0; i < comapareFiles.length; i ++)
|
||||
{
|
||||
var curFilename = comapareFiles[i];
|
||||
var testFileBasename = curFilename.replace(inBaseExtension, "");
|
||||
CompareFrameDumps(testFileBasename, inBaseDir, inBaseExtension, inVerifyDir, inVerifyExtension);
|
||||
}
|
||||
}
|
||||
|
||||
function GetTestType()
|
||||
{
|
||||
if (document.testForm.doWhat[0].checked)
|
||||
return kTestTypeBaseline;
|
||||
|
||||
if (document.testForm.doWhat[1].checked)
|
||||
return kTestTypeVerify;
|
||||
|
||||
if (document.testForm.doWhat[2].checked)
|
||||
return kTestTypeVerifyAndCompare;
|
||||
|
||||
if (document.testForm.doWhat[3].checked)
|
||||
return kTestTypeCompare;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
function RunTests()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
ClearOutput();
|
||||
SaveFormToPrefs();
|
||||
|
||||
var testSourceType;
|
||||
if (document.testForm.testType[0].checked)
|
||||
testSourceType = kTestSourceSingleFile;
|
||||
else
|
||||
testSourceType = kTestSourceDirList;
|
||||
|
||||
gTestType = GetTestType();
|
||||
|
||||
gBaselineFileExtension = document.testForm.baselineFileExtension.value;
|
||||
gVerifyFileExtension = document.testForm.verifyFileExtension.value;
|
||||
|
||||
if (gTestType == kTestTypeCompare)
|
||||
{
|
||||
// to compare, we'll just run through all the files in the
|
||||
// baseline and verify dirs, and compare those that exist in
|
||||
// both.
|
||||
CompareFilesInDir(gBaselineOutputDir, gBaselineFileExtension, gVerifyOutputDir, gVerifyFileExtension);
|
||||
}
|
||||
else
|
||||
{
|
||||
BuildTestURLsList(testSourceType);
|
||||
|
||||
gTestWindow = window.open("about:blank", "Test window",
|
||||
"width=800,height=600,status=yes,toolbars=no");
|
||||
|
||||
// start the first load
|
||||
var testURL = gTestURLs[0];
|
||||
gTestURLsIndex = 1;
|
||||
LoadTestURL(gTestWindow, testURL);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче