From e2228450f9a48ad9bab09cdc7aff0de064377278 Mon Sep 17 00:00:00 2001 From: Sergey Gaychuk Date: Wed, 2 Dec 2009 03:42:06 +0200 Subject: [PATCH] test: add filter test --- app/test/aaUITestFrame.jsm | 100 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/app/test/aaUITestFrame.jsm b/app/test/aaUITestFrame.jsm index cf57643..7a1dc38 100644 --- a/app/test/aaUITestFrame.jsm +++ b/app/test/aaUITestFrame.jsm @@ -416,6 +416,106 @@ function aaSortTest(input) { } /* +{ + cid: Components.ID(), + contractID: "", + name:, + text:, + type:, + getFilterTypes: function() - return array of objects + { + clmnID: "", + type: "" + } +} +*/ +function aaFilterTest(input) { + var base = new JSTest(); + + base._CID = input.cid; + base._contractID = input.contractID; + base._name = input.name; + + base._getFilterTypes = input.getFilterTypes; + base._text = input.object.text; + base._type = input.object.type; + + base._defaultComparator = function (clmTxt, filterTxt) { + return clmTxt.toLowerCase().match(filterTxt.toLowerCase()) != null; + } + + base._test = function (runner) { + if (this._getFilterTypes) { + var filter = getAnnoElement(runner, "viewer", "page1.filter"); + if (filter) { + //set filter type + if (!filter.typesIsHidden && !filter.setType(this._type)) { + this.addJSFailure(runner, "[aaFilterTest::_test] cann't set type to filter"); + } + //set filter text + filter.value = this._text; + //do click + //get filter button + var send = getAnnoElement(runner, "annoid", "filter.send"); + if (!send) { + this.addJSFailure(runner, "[aaFilterTest::_test] cann't find send button"); + } else { + //do send + sendOnClick(send); + //do check + if (this._check) { + this._check(runner); + } + //clear filter + filter.clear(); + } + } else { + this.addJSFailure(runner, "[aaFilterTest::_test] cann't find filter element"); + } + } else { + this.addJSFailure(runner, "[aaFilterTest::_test] function _getFilterTypes is not defined"); + } + } + base._check = function (runner) { + //find column id by type + var types = this._getFilterTypes(); + if (types.length > 0) { + var clmnID = null; + for (var i = 0; i < types.length; i++) { + if (this._type == types[i].type) { + clmnID = types[i].clmnID; + break; + } + } + if (clmnID) { + var tree = getElement(runner, "page1.tree"); + if (tree) { + var column = tree.columns.getNamedColumn(clmnID); + if (column) { + for (var i = 0; i < tree.view.rowCount; i++) { + var rowTxt = tree.view.getCellText(i, column); + if (!this._defaultComparator(rowTxt, this._text)) { + this.addJSFailure(runner, "[aaFilterTest::_test] at row " + i + " text " + rowTxt + " is not contain string " + this._text); + } + } + } else { + this.addJSFailure(runner, "[aaFilterTest::_test] cann't find column with ID: " + clmnID); + } + } else { + this.addJSFailure(runner, "[aaFilterTest::_test] cann't find tree element"); + } + } else { + this.addJSFailure(runner, "[aaFilterTest::_check] cann't find clmn id by type: " + this._type); + } + } else { + this.addJSFailure(runner, "[aaFilterTest::_check] returned types coun is 0"); + } + } + + return base; +} + +/* example for cids { name: 'page1_cids', -- 2.11.4.GIT