aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Vanek <[email protected]>2011-11-10 20:57:36 +0100
committerJiri Vanek <[email protected]>2011-11-10 20:57:36 +0100
commit05f6d4eacd71a809d5283d185bda8198e8450726 (patch)
tree7c4d3296068c97997f6d9d167b67510c0bad9dba
parent0dca9f29a8f29cb7b00b7841805a9d87a437a899 (diff)
Enabled testWeekdayRange, added tests for star/end of months for dateRange pac function
-rw-r--r--ChangeLog15
-rw-r--r--netx/net/sourceforge/jnlp/runtime/pac-funcs.js65
-rw-r--r--tests/netx/pac/pac-funcs-test.js85
3 files changed, 136 insertions, 29 deletions
diff --git a/ChangeLog b/ChangeLog
index 77887ac..718a8f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2011-11-10 Jiri Vanek <jvanek at redhat.com>
+
+ Added tests which covers corner cases or rhino support function dateRange
+ Enabled testWeekdayRange test
+ * tests/netx/pac/pac-funcs-test.js: (testWeekdayRange) - added mising
+ runTests call
+ (incDate) (decDate) (monthToStr) moved level up from function scope
+ to be shareable
+ (testDateRange2) new method, tests last days of months.
+ (testDateRange3) new method, tests first days of months
+ * netx/net/sourceforge/jnlp/runtime/pac-funcs.js:
+ (dateRange) logic of this method moved to isDateInRange. This one now serve
+ just as api using current date
+ (isDateInRange) logic of dateRange, can calculate ranges against any date
+
2011-10-31 Omair Majid <[email protected]>
PR808: javaws is unable to start when missing jars are enumerated before
diff --git a/netx/net/sourceforge/jnlp/runtime/pac-funcs.js b/netx/net/sourceforge/jnlp/runtime/pac-funcs.js
index 716def6..5c1ff78 100644
--- a/netx/net/sourceforge/jnlp/runtime/pac-funcs.js
+++ b/netx/net/sourceforge/jnlp/runtime/pac-funcs.js
@@ -325,18 +325,20 @@ function weekdayRange() {
* of the above ways of calling.
*/
function dateRange() {
+ switch (arguments.length) {
+ case 1: return isDateInRange(new Date(),arguments[0]);
+ case 2: return isDateInRange(new Date(),arguments[0],arguments[1]);
+ case 3: return isDateInRange(new Date(),arguments[0],arguments[1],arguments[2]);
+ case 4: return isDateInRange(new Date(),arguments[0],arguments[1],arguments[2],arguments[3]);
+ case 5: return isDateInRange(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);
+ case 6: return isDateInRange(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);
+ case 7: return isDateInRange(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]); //GMT
+ default:
+ return false;
+ }
+}
- // note: watch out for wrapping around of dates. date ranges, like
- // month=9 to month=8, wrap around and cover the entire year. this
- // makes everything more interesting
-
- var gmt;
- if (arguments.length > 1) {
- if (arguments[arguments.length-1] === "GMT") {
- gmt = true;
- arguments.splice(0,arguments.length-1);
- }
- }
+ function isDateInRange() {
function isDate(date) {
if (typeof(date) === 'number' && (date <= 31 && date >= 1)) {
@@ -578,8 +580,19 @@ function dateRange() {
}
}
+ // note: watch out for wrapping around of dates. date ranges, like
+ // month=9 to month=8, wrap around and cover the entire year. this
+ // makes everything more interesting
+
+ var gmt;
+ if (arguments.length > 2) {
+ if (arguments[arguments.length-1] === "GMT") {
+ gmt = true;
+ arguments.splice(0,arguments.length-1);
+ }
+ }
// TODO: change date to gmt, whatever
- var today = new Date();
+ var today = arguments[0]
var arg1;
var arg2;
@@ -588,9 +601,9 @@ function dateRange() {
var arg5;
var arg6;
- switch (arguments.length) {
+ switch (arguments.length-1) {
case 1:
- var arg = arguments[0];
+ var arg = arguments[1];
if (isDate(arg)) {
if (today.getDate() === arg) {
return true;
@@ -611,8 +624,8 @@ function dateRange() {
}
}
case 2:
- arg1 = arguments[0];
- arg2 = arguments[1];
+ arg1 = arguments[1];
+ arg2 = arguments[2];
if (isDate(arg1) && isDate(arg2)) {
var date1 = arg1;
var date2 = arg2;
@@ -634,10 +647,10 @@ function dateRange() {
return false;
}
case 4:
- arg1 = arguments[0];
- arg2 = arguments[1];
- arg3 = arguments[2];
- arg4 = arguments[3];
+ arg1 = arguments[1];
+ arg2 = arguments[2];
+ arg3 = arguments[3];
+ arg4 = arguments[4];
if (isDate(arg1) && isMonth(arg2) && isDate(arg3) && isMonth(arg4)) {
var date1 = arg1;
@@ -658,12 +671,12 @@ function dateRange() {
return false;
}
case 6:
- arg1 = arguments[0];
- arg2 = arguments[1];
- arg3 = arguments[2];
- arg4 = arguments[3];
- arg5 = arguments[4];
- arg6 = arguments[5];
+ arg1 = arguments[1];
+ arg2 = arguments[2];
+ arg3 = arguments[3];
+ arg4 = arguments[4];
+ arg5 = arguments[5];
+ arg6 = arguments[6];
if (isDate(arg1) && isMonth(arg2) && isYear(arg3) &&
isDate(arg4) && isMonth(arg5) && isYear(arg6)) {
var day1 = arg1;
diff --git a/tests/netx/pac/pac-funcs-test.js b/tests/netx/pac/pac-funcs-test.js
index e5b1bcb..451126d 100644
--- a/tests/netx/pac/pac-funcs-test.js
+++ b/tests/netx/pac/pac-funcs-test.js
@@ -21,9 +21,11 @@ function main() {
testDnsResolve();
testDnsDomainLevels();
testShExpMatch();
- testWeekdayRange();
testDateRange();
testTimeRange();
+ testWeekdayRange();
+ testDateRange2();
+ testDateRange3();
java.lang.System.out.println("Test results: passed: " + testsPassed + "; failed: " + testsFailed + ";");
}
@@ -235,9 +237,9 @@ function testWeekdayRange() {
[ false, dayToStr(day+1) ],
[ false, dayToStr(day-1) ],
];
-}
-function testDateRange() {
+ runTests(weekdayRange, tests);
+}
function incDate(date) {
return (date + 1 - 1) % 31 +1 ;
@@ -267,6 +269,9 @@ function testDateRange() {
}
}
+function testDateRange() {
+
+
var today = new Date();
var date = today.getDate();
var month = today.getMonth();
@@ -369,6 +374,80 @@ function testDateRange() {
}
+function testDateRange2() {
+
+ var dates = [
+ new Date("January 31, 2011 3:33:33"),
+ new Date("February 28, 2011 3:33:33"),
+ new Date("February 29, 2012 3:33:33"),
+ new Date("March 31, 2011 3:33:33"),
+ new Date("April 30, 2011 3:33:33"),
+ new Date("May 31, 2011 3:33:33"),
+ new Date("June 30, 2011 3:33:33"),
+ new Date("July 31, 2011 3:33:33"),
+ new Date("August 31, 2011 3:33:33"),
+ new Date("September 30, 2011 3:33:33"),
+ new Date("October 31, 2011 3:33:33"),
+ new Date("November 30, 2011 3:33:33"),
+ new Date("December 31, 2011 3:33:33"),
+
+]
+ for (var i = 0; i < dates.length; i++) {
+ var today = dates[i];
+ var date = today.getDate();
+ var month = today.getMonth();
+ var year = today.getYear();
+
+ var tests = [
+
+ [ true, today, date, monthToStr(month) , incDate(date), monthToStr(month) ],
+ [ true, today, decDate(date), monthToStr(month) , incDate(date), monthToStr(month) ],
+ [ true, today, decDate(date), monthToStr(month), year, incDate(date), monthToStr(month), year ],
+ [ false, today, incDate(date), monthToStr(month), year, incDate(date), monthToStr(month+1), year+1 ],
+
+ ];
+
+ runTests(isDateInRange, tests);
+ }
+
+}
+
+function testDateRange3() {
+ var dates = [
+ new Date("January 1, 2011 1:11:11"),
+ new Date("February 1, 2011 1:11:11"),
+ new Date("March 1, 2011 1:11:11"),
+ new Date("April 1, 2011 1:11:11"),
+ new Date("May 1, 2011 1:11:11"),
+ new Date("June 1, 2011 1:11:11"),
+ new Date("July 1, 2011 1:11:11"),
+ new Date("August 1, 2011 1:11:11"),
+ new Date("September 1, 2011 1:11:11"),
+ new Date("October 1, 2011 1:11:11"),
+ new Date("November 1, 2011 1:11:11"),
+ new Date("December 1, 2011 1:11:11"),
+
+ ]
+
+
+
+ for (var i = 0; i < dates.length; i++) {
+ var today = dates[i]
+ var date = today.getDate();
+ var month = today.getMonth();
+ var year = today.getYear();
+
+ var tests = [
+ [ true, today, decDate(date), monthToStr(month) , date, monthToStr(month) ],
+ [ true, today, decDate(date), monthToStr(month) , incDate(date), monthToStr(month) ],
+ [ true, today, decDate(date), monthToStr(month), year, incDate(date), monthToStr(month), year ],
+
+ ];
+
+ runTests(isDateInRange, tests);
+ }
+}
+
function testTimeRange() {
var now = new Date();