*/
var text, ipv4,
- simpleMDYDatesInMDY, simpleMDYDatesInDMY, oldMDYDates, complexMDYDates, clobberedDates, MYDates, YDates,
+ simpleMDYDatesInMDY, simpleMDYDatesInDMY, oldMDYDates, complexMDYDates, clobberedDates, MYDates, YDates, ISODates,
currencyData, transformedCurrencyData;
QUnit.module( 'jquery.tablesorter.parsers', QUnit.newMwEnvironment( {
/**
* For a value, check if the parser recognizes it and how it transforms it
*
- * @param {String} msg text to pass on to qunit describing the test case
- * @param {String[]} parserId of the parser that will be tested
- * @param {String[][]} data Array of testcases. Each testcase, array of
+ * @param {string} msg text to pass on to qunit describing the test case
+ * @param {string[]} parserId of the parser that will be tested
+ * @param {string[][]} data Array of testcases. Each testcase, array of
* inputValue: The string value that we want to test the parser for
* recognized: If we expect that this value's type is detectable by the parser
* outputValue: The value the parser has converted the input to
[ '1.238.27.1', true, 1238027001, 'An IP address with small numbers' ],
[ '238.27.1', false, 238027001, 'A malformed IP Address' ],
[ '1', false, 1, 'A super malformed IP Address' ],
- [ 'Just text', false, 0, 'A line with just text' ],
+ [ 'Just text', false, -Infinity, 'A line with just text' ],
[ '45.238.27.109Postfix', false, 45238027109, 'An IP address with a connected postfix' ],
[ '45.238.27.109 postfix', false, 45238027109, 'An IP address with a seperated postfix' ]
];
];
parserTest( 'Y Dates', 'date', YDates );
+ ISODates = [
+ [ '2000', false, 0, 'Plain 4-digit year' ],
+ [ '2000-01', false, 0, 'Year with month' ],
+ [ '2000-01-01', true, 946684800000, 'Year with month and day' ],
+ [ '2000-13-01', true, -Infinity, 'Non existant month' ],
+ [ '2000-01-32', true, -Infinity, 'Non existant day' ],
+ [ '2000-01-01T12:30:30', true, 946729830000, 'Date with a time' ],
+ [ '2000-01-01T12:30:30Z', true, 946729830000, 'Date with a UTC+0 time' ],
+ [ '2000-01-01T24:30:30Z', true, -Infinity, 'Date with invalid hours' ],
+ [ '2000-01-01T12:60:30Z', true, -Infinity, 'Date with invalid minutes' ],
+ [ '2000-01-01T12:30:61Z', true, 946729800000, 'Date with invalid amount of seconds, drops seconds' ],
+ [ '2000-01-01T23:59:59Z', true, 946771199000, 'Edges of time' ],
+ [ '2000-01-01T12:30:30.111Z', true, 946729830111, 'Date with milliseconds' ],
+ [ '2000-01-01T12:30:30.11111Z', true, 946729830111, 'Date with too high precision' ],
+ [ '2000-01-01T12:30:30,111Z', true, -Infinity, 'Date with milliseconds and , separator' ],
+ [ '2000-01-01T12:30:30+01:00', true, 946726230000, 'Date time in UTC+1' ],
+ [ '2000-01-01T12:30:30+01:30', true, 946724430000, 'Date time in UTC+1:30' ],
+ [ '2000-01-01T12:30:30-01:00', true, 946733430000, 'Date time in UTC-1' ],
+ [ '2000-01-01T12:30:30-01:30', true, 946735230000, 'Date time in UTC-1:30' ],
+ [ '2000-01-01T12:30:30.111+01:00', true, 946726230111, 'Date time and milliseconds in UTC+1' ],
+ [ '2000-01-01Postfix', true, 946684800000, 'Date with appended postfix' ],
+ [ '2000-01-01 Postfix', true, 946684800000, 'Date with separate postfix' ]
+ /* Disable testcases, because behavior is browser dependant */
+ /*
+ [ '2000-11-31', true, 0, '31 days in 30 day month' ],
+ [ '50-01-01', false, -60589296000000, 'Year with just two digits' ],
+ [ '-1000-01-01', true, -93724128000000, 'Year BC' ],
+ [ '+1000-01-01', true, -30610224000000, 'Date with +sign' ],
+ [ '2000-01-01 12:30:30Z', true, 0, 'Date and time with no T marker' ],
+ [ '2000-01-01T12:30:60Z', true, 946729860000, 'Date with leap second' ],
+ [ '2000-01-01T12:30:30-24:00', true, 946816230000, 'Date time in UTC-24' ],
+ [ '2000-01-01T12:30:30+24:00', true, 946643430000, 'Date time in UTC+24' ],
+ [ '2000-01-01T12:30:30+0100', true, 946726230000, 'Time without separator in timezone offset' ]
+ */
+ ];
+ parserTest( 'ISO Dates', 'isoDate', ISODates );
+
currencyData = [
[ '1.02 $', true, 1.02, '' ],
[ '$ 3.00', true, 3, '' ],