chg: replaced ant with gradle
This commit is contained in:
parent
cee0be52e0
commit
5cbeb9f01d
609 changed files with 87626 additions and 638 deletions
197
modules/jala/tests/ListRenderer.js
Normal file
197
modules/jala/tests/ListRenderer.js
Normal file
|
@ -0,0 +1,197 @@
|
|||
//
|
||||
// Jala Project [http://opensvn.csie.org/traccgi/jala]
|
||||
//
|
||||
// Copyright 2004 ORF Online und Teletext GmbH
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the ``License'');
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an ``AS IS'' BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
// $Revision$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $HeadURL$
|
||||
//
|
||||
|
||||
/**
|
||||
* Construct different collections as basis for the tests
|
||||
*/
|
||||
// 1. ArrayList
|
||||
var arrayList = new jala.ListRenderer.ArrayList((function() {
|
||||
var coll = [];
|
||||
for (var i=0; i<19; i++) {
|
||||
coll[i] = {id: i, title: "Object Nr. " + i};
|
||||
}
|
||||
return coll;
|
||||
})());
|
||||
|
||||
// 2. HopObject
|
||||
var hopObject = new HopObject();
|
||||
var obj;
|
||||
for (var i=0; i<19; i++) {
|
||||
obj = new HopObject();
|
||||
obj.title = "HopObject Nr. " + i;
|
||||
hopObject.add(obj);
|
||||
}
|
||||
|
||||
// 3. Array
|
||||
var array = [];
|
||||
for (var i=0; i<19; i++) {
|
||||
array[i] = {id: i, title: "Object Nr. " + i};
|
||||
}
|
||||
|
||||
/**
|
||||
* Test constructor
|
||||
*/
|
||||
var testConstructor = function() {
|
||||
// should throw an exception when called without or with invalid arguments
|
||||
assertThrows(function() {
|
||||
new jala.ListRenderer(true);
|
||||
});
|
||||
assertThrows(function() {
|
||||
new jala.ListRenderer();
|
||||
});
|
||||
// test constructor with arrayList
|
||||
var list = new jala.ListRenderer(arrayList);
|
||||
assertEqual(list.getCollection(), arrayList);
|
||||
// test constructor with hopObjectCollection
|
||||
list = new jala.ListRenderer(hopObject);
|
||||
assertEqual(list.getCollection(), hopObject);
|
||||
// test constructor with an array
|
||||
list = new jala.ListRenderer(array);
|
||||
assertEqual(list.getCollection().constructor, jala.ListRenderer.ArrayList);
|
||||
|
||||
// test backwards compatibility
|
||||
var listParam = {
|
||||
collection: hopObject,
|
||||
href: "http://localhost/test",
|
||||
urlParams: "one=two&three=four",
|
||||
urlParamName: "seite",
|
||||
itemsPerPage: 5,
|
||||
maxPages: 3,
|
||||
itemSkin: "preview",
|
||||
};
|
||||
var list = new jala.ListRenderer(listParam);
|
||||
assertEqual(list.getCollection(), listParam.collection);
|
||||
assertEqual(list.getBaseHref(), listParam.href);
|
||||
assertEqual(list.getUrlParameters(), listParam.urlParams);
|
||||
assertEqual(list.getUrlParameterName(), listParam.urlParamName);
|
||||
assertEqual(list.getPageSize(), listParam.itemsPerPage);
|
||||
assertEqual(list.getMaxPages(), listParam.maxPages);
|
||||
assertEqual(list.getItemSkin(), listParam.itemSkin);
|
||||
return;
|
||||
};
|
||||
|
||||
/**
|
||||
* Test the calculation of the page number under various circumstances
|
||||
*/
|
||||
var testPageCalculation = function() {
|
||||
var list = new jala.ListRenderer(arrayList);
|
||||
list.setPageSize(3);
|
||||
assertEqual(list.getTotalPages(), 7);
|
||||
// after setting maxPages, getTotalPages() should return this value
|
||||
list.setMaxPages(3);
|
||||
assertEqual(list.getTotalPages(), 3);
|
||||
return;
|
||||
};
|
||||
|
||||
/**
|
||||
* Test the start and end index calculation
|
||||
*/
|
||||
var testIndexCalculation = function() {
|
||||
var list = new jala.ListRenderer(arrayList);
|
||||
list.setPageSize(5);
|
||||
req.data.page = "456";
|
||||
assertEqual(list.getStartIndex(), 15);
|
||||
assertEqual(list.getEndIndex(), 18);
|
||||
// test the appropriate macros too
|
||||
assertEqual(list.currentStart_macro(), 16);
|
||||
assertEqual(list.currentEnd_macro(), 19);
|
||||
assertEqual(list.size_macro(), 19);
|
||||
// limit the number of pages - the size_macro() should return the correct value
|
||||
list.setMaxPages(2);
|
||||
assertEqual(list.size_macro(), 10);
|
||||
// reset req.data.page
|
||||
delete req.data.page;
|
||||
return;
|
||||
};
|
||||
|
||||
/**
|
||||
* Test the construction of page hrefs
|
||||
*/
|
||||
var testHrefs = function() {
|
||||
var baseHref = "http://localhost/test/list";
|
||||
var list = new jala.ListRenderer(arrayList);
|
||||
list.setBaseHref(baseHref);
|
||||
assertEqual(list.getBaseHref(), baseHref);
|
||||
// getPageHref without argument should return the href of the first page
|
||||
assertEqual(list.getPageHref(), baseHref + "?page=1");
|
||||
// tweak req.data to simulate a request for a certain page
|
||||
req.data.page = "2";
|
||||
assertEqual(list.getPageHref(), baseHref + "?page=2");
|
||||
// getPageHref with page number as argument
|
||||
assertEqual(list.getPageHref(10), baseHref + "?page=10");
|
||||
// invalid page arguments
|
||||
req.data.page = "nada";
|
||||
assertEqual(list.getPageHref(), baseHref + "?page=1");
|
||||
// for page numbers < 0 return the href of the first page
|
||||
req.data.page = "-10";
|
||||
assertEqual(list.getPageHref(), baseHref + "?page=1");
|
||||
// for page numbers exceeding the max. number of pages, return
|
||||
// the href of the last page
|
||||
req.data.page = "300";
|
||||
assertEqual(list.getPageHref(), baseHref + "?page=2");
|
||||
|
||||
// now test changing the page url parameter name
|
||||
list.setUrlParameterName("seite");
|
||||
assertEqual(list.getPageHref(2), baseHref + "?seite=2");
|
||||
|
||||
// add additional url parameters
|
||||
var params = "one=two&three=four";
|
||||
list.setUrlParameters(params);
|
||||
assertEqual(list.getPageHref(3), baseHref + "?" + params + "&seite=3");
|
||||
|
||||
// reset req.data.page
|
||||
delete req.data.page;
|
||||
return;
|
||||
};
|
||||
|
||||
/**
|
||||
* Test custom renderer
|
||||
*/
|
||||
var testRenderer = function() {
|
||||
// a pseudo renderer to check if overriding default renderer works
|
||||
var renderer = {
|
||||
"list": {
|
||||
"custom": function() {
|
||||
return;
|
||||
},
|
||||
"default": function() {
|
||||
return;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// use default renderer
|
||||
var list = new jala.ListRenderer(arrayList);
|
||||
assertEqual(list.getRenderFunction("list"),
|
||||
jala.ListRenderer.defaultRenderer.list["default"]);
|
||||
assertEqual(list.getRenderFunction("list", "nonexisting"),
|
||||
jala.ListRenderer.defaultRenderer.list["default"]);
|
||||
assertNull(list.getRenderFunction("nonexisting"));
|
||||
|
||||
// use custom renderer
|
||||
list = new jala.ListRenderer(arrayList, renderer);
|
||||
assertEqual(list.getRenderFunction("list", "custom"), renderer.list["custom"]);
|
||||
assertEqual(list.getRenderFunction("list", "nonexisting"), renderer.list["default"]);
|
||||
assertEqual(list.getRenderFunction("list"), renderer.list["default"]);
|
||||
return;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue