diff options
author | Fabio Bas <ctrlaltca@gmail.com> | 2013-09-22 22:39:41 +0200 |
---|---|---|
committer | Fabio Bas <ctrlaltca@gmail.com> | 2013-09-22 22:39:41 +0200 |
commit | 7c65b2f40ea9242260eac5a746863f5925423861 (patch) | |
tree | 6c516057baa4356fde43f8d79517571bc8f0bfa2 /tests/test_tools/selenium/prado-functional-test.js | |
parent | 60c6bfa6f7caeb122cb8fa820506bdd1c54a842e (diff) |
Phing: added target for phpunit+selenium
Functional tests were using an old selenium RC version. Ported them to
use phpunit + selenium; next: opensauce
Diffstat (limited to 'tests/test_tools/selenium/prado-functional-test.js')
-rw-r--r-- | tests/test_tools/selenium/prado-functional-test.js | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/tests/test_tools/selenium/prado-functional-test.js b/tests/test_tools/selenium/prado-functional-test.js deleted file mode 100644 index 9d4446f0..00000000 --- a/tests/test_tools/selenium/prado-functional-test.js +++ /dev/null @@ -1,259 +0,0 @@ - -objectExtend(HtmlTestRunnerControlPanel.prototype, { - getTestSuiteName: function() { - return document.location+'?testSuites'; //this._getQueryParameter("test"); - } -}); - -SeleniumFrame.prototype._setLocation = function(location) { - /* var isChrome = browserVersion.isChrome || false; - var isHTA = browserVersion.isHTA || false; - // DGF TODO multiWindow - location += "?thisIsChrome=" + isChrome + "&thisIsHTA=" + isHTA;*/ - if (browserVersion.isSafari) { - // safari doesn't reload the page when the location equals to current location. - // hence, set the location to blank so that the page will reload automatically. - this.frame.src = "about:blank"; - this.frame.src = location; - } else { - this.frame.contentWindow.location.replace(location); - } - }; - -SeleniumFrame.prototype._attachStylesheet = function() -{ - var base_url = script_base_url; - var d = this.getDocument(); - var head = d.getElementsByTagName('head').item(0); - var styleLink = d.createElement("link"); - styleLink.rel = "stylesheet"; - styleLink.type = "text/css"; - styleLink.href = base_url + "core/selenium-test.css"; - head.appendChild(styleLink); -}; - -HtmlTestFrame.prototype._setLocation = SeleniumFrame.prototype._setLocation; -HtmlTestSuiteFrame.prototype._setLocation = SeleniumFrame.prototype._setLocation; - -HtmlTestFrame.prototype._attachStylesheet = SeleniumFrame.prototype._attachStylesheet; -HtmlTestSuiteFrame.prototype._attachStylesheet = SeleniumFrame.prototype._attachStylesheet; - - -objectExtend(HtmlTestRunnerControlPanel.prototype, { - _parseQueryParameter: function() { - var tempRunInterval = this._getQueryParameter("runInterval"); - if (tempRunInterval) { - this.setRunInterval(tempRunInterval); - } - } -}); - - - -/** - * Override selenium implementation. - */ -Selenium.prototype.getAttribute = function(target) { - return this.page().findAttribute(target); -}; - - -/** - * Override selenium implementation. - */ -Selenium.prototype.isVisible = function(locator) { - var element; - element = this.page().findElement(locator); - - if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - var visibility = element.style["visibility"]; - else - var visibility = this.findEffectiveStyleProperty(element, "visibility"); - - var _isDisplayed = this._isDisplayed(element); - return (visibility != "hidden" && _isDisplayed); -}; - - -/** - * Override selenium implementation. - */ -Selenium.prototype._isDisplayed = function(element) { - if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - var display = element.style["display"]; - else - var display = this.findEffectiveStyleProperty(element, "display"); - if (display == "none") return false; - if (element.parentNode.style) { - return this._isDisplayed(element.parentNode); - } - return true; -}; - -Selenium.prototype.assertEmptySelection = function(selectLocator, optionLocator) -{ - /** - * Verifies that the selected option of a drop-down satisfies the optionSpecifier. - * - * <p>See the select command for more information about option locators.</p> - * - * @param selectLocator an <a href="#locators">element locator</a> identifying a drop-down menu - * @param optionLocator an option locator, typically just an option label (e.g. "John Smith") - */ - var element = this.page().findElement(selectLocator); - var locator = this.optionLocatorFactory.fromLocatorString(optionLocator); - return element.selectedIndex == -1; -} - - -objectExtend(HtmlTestSuite.prototype, { - _onTestSuiteComplete: function() { - this.markDone(); - var result = new TestResult(this.failed, this.getTestTable()); - postTestResults(this.failed, this.getTestTable(), result); - } -}); - - - - -// Post the results to a servlet, CGI-script, etc. The URL of the -// results-handler defaults to "/postResults", but an alternative location -// can be specified by providing a "resultsUrl" query parameter. -// -// Parameters passed to the results-handler are: -// result: passed/failed depending on whether the suite passed or failed -// totalTime: the total running time in seconds for the suite. -// -// numTestPasses: the total number of tests which passed. -// numTestFailures: the total number of tests which failed. -// -// numCommandPasses: the total number of commands which passed. -// numCommandFailures: the total number of commands which failed. -// numCommandErrors: the total number of commands which errored. -// -// suite: the suite table, including the hidden column of test results -// testTable.1 to testTable.N: the individual test tables -// -function postTestResults(suiteFailed, suiteTable, result) { - - form = document.createElement("form"); - document.body.appendChild(form); - - form.id = "resultsForm"; - form.method="post"; - form.target="myiframe"; - - var resultsUrl = post_results_to; - if (!resultsUrl) { - resultsUrl = "./results.php"; - } - - var actionAndParameters = resultsUrl.split('?',2); - form.action = actionAndParameters[0]; - LOG.warn(form.action) - var resultsUrlQueryString = actionAndParameters[1]; - - form.createHiddenField = function(name, value) { - input = document.createElement("input"); - input.type = "hidden"; - input.name = name; - input.value = value; - this.appendChild(input); - }; - - if (resultsUrlQueryString) { - var clauses = resultsUrlQueryString.split('&'); - for (var i = 0; i < clauses.length; i++) { - var keyValuePair = clauses[i].split('=',2); - var key = unescape(keyValuePair[0]); - var value = unescape(keyValuePair[1]); - form.createHiddenField(key, value); - } - } - - form.createHiddenField("result", suiteFailed == true ? "failed" : "passed"); - form.createHiddenField("totalTime", Math.floor((result.metrics.currentTime - result.metrics.startTime) / 1000)); - form.createHiddenField("numTestPasses", result.metrics.numTestPasses); - form.createHiddenField("numTestFailures", result.metrics.numTestFailures); - form.createHiddenField("numCommandPasses", result.metrics.numCommandPasses); - form.createHiddenField("numCommandFailures", result.metrics.numCommandFailures); - form.createHiddenField("numCommandErrors", result.metrics.numCommandErrors); - - // Create an input for each test table. The inputs are named - // testTable.1, testTable.2, etc. - for (rowNum = 1; rowNum < suiteTable.rows.length;rowNum++) { - // If there is a second column, then add a new input - if (suiteTable.rows[rowNum].cells.length > 1) { - var resultCell = suiteTable.rows[rowNum].cells[1]; - parse_resultCell(resultCell,rowNum,form); - //form.createHiddenField("tests[]", resultCell.innerHTML); - // remove the resultCell, so it's not included in the suite HTML - //resultCell.parentNode.removeChild(resultCell); - } - } - - // Add HTML for the suite itself - //form.createHiddenField("suite", suiteTable.parentNode.innerHTML); - - form.submit(); - document.body.removeChild(form); -} - -function parse_resultCell(resultCell,rowNum,form) -{ - var div = resultCell.childNodes[0]; - var table; - for(var i = 0; i<div.childNodes.length; i++) - { - if(div.childNodes[i].nodeName.toLowerCase() == 'table') - table = div.childNodes[i]; - } - //LOG.info(div.innerHTML); - var testname = table.rows[0].cells[0].firstChild.innerHTML; - var resultColor = get_color_status(table.rows[0]); - - form.createHiddenField("tests["+rowNum+"][testcase]",testname); - - //var trace = window.testSuiteFrame.prado_trace[testname]; - - for(var i = 1; i<table.rows.length; i++) - { - var msg = table.rows[i].getAttribute("title"); - var result = get_color_status(table.rows[i]); - var action = table.rows[i].cells[0].innerHTML; - var target = table.rows[i].cells[1].innerHTML; - var param = table.rows[i].cells[2].innerHTML; - var id = "tests["+rowNum+"][commands]["+(i-1)+"]"; - form.createHiddenField(id+"[command]", "|"+action+"|"+target+"|"+param+"|"); - form.createHiddenField(id+"[result]", result); - form.createHiddenField(id+"[msg]", msg); - //form.createHiddenField(id+"[trace]", trace[i-1]); - } -} - -function get_color_status(element) -{ - var color = element.className - if(color == 'status_passed') return "passed"; - if(color == 'status_failed') return "failed"; - if(color == 'status_done') return "done"; - return ""; -} - - - - -Selenium.prototype.assertHTMLPresent = function(expectedValue) { - var actualValue = this.page().currentDocument.body.innerHTML; - if(actualValue.indexOf(expectedValue) >= 0) - return; - Assert.fail("Unable to find '"+(expectedValue.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, "\""))+"' in document.body"); -}; - -Selenium.prototype.assertHTMLNotPresent = function(expectedValue) { - var actualValue = this.page().currentDocument.body.innerHTML; - if(actualValue.indexOf(expectedValue) < 0) - return; - Assert.fail("'"+(expectedValue.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, "\""))+"' was found in document.body"); -};
\ No newline at end of file |