mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 15:25:52 +00:00
Beautification, code cleanup, and litmus tab improvements. p=ben_h,
r=zach.
This commit is contained in:
parent
79526ada6f
commit
f4204997ed
@ -1,23 +1,40 @@
|
||||
const FIREFOX_ID = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}";
|
||||
|
||||
var litmus = {
|
||||
var litmus = {
|
||||
baseURL : qaPref.getPref(qaPref.prefBase+".litmus.url", "char"),
|
||||
|
||||
getTestcase : function(testcase_id, callback) {
|
||||
var url = litmus.baseURL+'json.cgi?testcase_id='+testcase_id;
|
||||
var d = loadJSONDoc(url);
|
||||
d.addBoth(function (res) {
|
||||
d.deferred = null;
|
||||
return res;
|
||||
});
|
||||
d.addCallback(callback);
|
||||
d.addErrback(function (err) {
|
||||
if (err instanceof CancelledError) {
|
||||
return;
|
||||
}
|
||||
alert(err);
|
||||
});
|
||||
var url = litmus.baseURL+'json.cgi?testcase_id='+testcase_id;
|
||||
var d = loadJSONDoc(url);
|
||||
d.addBoth(function (res) {
|
||||
d.deferred = null;
|
||||
return res;
|
||||
});
|
||||
d.addCallback(callback);
|
||||
d.addErrback(function (err) {
|
||||
if (err instanceof CancelledError) {
|
||||
return;
|
||||
}
|
||||
alert(err);
|
||||
});
|
||||
},
|
||||
|
||||
getSubgroup : function(subgroupID, callback) {
|
||||
var url = litmus.baseURL+'json.cgi?subgroup_id='+subgroupID;
|
||||
var d = loadJSONDoc(url);
|
||||
d.addBoth(function (res) {
|
||||
d.deferred = null;
|
||||
return res;
|
||||
});
|
||||
d.addCallback(callback);
|
||||
d.addErrback(function (err) {
|
||||
if (err instanceof CancelledError) {
|
||||
return;
|
||||
}
|
||||
alert(err);
|
||||
});
|
||||
},
|
||||
|
||||
validateLogin : function(uname, passwd, callback) {
|
||||
var req = doSimpleXMLHttpRequest(litmus.baseURL+'json.cgi', {
|
||||
validate_login: 1,
|
||||
@ -44,9 +61,129 @@
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
|
||||
currentTestCaseIndex: 0, // position in array
|
||||
|
||||
currentSubgroupID: 21,
|
||||
cachedTests: null,
|
||||
|
||||
checkRadioButtons : function() {
|
||||
var menu = document.getElementById('testlist');
|
||||
var disable = menu.selectedItem.firstChild.getAttribute("checked");
|
||||
document.getElementById("qa-testcase-result").disabled = disable;
|
||||
},
|
||||
|
||||
prevButton : function() {
|
||||
litmus.currentTestCaseIndex--;
|
||||
litmus.selectCurrentTestCase();
|
||||
},
|
||||
nextButton: function() {
|
||||
// if they selected a result, then submit the result
|
||||
if ($('qa-testcase-result').selectedItem) {
|
||||
litmus.submitResult();
|
||||
}
|
||||
litmus.currentTestCaseIndex++;
|
||||
litmus.selectCurrentTestCase();
|
||||
},
|
||||
handleSelect : function() {
|
||||
litmus.currentTestCaseIndex = document.getElementById('testlist').selectedIndex;
|
||||
litmus.selectCurrentTestCase();
|
||||
},
|
||||
selectCurrentTestCase : function() {
|
||||
|
||||
var menu = document.getElementById('testlist');
|
||||
menu.selectedIndex = litmus.currentTestCaseIndex;
|
||||
litmus.populateTestcase(litmus.cachedTests[litmus.currentTestCaseIndex]);
|
||||
litmus.checkRadioButtons();
|
||||
},
|
||||
populatePreviewBox : function() {
|
||||
//document.getElementById("prev1").innerHTML = "hi!"; This doesn't even work, I guess I'll rewrite table in XUL
|
||||
|
||||
var menu = document.getElementById('testlist');
|
||||
if (!menu) return;
|
||||
|
||||
while (menu.firstChild) { // clear menu
|
||||
menu.removeChild(menu.firstChild);
|
||||
};
|
||||
|
||||
for (var i = 0; i < litmus.cachedTests.length; i++) {
|
||||
var row = menu.appendItem("");
|
||||
var checkbox = document.createElement("listcell");
|
||||
checkbox.setAttribute("label", "");
|
||||
checkbox.setAttribute("type", "checkbox");
|
||||
checkbox.setAttribute("disabled", "true");
|
||||
//checkbox.setAttribute("checked", "true");
|
||||
var name = document.createElement("listcell");
|
||||
name.setAttribute("label", "#" + litmus.cachedTests[i].testcase_id + " -- " + litmus.cachedTests[i].summary);
|
||||
name.setAttribute("crop", "end");
|
||||
|
||||
name.setAttribute("maxwidth", "175");
|
||||
row.appendChild(checkbox);
|
||||
row.appendChild(name);
|
||||
}
|
||||
},
|
||||
populateTestcase : function(testcase) {
|
||||
document.getElementById('qa-testcase-id').value =
|
||||
qaMain.bundle.getString("qa.extension.testcase.head")+testcase.testcase_id;
|
||||
document.getElementById('qa-testcase-summary').value = testcase.summary;
|
||||
|
||||
document.getElementById('qa-testcase-steps').innerHTML = testcase.steps;
|
||||
document.getElementById('qa-testcase-expected').innerHTML = testcase.expected_results;
|
||||
},
|
||||
populateFields : function(subgroup) {
|
||||
litmus.cachedTests = subgroup.testcases;
|
||||
//litmus.currentTestCaseIndex = 0;
|
||||
litmus.populatePreviewBox();
|
||||
litmus.currentTestCaseIndex = 0;
|
||||
litmus.selectCurrentTestCase();
|
||||
},
|
||||
|
||||
submitResult : function() {
|
||||
var rs;
|
||||
var item = $('qa-testcase-result').selectedItem;
|
||||
if (item.id == "qa-testcase-pass") {
|
||||
rs = 'Pass';
|
||||
} else if (item.id == "qa-testcase-fail") {
|
||||
rs = 'Fail';
|
||||
} else if (item.id == "qa-testcase-unclearBroken") {
|
||||
rs = 'Test unclear/broken';
|
||||
} else {
|
||||
// no result selected, so don't submit anything for thes test:
|
||||
return false;
|
||||
}
|
||||
|
||||
var l = new LitmusResults({username: qaPref.litmus.getUsername(),
|
||||
password: qaPref.litmus.getPassword(),
|
||||
server: litmus.baseURL});
|
||||
l.sysconfig(new Sysconfig());
|
||||
|
||||
l.addResult(new Result({
|
||||
testid: litmus.cachedTests[litmus.currentTestCaseIndex].testcase_id,
|
||||
resultstatus: rs,
|
||||
exitstatus: 'Exited Normally',
|
||||
duration: 0,
|
||||
comment: $('qa-testcase-comment').value,
|
||||
isAutomatedResult: 0
|
||||
}));
|
||||
|
||||
var callback = function(resp) {
|
||||
alert("yay");
|
||||
};
|
||||
|
||||
var errback = function(resp) {
|
||||
alert(resp.responseText);
|
||||
};
|
||||
|
||||
litmus.postResultXML(l.toXML(), callback, errback);
|
||||
|
||||
var menu = document.getElementById('testlist');
|
||||
var item = menu.selectedItem;
|
||||
item.firstChild.setAttribute("checked", "true");
|
||||
return false; // ?? Got rid of strict warning...
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
// any missing fields will be autodetected
|
||||
function Sysconfig(aProduct, aPlatform, aOpsys, aBranch, aBuildid, aLocale) {
|
||||
this._load('product', aProduct);
|
||||
|
@ -1,88 +1,32 @@
|
||||
var qaMain = {
|
||||
htmlNS: "http://www.w3.org/1999/xhtml",
|
||||
|
||||
curtest: null,
|
||||
|
||||
|
||||
openQATool : function() {
|
||||
window.open("chrome://qa/content/qa.xul", "_blank", "chrome,all,dialog=no,resizable=no");
|
||||
},
|
||||
nextButton: function() {
|
||||
// if they selected a result, then submit the result
|
||||
if ($('qa-testcase-result').selectedItem) {
|
||||
qaMain.submitResult();
|
||||
}
|
||||
},
|
||||
populateTestcase : function(testcase) {
|
||||
// stash the testcase object in curtest for future reference:
|
||||
curtest = testcase;
|
||||
|
||||
document.getElementById('qa-testcase-id').value =
|
||||
qaMain.bundle.getString("qa.extension.testcase.head")+testcase.testcase_id;
|
||||
document.getElementById('qa-testcase-summary').value = testcase.summary;
|
||||
|
||||
document.getElementById('qa-testcase-steps').innerHTML = testcase.steps_formatted;
|
||||
document.getElementById('qa-testcase-expected').innerHTML = testcase.expected_results_formatted;
|
||||
},
|
||||
onToolOpen : function() {
|
||||
if (qaPref.getPref(qaPref.prefBase+'.isFirstTime', 'bool') == true) {
|
||||
window.open("chrome://qa/content/setup.xul", "_blank", "chrome,all,dialog=no");
|
||||
}
|
||||
litmus.getTestcase('22', qaMain.populateTestcase);
|
||||
window.open("chrome://qa/content/setup.xul", "_blank", "chrome,all,dialog=yes");
|
||||
}
|
||||
|
||||
},
|
||||
submitResult : function() {
|
||||
var rs;
|
||||
var item = $('qa-testcase-result').selectedItem;
|
||||
if (item.id == "qa-testcase-pass") {
|
||||
rs = 'Pass';
|
||||
} else if (item.id == "qa-testcase-fail") {
|
||||
rs = 'Fail';
|
||||
} else if (item.id == "qa-testcase-unclearBroken") {
|
||||
rs = 'Test unclear/broken';
|
||||
} else {
|
||||
// no result selected, so don't submit anything for thes test:
|
||||
return false;
|
||||
}
|
||||
|
||||
var l = new LitmusResults({username: qaPref.litmus.getUsername(),
|
||||
password: qaPref.litmus.getPassword(),
|
||||
server: litmus.baseURL});
|
||||
l.sysconfig(new Sysconfig());
|
||||
|
||||
l.addResult(new Result({
|
||||
testid: curtest.testcase_id,
|
||||
resultstatus: rs,
|
||||
exitstatus: 'Exited Normally',
|
||||
duration: 0,
|
||||
comment: $('qa-testcase-comment').value,
|
||||
isAutomatedResult: 0
|
||||
}));
|
||||
|
||||
var callback = function(resp) {
|
||||
alert("yay");
|
||||
};
|
||||
|
||||
var errback = function(resp) {
|
||||
alert(resp.responseText);
|
||||
};
|
||||
|
||||
litmus.postResultXML(l.toXML(), callback, errback);
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
qaMain.__defineGetter__("bundle", function(){return $("bundle_qa");});
|
||||
qaMain.__defineGetter__("urlbundle", function(){return $("bundle_urls");});
|
||||
|
||||
function $() {
|
||||
var elements = new Array();
|
||||
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var element = arguments[i];
|
||||
if (typeof element == 'string')
|
||||
element = document.getElementById(element);
|
||||
var element = arguments[i];
|
||||
if (typeof element == 'string')
|
||||
element = document.getElementById(element);
|
||||
|
||||
if (arguments.length == 1)
|
||||
return element;
|
||||
if (arguments.length == 1)
|
||||
return element;
|
||||
|
||||
elements.push(element);
|
||||
elements.push(element);
|
||||
}
|
||||
|
||||
return elements;
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<?xml-stylesheet href="chome://qa/skin/" type="text/css"?>
|
||||
|
||||
<!DOCTYPE overlay [
|
||||
|
@ -6,65 +6,64 @@
|
||||
]>
|
||||
|
||||
<overlay id="qa-litmus-overlay"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<tabpanel id="qa-tab-litmus">
|
||||
<vbox>
|
||||
<hbox>
|
||||
<vbox>
|
||||
<button label="&qa.litmus.selecttests;" oncommand="" style="margin-left: 4px;" />
|
||||
<label value="Firefox 3.0 Catch-All Test Run" />
|
||||
<label value="Firefox 3.0 Basic Functional Tests" />
|
||||
<label value="Software Update" />
|
||||
</vbox>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml">
|
||||
<table style="margin-left: 12px; width:200px;" id="qa-litmus-testoverview">
|
||||
<tr class="testoverview-previous"><td>...</td></tr>
|
||||
<tr class="testoverview-previous"><td>#20 - Create/check live bookmark</td></tr>
|
||||
<tr class="testoverview-previous"><td>#21 - Search from contextual menu</td></tr>
|
||||
<tr class="testoverview-current"><td>#22 - Performance check</td></tr>
|
||||
<tr class="testoverview-next"><td>#23 - Manage search engines</td></tr>
|
||||
<tr class="testoverview-next"><td>#24 - Uninstall</td></tr>
|
||||
<tr class="testoverview-next"><td>...</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</hbox>
|
||||
<hbox style="font-weight: bold;">
|
||||
<description id="qa-testcase-summary">Summary of testcase</description>
|
||||
<label value=" --" />
|
||||
<label id="qa-testcase-id" value="Testcase 51" />
|
||||
</hbox>
|
||||
|
||||
<vbox flex="1">
|
||||
<groupbox>
|
||||
<caption label="&qa.testcase.steps;" />
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" id="qa-testcase-steps" />
|
||||
</groupbox>
|
||||
<splitter id="qa-mainwindow-splitter" state="open" collapse="none">
|
||||
<grippy/>
|
||||
</splitter>
|
||||
<groupbox>
|
||||
<caption label="&qa.testcase.expected;" />
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" id="qa-testcase-expected" />
|
||||
</groupbox>
|
||||
</vbox>
|
||||
|
||||
<groupbox>
|
||||
<caption label="Result:" />
|
||||
<radiogroup id="qa-testcase-result">
|
||||
<radio id="qa-testcase-pass" label="&qa.testcase.result.pass;"/>
|
||||
<radio id="qa-testcase-fail" label="&qa.testcase.result.fail;"/>
|
||||
<radio id="qa-testcase-unclearBroken" label="&qa.testcase.result.unclearbroken;"/>
|
||||
</radiogroup>
|
||||
</groupbox>
|
||||
|
||||
<label control="qa-testcase-comment" value="&qa.testcase.comment;"/>
|
||||
<textbox id="qa-testcase-comment" style="min-height: 75px; max-width:300px"/>
|
||||
|
||||
<hbox flex="1">
|
||||
<button id="qa-mainwindow-previousButton" label="Previous" />
|
||||
<button id="qa-mainwindow-nextButton" label="Next" oncommand="qaMain.nextButton()"/>
|
||||
</hbox>
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/x-javascript" src="chrome://qa/content/tabs/qa.js" />
|
||||
<script type="application/x-javascript" src="chrome://qa/content/tabs/litmus.js" />
|
||||
<tabpanel id="qa-tab-litmus" >
|
||||
|
||||
<vbox align="start" pack="start">
|
||||
<hbox align="start" pack="start">
|
||||
<vbox maxwidth="110">
|
||||
<button maxwidth="110" label="&qa.litmus.selecttests;" oncommand="litmus.getSubgroup('1', litmus.populateFields)" style="margin-left: 4px;" />
|
||||
<label value="Firefox 3.0 Catch-All Test Run" />
|
||||
<label value="Firefox 3.0 Basic Functional Tests" />
|
||||
<label value="Software Update" />
|
||||
</vbox>
|
||||
<listbox rows="7" equalsize="always" onselect="litmus.handleSelect()" id="testlist">
|
||||
<listcols>
|
||||
<listcol />
|
||||
<listcol />
|
||||
</listcols>
|
||||
</listbox>
|
||||
</hbox>
|
||||
<hbox style="font-weight: bold;">
|
||||
|
||||
<label id="qa-testcase-id" value="Testcase 51" />
|
||||
<label value=" --" />
|
||||
<description id="qa-testcase-summary">Summary of testcase</description>
|
||||
|
||||
</hbox>
|
||||
|
||||
<vbox>
|
||||
<groupbox height="160px">
|
||||
<caption label="&qa.testcase.steps;" crop="end" maxwidth="200"/>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="width: 300px" id="qa-testcase-steps" class="list"/>
|
||||
</groupbox>
|
||||
<splitter id="qa-mainwindow-splitter" state="open" collapse="none">
|
||||
<grippy/>
|
||||
</splitter>
|
||||
<groupbox height="130px">
|
||||
<caption label="&qa.testcase.expected;" />
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" id="qa-testcase-expected" class="list"/>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
|
||||
<groupbox>
|
||||
<caption label="Result:" />
|
||||
<radiogroup id="qa-testcase-result">
|
||||
<radio id="qa-testcase-pass" label="&qa.testcase.result.pass;"/>
|
||||
<radio id="qa-testcase-fail" label="&qa.testcase.result.fail;"/>
|
||||
<radio id="qa-testcase-unclearBroken" label="&qa.testcase.result.unclearbroken;"/>
|
||||
</radiogroup>
|
||||
</groupbox>
|
||||
|
||||
<label control="qa-testcase-comment" value="&qa.testcase.comment;"/>
|
||||
<textbox id="qa-testcase-comment" style="min-height: 75px; max-width:300px"/>
|
||||
|
||||
<hbox flex="1" maxheight="30px">
|
||||
<button id="qa-mainwindow-previousButton" label="Previous" oncommand="litmus.prevButton()"/>
|
||||
<button id="qa-mainwindow-nextButton" label="Next (Submit)" oncommand="litmus.nextButton()"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</tabpanel>
|
||||
|
||||
|
@ -96,6 +96,7 @@ var qmo = {
|
||||
|
||||
a.textContent = text;
|
||||
a.href = links[i].url;
|
||||
a.target = "blank_";
|
||||
}
|
||||
},
|
||||
};
|
||||
|
@ -30,6 +30,9 @@ html|a {
|
||||
position: fixed;
|
||||
border: 1px solid grey;
|
||||
background-color: white;
|
||||
background-image: url("logolight.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.qa-notify {
|
||||
@ -47,6 +50,14 @@ html|a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* general formatting */
|
||||
|
||||
.list {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
/* @group test overview */
|
||||
#qa-litmus-testoverview {
|
||||
text-decoration: underline;
|
||||
|
Loading…
Reference in New Issue
Block a user