From f4204997ed67fb47ae1cc43d8eb137c9986439f9 Mon Sep 17 00:00:00 2001 From: "zach@zachlipton.com" Date: Thu, 19 Jul 2007 15:55:03 -0700 Subject: [PATCH] Beautification, code cleanup, and litmus tab improvements. p=ben_h, r=zach. --- .../community/chrome/content/litmus.js | 169 ++++++++++++++++-- .../extensions/community/chrome/content/qa.js | 80 ++------- .../community/chrome/content/setup.xul | 1 + .../community/chrome/content/tabs/litmus.xul | 117 ++++++------ .../community/chrome/content/tabs/qmo.js | 1 + .../extensions/community/chrome/skin/qa.css | 11 ++ 6 files changed, 236 insertions(+), 143 deletions(-) diff --git a/testing/extensions/community/chrome/content/litmus.js b/testing/extensions/community/chrome/content/litmus.js index 38b501668f0d..ae5560a5863c 100755 --- a/testing/extensions/community/chrome/content/litmus.js +++ b/testing/extensions/community/chrome/content/litmus.js @@ -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); diff --git a/testing/extensions/community/chrome/content/qa.js b/testing/extensions/community/chrome/content/qa.js index 1336bcd65aaa..f06d69b6a6d4 100755 --- a/testing/extensions/community/chrome/content/qa.js +++ b/testing/extensions/community/chrome/content/qa.js @@ -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; diff --git a/testing/extensions/community/chrome/content/setup.xul b/testing/extensions/community/chrome/content/setup.xul index 3bda08abaeaf..ca5dde777898 100644 --- a/testing/extensions/community/chrome/content/setup.xul +++ b/testing/extensions/community/chrome/content/setup.xul @@ -1,4 +1,5 @@ + - - - - - -