From 7d135d39fa85bb1cacea72692a57baa0c11f0fe5 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 4 Jan 2011 16:46:57 +1300 Subject: [PATCH] Correct handling of floating events & BYYEARDAY. Also some minor refactoring. Regression tests for all NZ holidays from 2005 to 2011 (only the calculatable ones for 2005-2008). Signed-off-by: Andrew McMillan --- inc/RRule-v2.php | 258 ++++-- ...00-Setup-PUT-collection-nz_holidays.result | 9 + ...0000-Setup-PUT-collection-nz_holidays.test | 13 + ...00-REPORT-expanded-nz-holidays-2005.result | 635 +++++++++++++++ ...2000-REPORT-expanded-nz-holidays-2005.test | 43 + ...EPORT-expanded-queens-birthday-2005.result | 40 + ...-REPORT-expanded-queens-birthday-2005.test | 44 + ...02-REPORT-expanded-nz-holidays-2006.result | 657 +++++++++++++++ ...2002-REPORT-expanded-nz-holidays-2006.test | 43 + ...03-REPORT-expanded-nz-holidays-2007.result | 657 +++++++++++++++ ...2003-REPORT-expanded-nz-holidays-2007.test | 43 + ...04-REPORT-expanded-nz-holidays-2008.result | 657 +++++++++++++++ ...2004-REPORT-expanded-nz-holidays-2008.test | 44 + ...05-REPORT-expanded-nz-holidays-2009.result | 769 +++++++++++++++++ ...2005-REPORT-expanded-nz-holidays-2009.test | 43 + ...06-REPORT-expanded-nz-holidays-2010.result | 769 +++++++++++++++++ ...2006-REPORT-expanded-nz-holidays-2010.test | 43 + ...07-REPORT-expanded-nz-holidays-2011.result | 770 ++++++++++++++++++ ...2007-REPORT-expanded-nz-holidays-2011.test | 43 + .../tests/regression-suite/nz_holidays.ics | 582 +++++++++++++ .../tests/regression-suite/us_holidays.ics | 602 ++++++++++++++ 21 files changed, 6680 insertions(+), 84 deletions(-) create mode 100644 testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.result create mode 100644 testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.test create mode 100644 testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result create mode 100644 testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.test create mode 100644 testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result create mode 100644 testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.test create mode 100644 testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.result create mode 100644 testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.test create mode 100644 testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.result create mode 100644 testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.test create mode 100644 testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.result create mode 100644 testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.test create mode 100644 testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.result create mode 100644 testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.test create mode 100644 testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.result create mode 100644 testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.test create mode 100644 testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.result create mode 100644 testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.test create mode 100644 testing/tests/regression-suite/nz_holidays.ics create mode 100644 testing/tests/regression-suite/us_holidays.ics diff --git a/inc/RRule-v2.php b/inc/RRule-v2.php index b42605eb..a59c2061 100644 --- a/inc/RRule-v2.php +++ b/inc/RRule-v2.php @@ -11,27 +11,8 @@ if ( !class_exists('DateTime') ) return; -$rrule_expand_limit = array( - 'YEARLY' => array( 'bymonth' => 'expand', 'byweekno' => 'expand', 'byyearday' => 'expand', 'bymonthday' => 'expand', - 'byday' => 'expand', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ), - 'MONTHLY' => array( 'bymonth' => 'limit', 'bymonthday' => 'expand', - 'byday' => 'expand', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ), - 'WEEKLY' => array( 'bymonth' => 'limit', - 'byday' => 'expand', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ), - 'DAILY' => array( 'bymonth' => 'limit', 'bymonthday' => 'limit', - 'byday' => 'limit', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ), - 'HOURLY' => array( 'bymonth' => 'limit', 'bymonthday' => 'limit', - 'byday' => 'limit', 'byhour' => 'limit', 'byminute' => 'expand', 'bysecond' => 'expand' ), - 'MINUTELY'=> array( 'bymonth' => 'limit', 'bymonthday' => 'limit', - 'byday' => 'limit', 'byhour' => 'limit', 'byminute' => 'limit', 'bysecond' => 'expand' ), - 'SECONDLY'=> array( 'bymonth' => 'limit', 'bymonthday' => 'limit', - 'byday' => 'limit', 'byhour' => 'limit', 'byminute' => 'limit', 'bysecond' => 'limit' ), -); - -$rrule_day_numbers = array( 'SU' => 0, 'MO' => 1, 'TU' => 2, 'WE' => 3, 'TH' => 4, 'FR' => 5, 'SA' => 6 ); - -define( 'DEBUG_RRULE', false ); // define( 'DEBUG_RRULE', true); +define( 'DEBUG_RRULE', false ); /** * Wrap the DateTimeZone class to allow parsing some iCalendar TZID strangenesses @@ -84,16 +65,17 @@ class RepeatRuleDateTime extends DateTime { private $tzid; private $is_date; - public function __construct($date = null, $dtz = null) { + public function __construct($date = null, $dtz = null, $is_date = null ) { if ( !isset(self::$UTCzone) ) self::$UTCzone = new RepeatRuleTimeZone('UTC'); $this->is_date = false; + if ( isset($is_date) ) $this->is_date = $is_date; if ( !isset($date) ) { $date = date('Ymd\THis'); // Floating $dtz = self::$UTCzone; - $this->tzid = null; } - + $this->tzid = null; + if ( is_object($date) && method_exists($date,'GetParameterValue') ) { $tzid = $date->GetParameterValue('TZID'); $actual_date = $date->Value(); @@ -110,8 +92,10 @@ class RepeatRuleDateTime extends DateTime { } if ( strlen($actual_date) == 8 ) { // We allow dates without VALUE=DATE parameter, but we don't create them like that - $this->is_date; + $this->is_date = true; } +// $value_type = $date->GetParameterValue('VALUE'); +// if ( isset($value_type) && $value_type == 'DATE' ) $this->is_date = true; $date = $actual_date; if ( DEBUG_RRULE ) printf( "Date%s property%s: %s%s\n", ($this->is_date ? "" : "Time"), (isset($this->tzid) ? ' with timezone' : ''), $date, @@ -167,7 +151,8 @@ class RepeatRuleDateTime extends DateTime { } parent::__construct($date, $dtz); - + if ( isset($is_date) ) $this->is_date = $is_date; + return $this; } @@ -187,7 +172,12 @@ class RepeatRuleDateTime extends DateTime { } public function isDate() { - return !isset($this->is_date); + return $this->is_date; + } + + + public function setAsDate() { + $this->is_date = true; } @@ -210,14 +200,19 @@ class RepeatRuleDateTime extends DateTime { } - public function UTC() { + public function UTC( $force_utc=false ) { $gmt = clone($this); - if ( isset($this->tzid) && $this->tzid != 'UTC' ) { - $dtz = parent::getTimezone(); + if ( ($force_utc && !isset($this->tzid)) || (isset($this->tzid) && $this->tzid != 'UTC') ) { + if ( isset($this->tzid)) { + $dtz = parent::getTimezone(); + } + else { + $dtz = new DateTimeZone(date_default_timezone_get()); + } $offset = 0 - $dtz->getOffset($gmt); $gmt->modify( $offset . ' seconds' ); } - if ( $this->is_date ) return $gmt->format('Ymd'); + if ( $this->is_date && !$force_utc ) return $gmt->format('Ymd'); return $gmt->format('Ymd\THis\Z'); } @@ -230,9 +225,7 @@ class RepeatRuleDateTime extends DateTime { $gmt->modify( $offset . ' seconds' ); } if ( $this->is_date ) return $gmt->format('Ymd'); - $result = $gmt->format('Ymd\THis'); - if ( isset($this->tzid) ) $result .= 'Z'; - return $result; + return $gmt->format('Ymd\THis') . (isset($this->tzid) ? 'Z' : ''); } @@ -269,6 +262,11 @@ class RepeatRuleDateTime extends DateTime { } + public function getTimeZone() { + return $this->tzid; + } + + function setDate( $year=null, $month=null, $day=null ) { if ( !isset($year) ) $year = parent::format('Y'); if ( !isset($month) ) $month = parent::format('m'); @@ -277,6 +275,21 @@ class RepeatRuleDateTime extends DateTime { return $this; } + function setYearDay( $yearday ) { + if ( $yearday > 0 ) { + $current_yearday = parent::format('z') + 1; + } + else { + $current_yearday = (parent::format('z') - (365 + parent::format('L'))); + } + $diff = $yearday - $current_yearday; + if ( $diff < 0 ) $this->modify('-P'.-$diff.'D'); + else if ( $diff > 0 ) $this->modify('P'.$diff.'D'); +// printf( "Current: %d, Looking for: %d, Diff: %d, What we got: %s (%d,%d)\n", $current_yearday, $yearday, $diff, +// parent::format('Y-m-d'), (parent::format('z')+1), ((parent::format('z') - (365 + parent::format('L')))) ); + return $this; + } + function year() { return parent::format('Y'); } @@ -329,22 +342,28 @@ class RepeatRule { private $position; private $finished; private $current_base; + private $original_rule; - public function __construct( $basedate, $rrule ) { - $this->base = ( is_object($basedate) ? $basedate : new RepeatRuleDateTime($basedate) ); + public function __construct( $basedate, $rrule, $is_date=null ) { + $this->base = (is_object($basedate) ? $basedate : new RepeatRuleDateTime($basedate) ); + $this->original_rule = $rrule; if ( DEBUG_RRULE ) { printf( "Constructing RRULE based on: '%s', rrule: '%s'\n", $basedate, $rrule ); } if ( preg_match('{FREQ=([A-Z]+)(;|$)}', $rrule, $m) ) $this->freq = $m[1]; - if ( preg_match('{UNTIL=([0-9TZ]+)(;|$)}', $rrule, $m) ) $this->until = new RepeatRuleDateTime($m[1]); + + if ( preg_match('{UNTIL=([0-9TZ]+)(;|$)}', $rrule, $m) ) + $this->until = new RepeatRuleDateTime($m[1],$this->base->getTimeZone(),$is_date); if ( preg_match('{COUNT=([0-9]+)(;|$)}', $rrule, $m) ) $this->count = $m[1]; if ( preg_match('{INTERVAL=([0-9]+)(;|$)}', $rrule, $m) ) $this->interval = $m[1]; + if ( preg_match('{WKST=(MO|TU|WE|TH|FR|SA|SU)(;|$)}', $rrule, $m) ) $this->wkst = $m[1]; - if ( preg_match('{BYDAY=(([+-]?[0-9]{0,2}(MO|TU|WE|TH|FR|SA|SU),?)+)(;|$)}', $rrule, $m) ) $this->byday = explode(',',$m[1]); + if ( preg_match('{BYDAY=(([+-]?[0-9]{0,2}(MO|TU|WE|TH|FR|SA|SU),?)+)(;|$)}', $rrule, $m) ) + $this->byday = explode(',',$m[1]); if ( preg_match('{BYYEARDAY=([0-9,+-]+)(;|$)}', $rrule, $m) ) $this->byyearday = explode(',',$m[1]); if ( preg_match('{BYWEEKNO=([0-9,+-]+)(;|$)}', $rrule, $m) ) $this->byweekno = explode(',',$m[1]); @@ -402,7 +421,8 @@ class RepeatRule { if ( !$this->valid() ) return null; if ( !isset($this->instances[$this->position]) ) $this->GetMoreInstances(); if ( !$this->valid() ) return null; - if ( DEBUG_RRULE ) printf( "Returning date from position %d: %s (%s)\n", $this->position, $this->instances[$this->position]->format('c'), $this->instances[$this->position]->UTC() ); + if ( DEBUG_RRULE ) printf( "Returning date from position %d: %s (%s)\n", $this->position, + $this->instances[$this->position]->format('c'), $this->instances[$this->position]->UTC() ); return $this->instances[$this->position]; } @@ -422,10 +442,41 @@ class RepeatRule { return false; } - + /** + * This function returns an array which lists the order of processing, and whether the processing is + * to expand or limit based on this component. + * + * Note that yearly-byday and monthly-byday have special handling which is coded within the + * expand_byday() method + * @param $freq a string indicating the frequency. + */ + final private static function rrule_expand_limit( $freq ) { + switch( $freq ) { + case 'YEARLY': + return array( 'bymonth' => 'expand', 'byweekno' => 'expand', 'byyearday' => 'expand', 'bymonthday' => 'expand', + 'byday' => 'expand', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ); + case 'MONTHLY': + return array( 'bymonth' => 'limit', 'bymonthday' => 'expand', + 'byday' => 'expand', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ); + case 'WEEKLY': + return array( 'bymonth' => 'limit', + 'byday' => 'expand', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ); + case 'DAILY': + return array( 'bymonth' => 'limit', 'bymonthday' => 'limit', + 'byday' => 'limit', 'byhour' => 'expand', 'byminute' => 'expand', 'bysecond' => 'expand' ); + case 'HOURLY': + return array( 'bymonth' => 'limit', 'bymonthday' => 'limit', + 'byday' => 'limit', 'byhour' => 'limit', 'byminute' => 'expand', 'bysecond' => 'expand' ); + case 'MINUTELY': + return array( 'bymonth' => 'limit', 'bymonthday' => 'limit', + 'byday' => 'limit', 'byhour' => 'limit', 'byminute' => 'limit', 'bysecond' => 'expand' ); + case 'SECONDLY': + return array( 'bymonth' => 'limit', 'bymonthday' => 'limit', + 'byday' => 'limit', 'byhour' => 'limit', 'byminute' => 'limit', 'bysecond' => 'limit' ); + } + } + private function GetMoreInstances() { - global $rrule_expand_limit; - if ( $this->finished ) return; $got_more = false; $loop_limit = 10; @@ -439,10 +490,13 @@ class RepeatRule { } if ( DEBUG_RRULE ) printf( "Getting more instances from: '%s' - %d\n", $this->current_base->format('c'), count($this->instances) ); $this->current_set = array( clone($this->current_base) ); - foreach( $rrule_expand_limit[$this->freq] AS $bytype => $action ) { - if ( isset($this->{$bytype}) ) $this->{$action.'_'.$bytype}(); - if ( !isset($this->current_set[0]) ) break; + foreach( self::rrule_expand_limit($this->freq) AS $bytype => $action ) { + if ( isset($this->{$bytype}) ) { + $this->{$action.'_'.$bytype}(); + if ( !isset($this->current_set[0]) ) break; + } } + sort($this->current_set); if ( isset($this->bysetpos) ) $this->limit_bysetpos(); @@ -465,11 +519,24 @@ class RepeatRule { } } - + + final private static function rrule_day_number( $day ) { + switch( $day ) { + case 'SU': return 0; + case 'MO': return 1; + case 'TU': return 2; + case 'WE': return 3; + case 'TH': return 4; + case 'FR': return 5; + case 'SA': return 6; + } + return false; + } + + static public function date_mask( $date, $y, $mo, $d, $h, $mi, $s ) { $date_parts = explode(',',$date->format('Y,m,d,H,i,s')); - $tz = $date->getTimezone(); if ( isset($y) || isset($mo) || isset($d) ) { if ( isset($y) ) $date_parts[0] = $y; if ( isset($mo) ) $date_parts[1] = $mo; @@ -508,9 +575,22 @@ class RepeatRule { } } - + private function expand_byyearday() { + $instances = $this->current_set; + $this->current_set = array(); + $days_set = array(); + foreach( $instances AS $k => $instance ) { + foreach( $this->byyearday AS $k => $yearday ) { + $on_yearday = clone($instance); + $on_yearday->setYearDay($yearday); + if ( isset($days_set[$on_yearday->UTC()]) ) continue; + $this->current_set[] = $on_yearday; + $days_set[$on_yearday->UTC()] = true; + } + } + } + private function expand_byday_in_week( $day_in_week ) { - global $rrule_day_numbers; /** * @TODO: This should really allow for WKST, since if we start a series @@ -519,7 +599,7 @@ class RepeatRule { */ $dow_of_instance = $day_in_week->format('w'); // 0 == Sunday foreach( $this->byday AS $k => $weekday ) { - $dow = $rrule_day_numbers[$weekday]; + $dow = self::rrule_day_number($weekday); $offset = $dow - $dow_of_instance; if ( $offset < 0 ) $offset += 7; $expanded = clone($day_in_week); @@ -531,14 +611,13 @@ class RepeatRule { private function expand_byday_in_month( $day_in_month ) { - global $rrule_day_numbers; $first_of_month = $this->date_mask( clone($day_in_month), null, null, 1, null, null, null); $dow_of_first = $first_of_month->format('w'); // 0 == Sunday $days_in_month = cal_days_in_month(CAL_GREGORIAN, $first_of_month->format('m'), $first_of_month->format('Y')); foreach( $this->byday AS $k => $weekday ) { if ( preg_match('{([+-])?(\d)?(MO|TU|WE|TH|FR|SA|SU)}', $weekday, $matches ) ) { - $dow = $rrule_day_numbers[$matches[3]]; + $dow = self::rrule_day_number($matches[3]); $first_dom = 1 + $dow - $dow_of_first; if ( $first_dom < 1 ) $first_dom +=7; // e.g. 1st=WE, dow=MO => 1+1-3=-1 => MO is 6th, etc. $whichweek = intval($matches[2]); if ( DEBUG_RRULE ) printf( "Expanding BYDAY(M) $weekday in month of %s\n", $first_of_month->format('c') ); @@ -572,7 +651,6 @@ class RepeatRule { private function expand_byday_in_year( $day_in_year ) { - global $rrule_day_numbers; $first_of_year = $this->date_mask( clone($day_in_year), null, 1, 1, null, null, null); $dow_of_first = $first_of_year->format('w'); // 0 == Sunday @@ -580,7 +658,7 @@ class RepeatRule { foreach( $this->byday AS $k => $weekday ) { if ( preg_match('{([+-])?(\d)?(MO|TU|WE|TH|FR|SA|SU)}', $weekday, $matches ) ) { $expanded = clone($first_of_year); - $dow = $rrule_day_numbers[$matches[3]]; + $dow = self::rrule_day_number($matches[3]); $first_doy = 1 + $dow - $dow_of_first; if ( $first_doy < 1 ) $first_doy +=7; // e.g. 1st=WE, dow=MO => 1+1-3=-1 => MO is 6th, etc. $whichweek = intval($matches[2]); if ( DEBUG_RRULE ) printf( "Expanding BYDAY(Y) $weekday from date %s\n", $instance->format('c') ); @@ -689,13 +767,11 @@ class RepeatRule { } private function limit_byday() { - global $rrule_day_numbers; - $fmt_char = 'w'; $instances = $this->current_set; $this->current_set = array(); foreach( $this->byday AS $k => $weekday ) { - $dow = $rrule_day_numbers[$weekday]; + $dow = self::rrule_day_number($weekday); foreach( $instances AS $k => $instance ) { if ( DEBUG_RRULE ) printf( "Limiting '$fmt_char' on '%s' => '%s' ?=? '%s' (%d) ? %s\n", $instance->format('c'), $instance->format($fmt_char), $weekday, $dow, ($instance->format($fmt_char) == $dow ? 'Yes' : 'No') ); if ( $instance->format($fmt_char) == $dow ) $this->current_set[] = $instance; @@ -741,7 +817,7 @@ require_once("vComponent.php"); * * @return array An array keyed on the UTC dates, referring to the component */ -function rdate_expand( $dtstart, $property, $component, $range_end = null ) { +function rdate_expand( $dtstart, $property, $component, $range_end = null, $is_date=null ) { $properties = $component->GetProperties($property); $expansion = array(); foreach( $properties AS $p ) { @@ -749,8 +825,8 @@ function rdate_expand( $dtstart, $property, $component, $range_end = null ) { $rdate = $p->Value(); $rdates = explode( ',', $rdate ); foreach( $rdates AS $k => $v ) { - $rdate = new RepeatRuleDateTime( $v, $timezone); - $expansion[$rdate->UTC()] = $component; + $rdate = new RepeatRuleDateTime( $v, $timezone, $is_date); + $expansion[$rdate->FloatOrUTC()] = $component; if ( $rdate > $range_end ) break; } } @@ -768,7 +844,7 @@ function rdate_expand( $dtstart, $property, $component, $range_end = null ) { * * @return array An array keyed on the UTC dates, referring to the component */ -function rrule_expand( $dtstart, $property, $component, $range_end ) { +function rrule_expand( $dtstart, $property, $component, $range_end, $is_date=null ) { $expansion = array(); $recur = $component->GetProperty($property); @@ -777,24 +853,23 @@ function rrule_expand( $dtstart, $property, $component, $range_end ) { $this_start = $component->GetProperty('DTSTART'); if ( isset($this_start) ) { - $timezone = $this_start->GetParameterValue('TZID'); - $this_start = new RepeatRuleDateTime($this_start->Value(),$timezone); + $this_start = new RepeatRuleDateTime($this_start); } else { $this_start = clone($dtstart); } -// print_r( $this_start ); -// printf( "RRULE: %s\n", $recur ); - $rule = new RepeatRule( $this_start, $recur ); +// if ( DEBUG_RRULE ) print_r( $this_start ); +// if ( DEBUG_RRULE ) printf( "RRULE: %s\n", $recur ); + $rule = new RepeatRule( $this_start, $recur, $is_date ); $i = 0; $result_limit = 1000; while( $date = $rule->next() ) { -// printf( "[%3d] %s\n", $i, $date->UTC() ); - $expansion[$date->UTC()] = $component; +// if ( DEBUG_RRULE ) printf( "[%3d] %s\n", $i, $date->UTC() ); + $expansion[$date->FloatOrUTC()] = $component; if ( $i++ >= $result_limit || $date > $range_end ) break; } -// print_r( $expansion ); +// if ( DEBUG_RRULE ) print_r( $expansion ); return $expansion; } @@ -821,21 +896,24 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n $instances = array(); $expand = false; $dtstart = null; + $is_date = false; foreach( $components AS $k => $comp ) { if ( $comp->GetType() != 'VEVENT' && $comp->GetType() != 'VTODO' && $comp->GetType() != 'VJOURNAL' ) { if ( $comp->GetType() != 'VTIMEZONE' ) $new_components[] = $comp; continue; } if ( !isset($dtstart) ) { - $dtstart = $comp->GetProperty('DTSTART'); - $dtstart = new RepeatRuleDateTime( $dtstart ); - $instances[$dtstart->UTC()] = $comp; + $dtstart_prop = $comp->GetProperty('DTSTART'); + $dtstart = new RepeatRuleDateTime( $dtstart_prop ); + $is_date = $dtstart->isDate(); + $instances[$dtstart->FloatOrUTC()] = $comp; } $p = $comp->GetProperty('RECURRENCE-ID'); if ( isset($p) && $p->Value() != '' ) { $range = $p->GetParameterValue('RANGE'); $recur_utc = new RepeatRuleDateTime($p); - $recur_utc = $recur_utc->UTC(); + if ( $is_date ) $recur_utc->setAsDate(); + $recur_utc = $recur_utc->FloatOrUTC(); if ( isset($range) && $range == 'THISANDFUTURE' ) { foreach( $instances AS $k => $v ) { if ( DEBUG_RRULE ) printf( "Removing overridden instance at: $k\n" ); @@ -843,7 +921,7 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n } } else { - unset($instances[$recur_utc]); + unset($instances['x'.$recur_utc]); } } else if ( DEBUG_RRULE ) { @@ -852,14 +930,14 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n $p = $comp->GetProperty('UID'); $uid = ( isset($p) ? $p->Value() : 'not set'); printf( "Processing event '%s' with UID '%s' starting on %s\n", - $summary, $uid, $dtstart->UTC() ); + $summary, $uid, $dtstart->FloatOrUTC() ); print( "Instances at start"); foreach( $instances AS $k => $v ) { print ' : '.$k; } print "\n"; } - $instances = array_merge( $instances, rrule_expand($dtstart, 'RRULE', $comp, $range_end) ); + $instances += rrule_expand($dtstart, 'RRULE', $comp, $range_end); if ( DEBUG_RRULE ) { print( "After rrule_expand"); foreach( $instances AS $k => $v ) { @@ -867,7 +945,7 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n } print "\n"; } - $instances = array_merge( $instances, rdate_expand($dtstart, 'RDATE', $comp, $range_end) ); + $instances += rdate_expand($dtstart, 'RDATE', $comp, $range_end); if ( DEBUG_RRULE ) { print( "After rdate_expand"); foreach( $instances AS $k => $v ) { @@ -890,10 +968,13 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n $last_duration = null; $early_start = null; $new_components = array(); - $start_utc = $range_start->UTC(); - $end_utc = $range_end->UTC(); + $start_utc = $range_start->FloatOrUTC(); + $end_utc = $range_end->FloatOrUTC(); foreach( $instances AS $utc => $comp ) { - if ( $utc > $end_utc ) break; + if ( $utc > $end_utc ) { + if ( DEBUG_RRULE ) printf( "We're done: $utc is out of the range.\n"); + break; + } $end_type = ($comp->GetType() == 'VTODO' ? 'DUE' : 'DTEND'); $duration = $comp->GetProperty('DURATION'); @@ -920,20 +1001,29 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n if ( $utc < $start_utc ) { if ( isset($early_start) && isset($last_duration) && $duration == $last_duration) { - if ( $utc < $early_start ) continue; + if ( $utc < $early_start ) { + if ( DEBUG_RRULE ) printf( "Next please: $utc is before $early_start and before $start_utc.\n"); + continue; + } } else { /** Calculate the latest possible start date when this event would overlap our range start */ $latest_start = clone($range_start); $latest_start->modify('-'.$duration); - $early_start = $latest_start->UTC(); + $early_start = $latest_start->FloatOrUTC(); $last_duration = $duration; - if ( $utc < $early_start ) continue; + if ( $utc < $early_start ) { + if ( DEBUG_RRULE ) printf( "Another please: $utc is before $early_start and before $start_utc.\n"); + continue; + } } } $component = clone($comp); - $component->ClearProperties( array('DTSTART'=> true, 'DUE' => true, 'DTEND' => true) ); - $component->AddProperty('DTSTART', $utc ); + $component->ClearProperties( array('DTSTART'=> true, 'DUE' => true, 'DTEND' => true, + 'RRULE' => true, 'RDATE' => true, 'EXDATE' => true) ); + $component->AddProperty('DTSTART', $utc, ($is_date ? array('VALUE' => 'DATE') : null) ); + if ( $utc != $dtstart->FloatOrUTC() ) + $component->AddProperty('RECURRENCE-ID', $utc, ($is_date ? array('VALUE' => 'DATE') : null) ); $component->AddProperty('DURATION', $duration ); $new_components[] = $component; } diff --git a/testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.result b/testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.result new file mode 100644 index 00000000..f2f5bdb6 --- /dev/null +++ b/testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.result @@ -0,0 +1,9 @@ +HTTP/1.1 100 Continue + +HTTP/1.1 200 OK +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +Content-Length: 0 +Content-Type: text/plain; charset="utf-8" + diff --git a/testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.test b/testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.test new file mode 100644 index 00000000..30cc2bad --- /dev/null +++ b/testing/tests/regression-suite/0000-Setup-PUT-collection-nz_holidays.test @@ -0,0 +1,13 @@ +# +# A collection of NZ holidays for some years (incomplete, sadly) +# +# +TYPE=PUT +URL=http://mycaldav/caldav.php/user4/nz_holidays/ +HEADER=User-Agent: RSCDS Testing/0.9.x +HEADER=Content-Type: text/calendar; charset=utf-8 +AUTH=user4:user4 + +HEAD + +DATA=nz_holidays.ics diff --git a/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result b/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result new file mode 100644 index 00000000..14eda2ed --- /dev/null +++ b/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result @@ -0,0 +1,635 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "1ede6102fc1fe7d9d94f0e8f11fe6e42" +Content-Length: 13870 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20081226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20050101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081225-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20051225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090206-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +DTSTART;VALUE=DATE:20050206 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20050425 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050606 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091026-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051024 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20051227 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091228-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050103 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100607-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050104 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051128 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051128 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090126-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050131 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050124 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050117 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090202-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050131 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091023-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY: + Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051021 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051031 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091113-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda + y in November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051111 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090928-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050926 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Boxing Day< + + dtstart: >2005-01-01 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >New Year's Day< + + dtstart: >2005-12-25 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Christmas Day< + + dtstart: >2005-02-06 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Waitangi Day< + + dtstart: >2005-04-25 00:00:00+12< + rrule: >FREQ=YEARLY< + summary: >ANZAC Day< + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + + dtstart: >2005-10-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYDAY=4MO< + summary: >Labour Day< + + dtstart: >2005-01-02 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Day after New Year's Day< + + dtstart: >2005-12-27 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2< + summary: >Boxing Day Holiday< + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1< + summary: >Christmas Day Holiday< + + dtstart: >2005-01-03 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1< + summary: >New Year's Day Holiday< + + dtstart: >2005-01-04 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2< + summary: >Day after New Year's Day Holiday< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28< + summary: >Westland Anniversary Day (Monday nearest 1st December)< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29< + summary: >Chatham Islands Anniversary Day (Monday nearest 30th November)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO< + summary: >Auckland Anniversary Day (Monday nearest 29th January)< + + dtstart: >2005-01-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO< + summary: >Wellington Anniversary Day (Monday nearest 22nd January)< + + dtstart: >2005-01-17 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO< + summary: >Southland Anniversary Day (Monday nearest 17th January)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO< + summary: >Nelson Anniversary Day (Monday nearest 1st Feb)< + + dtstart: >2005-10-21 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR< + summary: >Hawkes' Bay Anniversary Day (Friday before 4th Monday of October)< + + dtstart: >2005-10-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58< + summary: >Marlborough Anniversary Day (Monday after 4th Monday of October)< + + dtstart: >2005-11-11 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR< + summary: >Canterbury Anniversary Day (Second Friday after the first Tuesday in November)< + + dtstart: >2005-09-26 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=9;BYDAY=4MO< + summary: >South Canterbury Anniversary Day (4th Monday in September)< + diff --git a/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.test b/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.test new file mode 100644 index 00000000..9190c3be --- /dev/null +++ b/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.test @@ -0,0 +1,43 @@ +# +# Test expanded report for NZ public holidays for 2005 +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND (rrule IS NOT NULL + OR (dtstart >= '20041231T110000Z' AND dtstart < '20051231T110000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result b/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result new file mode 100644 index 00000000..3180d90f --- /dev/null +++ b/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result @@ -0,0 +1,40 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "f57bc105449e3d80e3411f3169b14ce4" +Content-Length: 722 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050606 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + diff --git a/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.test b/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.test new file mode 100644 index 00000000..e6af2b4f --- /dev/null +++ b/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.test @@ -0,0 +1,44 @@ +# +# Test REPORT access to a non-public calendar using a ticket. +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND summary ~* 'queen' + AND (rrule IS NOT NULL + OR (dtstart >= '20050531T120000Z' AND dtstart < '20050608T120000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.result b/testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.result new file mode 100644 index 00000000..974a3080 --- /dev/null +++ b/testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.result @@ -0,0 +1,657 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "3b41624f338d0d14f3c1b491c3a51ea5" +Content-Length: 14640 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20081226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061226 +RECURRENCE-ID;VALUE=DATE:20061226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20060101 +RECURRENCE-ID;VALUE=DATE:20060101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081225-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20061225 +RECURRENCE-ID;VALUE=DATE:20061225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090206-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +DTSTART;VALUE=DATE:20060206 +RECURRENCE-ID;VALUE=DATE:20060206 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20060425 +RECURRENCE-ID;VALUE=DATE:20060425 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060605 +RECURRENCE-ID;VALUE=DATE:20060605 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091026-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061023 +RECURRENCE-ID;VALUE=DATE:20061023 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060102 +RECURRENCE-ID;VALUE=DATE:20060102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20061226 +RECURRENCE-ID;VALUE=DATE:20061226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091228-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061225 +RECURRENCE-ID;VALUE=DATE:20061225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060102 +RECURRENCE-ID;VALUE=DATE:20060102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100607-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060103 +RECURRENCE-ID;VALUE=DATE:20060103 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061204 +RECURRENCE-ID;VALUE=DATE:20061204 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061127 +RECURRENCE-ID;VALUE=DATE:20061127 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090126-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060130 +RECURRENCE-ID;VALUE=DATE:20060130 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060123 +RECURRENCE-ID;VALUE=DATE:20060123 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060116 +RECURRENCE-ID;VALUE=DATE:20060116 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090202-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060130 +RECURRENCE-ID;VALUE=DATE:20060130 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091023-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY: + Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061020 +RECURRENCE-ID;VALUE=DATE:20061020 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061030 +RECURRENCE-ID;VALUE=DATE:20061030 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091113-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda + y in November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20061117 +RECURRENCE-ID;VALUE=DATE:20061117 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090928-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060925 +RECURRENCE-ID;VALUE=DATE:20060925 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Boxing Day< + + dtstart: >2005-01-01 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >New Year's Day< + + dtstart: >2005-12-25 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Christmas Day< + + dtstart: >2005-02-06 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Waitangi Day< + + dtstart: >2005-04-25 00:00:00+12< + rrule: >FREQ=YEARLY< + summary: >ANZAC Day< + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + + dtstart: >2005-10-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYDAY=4MO< + summary: >Labour Day< + + dtstart: >2005-01-02 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Day after New Year's Day< + + dtstart: >2005-12-27 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2< + summary: >Boxing Day Holiday< + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1< + summary: >Christmas Day Holiday< + + dtstart: >2005-01-03 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1< + summary: >New Year's Day Holiday< + + dtstart: >2005-01-04 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2< + summary: >Day after New Year's Day Holiday< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28< + summary: >Westland Anniversary Day (Monday nearest 1st December)< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29< + summary: >Chatham Islands Anniversary Day (Monday nearest 30th November)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO< + summary: >Auckland Anniversary Day (Monday nearest 29th January)< + + dtstart: >2005-01-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO< + summary: >Wellington Anniversary Day (Monday nearest 22nd January)< + + dtstart: >2005-01-17 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO< + summary: >Southland Anniversary Day (Monday nearest 17th January)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO< + summary: >Nelson Anniversary Day (Monday nearest 1st Feb)< + + dtstart: >2005-10-21 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR< + summary: >Hawkes' Bay Anniversary Day (Friday before 4th Monday of October)< + + dtstart: >2005-10-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58< + summary: >Marlborough Anniversary Day (Monday after 4th Monday of October)< + + dtstart: >2005-11-11 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR< + summary: >Canterbury Anniversary Day (Second Friday after the first Tuesday in November)< + + dtstart: >2005-09-26 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=9;BYDAY=4MO< + summary: >South Canterbury Anniversary Day (4th Monday in September)< + diff --git a/testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.test b/testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.test new file mode 100644 index 00000000..58e8b022 --- /dev/null +++ b/testing/tests/regression-suite/2002-REPORT-expanded-nz-holidays-2006.test @@ -0,0 +1,43 @@ +# +# Test expanded report for NZ public holidays for 2006 +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND (rrule IS NOT NULL + OR (dtstart >= '20051231T110000Z' AND dtstart < '20061231T110000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.result b/testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.result new file mode 100644 index 00000000..3b0df625 --- /dev/null +++ b/testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.result @@ -0,0 +1,657 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "955e0ed1dfaf5538c233a58dd74b9b20" +Content-Length: 14640 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20081226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071226 +RECURRENCE-ID;VALUE=DATE:20071226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20070101 +RECURRENCE-ID;VALUE=DATE:20070101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081225-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20071225 +RECURRENCE-ID;VALUE=DATE:20071225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090206-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +DTSTART;VALUE=DATE:20070206 +RECURRENCE-ID;VALUE=DATE:20070206 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20070425 +RECURRENCE-ID;VALUE=DATE:20070425 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070604 +RECURRENCE-ID;VALUE=DATE:20070604 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091026-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071022 +RECURRENCE-ID;VALUE=DATE:20071022 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070102 +RECURRENCE-ID;VALUE=DATE:20070102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20071226 +RECURRENCE-ID;VALUE=DATE:20071226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091228-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071225 +RECURRENCE-ID;VALUE=DATE:20071225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070101 +RECURRENCE-ID;VALUE=DATE:20070101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100607-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070102 +RECURRENCE-ID;VALUE=DATE:20070102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071203 +RECURRENCE-ID;VALUE=DATE:20071203 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071203 +RECURRENCE-ID;VALUE=DATE:20071203 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090126-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070129 +RECURRENCE-ID;VALUE=DATE:20070129 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070122 +RECURRENCE-ID;VALUE=DATE:20070122 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070115 +RECURRENCE-ID;VALUE=DATE:20070115 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090202-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070129 +RECURRENCE-ID;VALUE=DATE:20070129 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091023-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY: + Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071019 +RECURRENCE-ID;VALUE=DATE:20071019 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071029 +RECURRENCE-ID;VALUE=DATE:20071029 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091113-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda + y in November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20071116 +RECURRENCE-ID;VALUE=DATE:20071116 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090928-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070924 +RECURRENCE-ID;VALUE=DATE:20070924 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Boxing Day< + + dtstart: >2005-01-01 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >New Year's Day< + + dtstart: >2005-12-25 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Christmas Day< + + dtstart: >2005-02-06 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Waitangi Day< + + dtstart: >2005-04-25 00:00:00+12< + rrule: >FREQ=YEARLY< + summary: >ANZAC Day< + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + + dtstart: >2005-10-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYDAY=4MO< + summary: >Labour Day< + + dtstart: >2005-01-02 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Day after New Year's Day< + + dtstart: >2005-12-27 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2< + summary: >Boxing Day Holiday< + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1< + summary: >Christmas Day Holiday< + + dtstart: >2005-01-03 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1< + summary: >New Year's Day Holiday< + + dtstart: >2005-01-04 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2< + summary: >Day after New Year's Day Holiday< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28< + summary: >Westland Anniversary Day (Monday nearest 1st December)< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29< + summary: >Chatham Islands Anniversary Day (Monday nearest 30th November)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO< + summary: >Auckland Anniversary Day (Monday nearest 29th January)< + + dtstart: >2005-01-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO< + summary: >Wellington Anniversary Day (Monday nearest 22nd January)< + + dtstart: >2005-01-17 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO< + summary: >Southland Anniversary Day (Monday nearest 17th January)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO< + summary: >Nelson Anniversary Day (Monday nearest 1st Feb)< + + dtstart: >2005-10-21 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR< + summary: >Hawkes' Bay Anniversary Day (Friday before 4th Monday of October)< + + dtstart: >2005-10-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58< + summary: >Marlborough Anniversary Day (Monday after 4th Monday of October)< + + dtstart: >2005-11-11 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR< + summary: >Canterbury Anniversary Day (Second Friday after the first Tuesday in November)< + + dtstart: >2005-09-26 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=9;BYDAY=4MO< + summary: >South Canterbury Anniversary Day (4th Monday in September)< + diff --git a/testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.test b/testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.test new file mode 100644 index 00000000..de929efd --- /dev/null +++ b/testing/tests/regression-suite/2003-REPORT-expanded-nz-holidays-2007.test @@ -0,0 +1,43 @@ +# +# Test expanded report for NZ public holidays for 2007 +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND (rrule IS NOT NULL + OR (dtstart >= '20061231T110000Z' AND dtstart < '20071231T110000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.result b/testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.result new file mode 100644 index 00000000..c587f1dd --- /dev/null +++ b/testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.result @@ -0,0 +1,657 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "def6b45c6d1d4b99462a1a96bd4fd6d3" +Content-Length: 14640 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20081226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081226 +RECURRENCE-ID;VALUE=DATE:20081226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20080101 +RECURRENCE-ID;VALUE=DATE:20080101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081225-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20081225 +RECURRENCE-ID;VALUE=DATE:20081225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090206-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +DTSTART;VALUE=DATE:20080206 +RECURRENCE-ID;VALUE=DATE:20080206 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20080425 +RECURRENCE-ID;VALUE=DATE:20080425 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080602 +RECURRENCE-ID;VALUE=DATE:20080602 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091026-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081027 +RECURRENCE-ID;VALUE=DATE:20081027 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080102 +RECURRENCE-ID;VALUE=DATE:20080102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20081226 +RECURRENCE-ID;VALUE=DATE:20081226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091228-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081225 +RECURRENCE-ID;VALUE=DATE:20081225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080101 +RECURRENCE-ID;VALUE=DATE:20080101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100607-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080102 +RECURRENCE-ID;VALUE=DATE:20080102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081201 +RECURRENCE-ID;VALUE=DATE:20081201 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081201 +RECURRENCE-ID;VALUE=DATE:20081201 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090126-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080128 +RECURRENCE-ID;VALUE=DATE:20080128 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080121 +RECURRENCE-ID;VALUE=DATE:20080121 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080114 +RECURRENCE-ID;VALUE=DATE:20080114 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090202-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080204 +RECURRENCE-ID;VALUE=DATE:20080204 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091023-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY: + Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081024 +RECURRENCE-ID;VALUE=DATE:20081024 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081103 +RECURRENCE-ID;VALUE=DATE:20081103 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091113-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda + y in November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20081114 +RECURRENCE-ID;VALUE=DATE:20081114 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090928-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080922 +RECURRENCE-ID;VALUE=DATE:20080922 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Boxing Day< + + dtstart: >2005-01-01 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >New Year's Day< + + dtstart: >2005-12-25 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Christmas Day< + + dtstart: >2005-02-06 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Waitangi Day< + + dtstart: >2005-04-25 00:00:00+12< + rrule: >FREQ=YEARLY< + summary: >ANZAC Day< + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + + dtstart: >2005-10-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYDAY=4MO< + summary: >Labour Day< + + dtstart: >2005-01-02 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Day after New Year's Day< + + dtstart: >2005-12-27 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2< + summary: >Boxing Day Holiday< + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1< + summary: >Christmas Day Holiday< + + dtstart: >2005-01-03 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1< + summary: >New Year's Day Holiday< + + dtstart: >2005-01-04 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2< + summary: >Day after New Year's Day Holiday< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28< + summary: >Westland Anniversary Day (Monday nearest 1st December)< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29< + summary: >Chatham Islands Anniversary Day (Monday nearest 30th November)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO< + summary: >Auckland Anniversary Day (Monday nearest 29th January)< + + dtstart: >2005-01-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO< + summary: >Wellington Anniversary Day (Monday nearest 22nd January)< + + dtstart: >2005-01-17 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO< + summary: >Southland Anniversary Day (Monday nearest 17th January)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO< + summary: >Nelson Anniversary Day (Monday nearest 1st Feb)< + + dtstart: >2005-10-21 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR< + summary: >Hawkes' Bay Anniversary Day (Friday before 4th Monday of October)< + + dtstart: >2005-10-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58< + summary: >Marlborough Anniversary Day (Monday after 4th Monday of October)< + + dtstart: >2005-11-11 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR< + summary: >Canterbury Anniversary Day (Second Friday after the first Tuesday in November)< + + dtstart: >2005-09-26 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=9;BYDAY=4MO< + summary: >South Canterbury Anniversary Day (4th Monday in September)< + diff --git a/testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.test b/testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.test new file mode 100644 index 00000000..59ae8d02 --- /dev/null +++ b/testing/tests/regression-suite/2004-REPORT-expanded-nz-holidays-2008.test @@ -0,0 +1,44 @@ +# +# Test expanded report for NZ public holidays for 2008 +# Test REPORT access to a non-public calendar using a ticket. +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND (rrule IS NOT NULL + OR (dtstart >= '20071231T110000Z' AND dtstart < '20081231T110000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.result b/testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.result new file mode 100644 index 00000000..da2b3340 --- /dev/null +++ b/testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.result @@ -0,0 +1,769 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "aaa970e0626e252fed189561f26be5dd" +Content-Length: 17061 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20081226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091226 +RECURRENCE-ID;VALUE=DATE:20091226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20090101 +RECURRENCE-ID;VALUE=DATE:20090101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081225-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20091225 +RECURRENCE-ID;VALUE=DATE:20091225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090410-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235335Z +LAST-MODIFIED:20081117T235417Z +DTSTAMP:20081117T235335Z +UID:20090410-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090410 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090206-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +DTSTART;VALUE=DATE:20090206 +RECURRENCE-ID;VALUE=DATE:20090206 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090413-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235455Z +LAST-MODIFIED:20081117T235524Z +DTSTAMP:20081117T235455Z +UID:20090413-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090413 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20090425 +RECURRENCE-ID;VALUE=DATE:20090425 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090601 +RECURRENCE-ID;VALUE=DATE:20090601 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091026-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091026 +RECURRENCE-ID;VALUE=DATE:20091026 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090102 +RECURRENCE-ID;VALUE=DATE:20090102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20091228 +RECURRENCE-ID;VALUE=DATE:20091228 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091228-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091225 +RECURRENCE-ID;VALUE=DATE:20091225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090101 +RECURRENCE-ID;VALUE=DATE:20090101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100607-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090102 +RECURRENCE-ID;VALUE=DATE:20090102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091130 +RECURRENCE-ID;VALUE=DATE:20091130 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091130 +RECURRENCE-ID;VALUE=DATE:20091130 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090126-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090126 +RECURRENCE-ID;VALUE=DATE:20090126 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090119 +RECURRENCE-ID;VALUE=DATE:20090119 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090119 +RECURRENCE-ID;VALUE=DATE:20090119 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090202-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090202 +RECURRENCE-ID;VALUE=DATE:20090202 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090309-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200607Z +LAST-MODIFIED:20081119T200622Z +DTSTAMP:20081119T200607Z +UID:20090309-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090309 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090323-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200640Z +LAST-MODIFIED:20081119T200650Z +DTSTAMP:20081119T200640Z +UID:20090323-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090323 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091023-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY: + Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091023 +RECURRENCE-ID;VALUE=DATE:20091023 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091102 +RECURRENCE-ID;VALUE=DATE:20091102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091113-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda + y in November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20091113 +RECURRENCE-ID;VALUE=DATE:20091113 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090928-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090928 +RECURRENCE-ID;VALUE=DATE:20090928 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Boxing Day< + + dtstart: >2005-01-01 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >New Year's Day< + + dtstart: >2005-12-25 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Christmas Day< + + dtstart: >2009-04-10 00:00:00+12< + rrule: >NULL< + summary: >Good Friday< + + dtstart: >2005-02-06 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Waitangi Day< + + dtstart: >2009-04-13 00:00:00+12< + rrule: >NULL< + summary: >Easter Monday< + + dtstart: >2005-04-25 00:00:00+12< + rrule: >FREQ=YEARLY< + summary: >ANZAC Day< + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + + dtstart: >2005-10-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYDAY=4MO< + summary: >Labour Day< + + dtstart: >2005-01-02 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Day after New Year's Day< + + dtstart: >2005-12-27 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2< + summary: >Boxing Day Holiday< + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1< + summary: >Christmas Day Holiday< + + dtstart: >2005-01-03 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1< + summary: >New Year's Day Holiday< + + dtstart: >2005-01-04 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2< + summary: >Day after New Year's Day Holiday< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28< + summary: >Westland Anniversary Day (Monday nearest 1st December)< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29< + summary: >Chatham Islands Anniversary Day (Monday nearest 30th November)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO< + summary: >Auckland Anniversary Day (Monday nearest 29th January)< + + dtstart: >2005-01-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO< + summary: >Wellington Anniversary Day (Monday nearest 22nd January)< + + dtstart: >2005-01-17 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO< + summary: >Southland Anniversary Day (Monday nearest 17th January)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO< + summary: >Nelson Anniversary Day (Monday nearest 1st Feb)< + + dtstart: >2009-03-09 00:00:00+13< + rrule: >NULL< + summary: >Taranaki Anniversary Day< + + dtstart: >2009-03-23 00:00:00+13< + rrule: >NULL< + summary: >Otago Anniversary Day< + + dtstart: >2005-10-21 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR< + summary: >Hawkes' Bay Anniversary Day (Friday before 4th Monday of October)< + + dtstart: >2005-10-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58< + summary: >Marlborough Anniversary Day (Monday after 4th Monday of October)< + + dtstart: >2005-11-11 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR< + summary: >Canterbury Anniversary Day (Second Friday after the first Tuesday in November)< + + dtstart: >2005-09-26 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=9;BYDAY=4MO< + summary: >South Canterbury Anniversary Day (4th Monday in September)< + diff --git a/testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.test b/testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.test new file mode 100644 index 00000000..4855428d --- /dev/null +++ b/testing/tests/regression-suite/2005-REPORT-expanded-nz-holidays-2009.test @@ -0,0 +1,43 @@ +# +# Test expanded report for NZ public holidays for 2009 +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND (rrule IS NOT NULL + OR (dtstart >= '20081231T110000Z' AND dtstart < '20091231T110000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.result b/testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.result new file mode 100644 index 00000000..686dc133 --- /dev/null +++ b/testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.result @@ -0,0 +1,769 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "269714db682bb823f6b711c10d7ec6c5" +Content-Length: 17061 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20081226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101226 +RECURRENCE-ID;VALUE=DATE:20101226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20100101 +RECURRENCE-ID;VALUE=DATE:20100101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081225-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20101225 +RECURRENCE-ID;VALUE=DATE:20101225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090206-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +DTSTART;VALUE=DATE:20100206 +RECURRENCE-ID;VALUE=DATE:20100206 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20100425 +RECURRENCE-ID;VALUE=DATE:20100425 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100607 +RECURRENCE-ID;VALUE=DATE:20100607 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091026-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101025 +RECURRENCE-ID;VALUE=DATE:20101025 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100102 +RECURRENCE-ID;VALUE=DATE:20100102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20101228 +RECURRENCE-ID;VALUE=DATE:20101228 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091228-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101227 +RECURRENCE-ID;VALUE=DATE:20101227 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100101 +RECURRENCE-ID;VALUE=DATE:20100101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100607-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100104 +RECURRENCE-ID;VALUE=DATE:20100104 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100402-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012802Z +LAST-MODIFIED:20081118T012811Z +DTSTAMP:20081118T012802Z +UID:20100402-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100402 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100405-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012817Z +LAST-MODIFIED:20081118T012854Z +DTSTAMP:20081118T012817Z +UID:20100405-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100405 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101129 +RECURRENCE-ID;VALUE=DATE:20101129 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101129 +RECURRENCE-ID;VALUE=DATE:20101129 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090126-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100201 +RECURRENCE-ID;VALUE=DATE:20100201 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100125 +RECURRENCE-ID;VALUE=DATE:20100125 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100118 +RECURRENCE-ID;VALUE=DATE:20100118 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090202-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100201 +RECURRENCE-ID;VALUE=DATE:20100201 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091023-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY: + Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101022 +RECURRENCE-ID;VALUE=DATE:20101022 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101101 +RECURRENCE-ID;VALUE=DATE:20101101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091113-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda + y in November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20101112 +RECURRENCE-ID;VALUE=DATE:20101112 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090928-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100927 +RECURRENCE-ID;VALUE=DATE:20100927 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100308-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T202108Z +LAST-MODIFIED:20081119T202117Z +DTSTAMP:20081119T202108Z +UID:20100308-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100308 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100322-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T202119Z +LAST-MODIFIED:20081119T202125Z +DTSTAMP:20081119T202119Z +UID:20100322-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100322 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Boxing Day< + + dtstart: >2005-01-01 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >New Year's Day< + + dtstart: >2005-12-25 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Christmas Day< + + dtstart: >2005-02-06 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Waitangi Day< + + dtstart: >2005-04-25 00:00:00+12< + rrule: >FREQ=YEARLY< + summary: >ANZAC Day< + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + + dtstart: >2005-10-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYDAY=4MO< + summary: >Labour Day< + + dtstart: >2005-01-02 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Day after New Year's Day< + + dtstart: >2005-12-27 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2< + summary: >Boxing Day Holiday< + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1< + summary: >Christmas Day Holiday< + + dtstart: >2005-01-03 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1< + summary: >New Year's Day Holiday< + + dtstart: >2005-01-04 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2< + summary: >Day after New Year's Day Holiday< + + dtstart: >2010-04-02 00:00:00+13< + rrule: >NULL< + summary: >Good Friday< + + dtstart: >2010-04-05 00:00:00+12< + rrule: >NULL< + summary: >Easter Monday< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28< + summary: >Westland Anniversary Day (Monday nearest 1st December)< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29< + summary: >Chatham Islands Anniversary Day (Monday nearest 30th November)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO< + summary: >Auckland Anniversary Day (Monday nearest 29th January)< + + dtstart: >2005-01-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO< + summary: >Wellington Anniversary Day (Monday nearest 22nd January)< + + dtstart: >2005-01-17 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO< + summary: >Southland Anniversary Day (Monday nearest 17th January)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO< + summary: >Nelson Anniversary Day (Monday nearest 1st Feb)< + + dtstart: >2005-10-21 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR< + summary: >Hawkes' Bay Anniversary Day (Friday before 4th Monday of October)< + + dtstart: >2005-10-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58< + summary: >Marlborough Anniversary Day (Monday after 4th Monday of October)< + + dtstart: >2005-11-11 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR< + summary: >Canterbury Anniversary Day (Second Friday after the first Tuesday in November)< + + dtstart: >2005-09-26 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=9;BYDAY=4MO< + summary: >South Canterbury Anniversary Day (4th Monday in September)< + + dtstart: >2010-03-08 00:00:00+13< + rrule: >NULL< + summary: >Taranaki Anniversary Day< + + dtstart: >2010-03-22 00:00:00+13< + rrule: >NULL< + summary: >Otago Anniversary Day< + diff --git a/testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.test b/testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.test new file mode 100644 index 00000000..0bcb7b33 --- /dev/null +++ b/testing/tests/regression-suite/2006-REPORT-expanded-nz-holidays-2010.test @@ -0,0 +1,43 @@ +# +# Test expanded report for NZ public holidays for 2010 +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND (rrule IS NOT NULL + OR (dtstart >= '20091231T110000Z' AND dtstart < '20101231T110000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.result b/testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.result new file mode 100644 index 00000000..ac629b23 --- /dev/null +++ b/testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.result @@ -0,0 +1,770 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook +ETag: "de7372222a553c72e38c92a028523ff5" +Content-Length: 17081 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user4/nz_holidays/20081226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111226 +RECURRENCE-ID;VALUE=DATE:20111226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20110101 +RECURRENCE-ID;VALUE=DATE:20110101 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081225-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20111225 +RECURRENCE-ID;VALUE=DATE:20111225 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090206-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +DTSTART;VALUE=DATE:20110206 +RECURRENCE-ID;VALUE=DATE:20110206 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +DTSTART;VALUE=DATE:20110425 +RECURRENCE-ID;VALUE=DATE:20110425 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090601-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110606 +RECURRENCE-ID;VALUE=DATE:20110606 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091026-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111024 +RECURRENCE-ID;VALUE=DATE:20111024 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110102 +RECURRENCE-ID;VALUE=DATE:20110102 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091226-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20111227 +RECURRENCE-ID;VALUE=DATE:20111227 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091228-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111226 +RECURRENCE-ID;VALUE=DATE:20111226 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100101-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110103 +RECURRENCE-ID;VALUE=DATE:20110103 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20100607-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110104 +RECURRENCE-ID;VALUE=DATE:20110104 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20110422-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T014342Z +LAST-MODIFIED:20081118T014404Z +DTSTAMP:20081118T014342Z +UID:20110422-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110422 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20110425-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081118T014406Z +LAST-MODIFIED:20081118T014430Z +DTSTAMP:20081118T014406Z +UID:20110425-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110425 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111128 +RECURRENCE-ID;VALUE=DATE:20111128 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20081201-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111128 +RECURRENCE-ID;VALUE=DATE:20111128 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090126-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110131 +RECURRENCE-ID;VALUE=DATE:20110131 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110124 +RECURRENCE-ID;VALUE=DATE:20110124 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090119-2-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110117 +RECURRENCE-ID;VALUE=DATE:20110117 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090202-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110131 +RECURRENCE-ID;VALUE=DATE:20110131 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091023-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY: + Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111021 +RECURRENCE-ID;VALUE=DATE:20111021 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091102-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111031 +RECURRENCE-ID;VALUE=DATE:20111031 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20091113-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda + y in November) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20111111 +RECURRENCE-ID;VALUE=DATE:20111111 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20090928-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110926 +RECURRENCE-ID;VALUE=DATE:20110926 +DURATION:P1D +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20110314-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T203128Z +LAST-MODIFIED:20081119T203139Z +DTSTAMP:20081119T203128Z +UID:20110314-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110314 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user4/nz_holidays/20110321-1-all-publicholidays-dol.govt.nz.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20081119T203213Z +LAST-MODIFIED:20081119T203247Z +DTSTAMP:20081119T203213Z +UID:20110321-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +DTSTART;VALUE=DATE:20110321 +DURATION:PT1440M +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Boxing Day< + + dtstart: >2005-01-01 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >New Year's Day< + + dtstart: >2005-12-25 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Christmas Day< + + dtstart: >2005-02-06 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Waitangi Day< + + dtstart: >2005-04-25 00:00:00+12< + rrule: >FREQ=YEARLY< + summary: >ANZAC Day< + + dtstart: >2005-06-06 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=6;BYDAY=1MO< + summary: >Queen's Birthday< + + dtstart: >2005-10-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYDAY=4MO< + summary: >Labour Day< + + dtstart: >2005-01-02 00:00:00+13< + rrule: >FREQ=YEARLY< + summary: >Day after New Year's Day< + + dtstart: >2005-12-27 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2< + summary: >Boxing Day Holiday< + + dtstart: >2005-12-26 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1< + summary: >Christmas Day Holiday< + + dtstart: >2005-01-03 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1< + summary: >New Year's Day Holiday< + + dtstart: >2005-01-04 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2< + summary: >Day after New Year's Day Holiday< + + dtstart: >2011-04-22 00:00:00+12< + rrule: >NULL< + summary: >Good Friday< + + dtstart: >2011-04-25 00:00:00+12< + rrule: >NULL< + summary: >Easter Monday< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28< + summary: >Westland Anniversary Day (Monday nearest 1st December)< + + dtstart: >2005-11-28 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29< + summary: >Chatham Islands Anniversary Day (Monday nearest 30th November)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO< + summary: >Auckland Anniversary Day (Monday nearest 29th January)< + + dtstart: >2005-01-24 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO< + summary: >Wellington Anniversary Day (Monday nearest 22nd January)< + + dtstart: >2005-01-17 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO< + summary: >Southland Anniversary Day (Monday nearest 17th January)< + + dtstart: >2005-01-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO< + summary: >Nelson Anniversary Day (Monday nearest 1st Feb)< + + dtstart: >2005-10-21 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR< + summary: >Hawkes' Bay Anniversary Day (Friday before 4th Monday of October)< + + dtstart: >2005-10-31 00:00:00+13< + rrule: >FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58< + summary: >Marlborough Anniversary Day (Monday after 4th Monday of October)< + + dtstart: >2005-11-11 00:00:00+13< + rrule: >FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR< + summary: >Canterbury Anniversary Day (Second Friday after the first Tuesday in November)< + + dtstart: >2005-09-26 00:00:00+12< + rrule: >FREQ=YEARLY;BYMONTH=9;BYDAY=4MO< + summary: >South Canterbury Anniversary Day (4th Monday in September)< + + dtstart: >2011-03-14 00:00:00+13< + rrule: >NULL< + summary: >Taranaki Anniversary Day< + + dtstart: >2011-03-21 00:00:00+13< + rrule: >NULL< + summary: >Otago Anniversary Day< + diff --git a/testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.test b/testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.test new file mode 100644 index 00000000..227b7d0f --- /dev/null +++ b/testing/tests/regression-suite/2007-REPORT-expanded-nz-holidays-2011.test @@ -0,0 +1,43 @@ +# +# Test expanded report for NZ public holidays for 2011 +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user4/nz_holidays/ +AUTH=user4:user4 + + +HEADER=User-Agent: DAViCalTester/public +HEADER=Content-Type: text/xml; charset="UTF-8" +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + +QUERY +SELECT dtstart, + rrule, + summary + FROM calendar_item + WHERE dav_name ~ '^/user4/nz_holidays/' + AND (rrule IS NOT NULL + OR (dtstart >= '20101231T110000Z' AND dtstart < '20111231T110000Z') + ) +ENDQUERY + diff --git a/testing/tests/regression-suite/nz_holidays.ics b/testing/tests/regression-suite/nz_holidays.ics new file mode 100644 index 00000000..0b367d5a --- /dev/null +++ b/testing/tests/regression-suite/nz_holidays.ics @@ -0,0 +1,582 @@ +BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +X-WR-CALNAME:New Zealand Public Holidays +BEGIN:VEVENT +CREATED:20081117T225121Z +LAST-MODIFIED:20081117T225144Z +DTSTAMP:20081117T225121Z +UID:20081226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day +DTSTART;VALUE=DATE:20051226 +RRULE:FREQ=YEARLY +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081117T225212Z +LAST-MODIFIED:20081117T230337Z +DTSTAMP:20081117T225212Z +UID:20090101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day +DTSTART;VALUE=DATE:20050101 +RRULE:FREQ=YEARLY +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +END:VEVENT +BEGIN:VEVENT +CREATED:20081117T224951Z +LAST-MODIFIED:20081117T235108Z +DTSTAMP:20081117T224951Z +UID:20081225-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day +DTSTART;VALUE=DATE:20051225 +RRULE:FREQ=YEARLY +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +END:VEVENT +BEGIN:VEVENT +CREATED:20081117T235335Z +LAST-MODIFIED:20081117T235417Z +DTSTAMP:20081117T235335Z +UID:20090410-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20090410 +DTEND;VALUE=DATE:20090411 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081117T235224Z +LAST-MODIFIED:20081120T002639Z +DTSTAMP:20081117T235224Z +UID:20090206-1-all-publicholidays-dol.govt.nz +SUMMARY:Waitangi Day +DTSTART;VALUE=DATE:20050206 +RRULE:FREQ=YEARLY +TRANSP:TRANSPARENT +X-MOZ-GENERATION:4 +END:VEVENT +BEGIN:VEVENT +CREATED:20081117T235455Z +LAST-MODIFIED:20081117T235524Z +DTSTAMP:20081117T235455Z +UID:20090413-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20090413 +DTEND;VALUE=DATE:20090414 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T011910Z +LAST-MODIFIED:20081120T001537Z +DTSTAMP:20081118T011910Z +UID:20090425-1-all-publicholidays-dol.govt.nz +SUMMARY:ANZAC Day +DTSTART;VALUE=DATE:20050425 +RRULE:FREQ=YEARLY +TRANSP:TRANSPARENT +X-MOZ-GENERATION:2 +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T011947Z +LAST-MODIFIED:20081118T012009Z +DTSTAMP:20081118T011947Z +UID:20090601-1-all-publicholidays-dol.govt.nz +SUMMARY:Queen's Birthday +DTSTART;VALUE=DATE:20050606 +RRULE:FREQ=YEARLY;BYMONTH=6;BYDAY=1MO +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T012125Z +LAST-MODIFIED:20081118T012150Z +DTSTAMP:20081118T012125Z +UID:20091026-1-all-publicholidays-dol.govt.nz +SUMMARY:Labour Day +DTSTART;VALUE=DATE:20051024 +RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=4MO +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081117T235121Z +LAST-MODIFIED:20081118T012314Z +DTSTAMP:20081117T235121Z +UID:20090102-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day +DTSTART;VALUE=DATE:20050102 +RRULE:FREQ=YEARLY +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T012344Z +LAST-MODIFIED:20081118T012529Z +DTSTAMP:20081118T012344Z +UID:20091226-1-all-publicholidays-dol.govt.nz +SUMMARY:Boxing Day Holiday +DTSTART;VALUE=DATE:20051227 +RRULE:FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=2 +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T012537Z +LAST-MODIFIED:20081118T012606Z +DTSTAMP:20081118T012537Z +UID:20091228-1-all-publicholidays-dol.govt.nz +SUMMARY:Christmas Day Holiday +DTSTART;VALUE=DATE:20051226 +RRULE:FREQ=YEARLY;BYMONTH=12;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=25,26,27,28;BYSETPOS=1 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T012634Z +LAST-MODIFIED:20081118T012657Z +DTSTAMP:20081118T012634Z +UID:20100101-1-all-publicholidays-dol.govt.nz +SUMMARY:New Year's Day Holiday +DTSTART;VALUE=DATE:20050103 +RRULE:FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=1 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T013050Z +LAST-MODIFIED:20081118T013102Z +DTSTAMP:20081118T013050Z +UID:20100607-1-all-publicholidays-dol.govt.nz +SUMMARY:Day after New Year's Day Holiday +DTSTART;VALUE=DATE:20050104 +RRULE:FREQ=YEARLY;BYMONTH=1;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=1,2,3,4;BYSETPOS=2 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T012802Z +LAST-MODIFIED:20081118T012811Z +DTSTAMP:20081118T012802Z +UID:20100402-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20100402 +DTEND;VALUE=DATE:20100403 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T012817Z +LAST-MODIFIED:20081118T012854Z +DTSTAMP:20081118T012817Z +UID:20100405-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20100405 +DTEND;VALUE=DATE:20100406 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T014342Z +LAST-MODIFIED:20081118T014404Z +DTSTAMP:20081118T014342Z +UID:20110422-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20110422 +DTEND;VALUE=DATE:20110423 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T014406Z +LAST-MODIFIED:20081118T014430Z +DTSTAMP:20081118T014406Z +UID:20110425-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20110425 +DTEND;VALUE=DATE:20110426 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T015055Z +LAST-MODIFIED:20081118T015123Z +DTSTAMP:20081118T015055Z +UID:20120406-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20120406 +DTEND;VALUE=DATE:20120407 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T015128Z +LAST-MODIFIED:20081118T015139Z +DTSTAMP:20081118T015128Z +UID:20120409-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20120409 +DTEND;VALUE=DATE:20120410 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T015519Z +LAST-MODIFIED:20081118T015535Z +DTSTAMP:20081118T015519Z +UID:20130329-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20130329 +DTEND;VALUE=DATE:20130330 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T015540Z +LAST-MODIFIED:20081118T015609Z +DTSTAMP:20081118T015540Z +UID:20130401-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20130401 +DTEND;VALUE=DATE:20130402 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T020024Z +LAST-MODIFIED:20081118T020127Z +DTSTAMP:20081118T020105Z +UID:20140418-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20140418 +DTEND;VALUE=DATE:20140419 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T020135Z +LAST-MODIFIED:20081118T020155Z +DTSTAMP:20081118T020135Z +UID:20140421-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20140421 +DTEND;VALUE=DATE:20140422 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T020631Z +LAST-MODIFIED:20081118T020647Z +DTSTAMP:20081118T020631Z +UID:20150403-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20150403 +DTEND;VALUE=DATE:20150404 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T020717Z +LAST-MODIFIED:20081118T020753Z +DTSTAMP:20081118T020717Z +UID:20150406-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20150406 +DTEND;VALUE=DATE:20150407 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081118T021243Z +LAST-MODIFIED:20081118T021253Z +DTSTAMP:20081118T021243Z +UID:20160325-1-all-publicholidays-dol.govt.nz +SUMMARY:Good Friday +DTSTART;VALUE=DATE:20160325 +DTEND;VALUE=DATE:20160326 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081118T021257Z +LAST-MODIFIED:20081118T021323Z +DTSTAMP:20081118T021257Z +UID:20160328-1-all-publicholidays-dol.govt.nz +SUMMARY:Easter Monday +DTSTART;VALUE=DATE:20160328 +DTEND;VALUE=DATE:20160329 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200154Z +LAST-MODIFIED:20081119T200227Z +DTSTAMP:20081119T200154Z +UID:20081201-1-all-publicholidays-dol.govt.nz +SUMMARY:Westland Anniversary Day (Monday nearest 1st December) +DTSTART;VALUE=DATE:20051128 +RRULE:FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-34,-33,-32,-31,-30,-29,-28 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200252Z +LAST-MODIFIED:20081119T200304Z +DTSTAMP:20081119T200252Z +UID:20081201-2-all-publicholidays-dol.govt.nz +SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) +DTSTART;VALUE=DATE:20051128 +RRULE:FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-35,-34,-33,-32,-31,-30,-29 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200321Z +LAST-MODIFIED:20081119T200334Z +DTSTAMP:20081119T200321Z +UID:20090126-1-all-publicholidays-dol.govt.nz +SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) +DTSTART;VALUE=DATE:20050131 +RRULE:FREQ=YEARLY;BYYEARDAY=26,27,28,29,30,31,32;BYDAY=MO +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200350Z +LAST-MODIFIED:20081119T200406Z +DTSTAMP:20081119T200350Z +UID:20090119-1-all-publicholidays-dol.govt.nz +SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) +DTSTART;VALUE=DATE:20050124 +RRULE:FREQ=YEARLY;BYYEARDAY=19,20,21,22,23,24,25;BYDAY=MO +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200431Z +LAST-MODIFIED:20081119T200443Z +DTSTAMP:20081119T200431Z +UID:20090119-2-all-publicholidays-dol.govt.nz +SUMMARY:Southland Anniversary Day (Monday nearest 17th January) +DTSTART;VALUE=DATE:20050117 +RRULE:FREQ=YEARLY;BYYEARDAY=14,15,16,17,18,19,20;BYDAY=MO +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200519Z +LAST-MODIFIED:20081119T200530Z +DTSTAMP:20081119T200519Z +UID:20090202-1-all-publicholidays-dol.govt.nz +SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) +DTSTART;VALUE=DATE:20050131 +RRULE:FREQ=YEARLY;BYYEARDAY=29,30,31,32,33,34,35;BYDAY=MO +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200607Z +LAST-MODIFIED:20081119T200622Z +DTSTAMP:20081119T200607Z +UID:20090309-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20090309 +DTEND;VALUE=DATE:20090310 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200640Z +LAST-MODIFIED:20081119T200650Z +DTSTAMP:20081119T200640Z +UID:20090323-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20090323 +DTEND;VALUE=DATE:20090324 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200759Z +LAST-MODIFIED:20081119T200809Z +DTSTAMP:20081119T200759Z +UID:20091023-1-all-publicholidays-dol.govt.nz +SUMMARY:Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) +DTSTART;VALUE=DATE:20051021 +RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=FR +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T200840Z +LAST-MODIFIED:20081119T200928Z +DTSTAMP:20081119T200840Z +UID:20091102-1-all-publicholidays-dol.govt.nz +SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) +DTSTART;VALUE=DATE:20051031 +RRULE:FREQ=YEARLY;BYDAY=MO;BYYEARDAY=-64,-63,-62,-61,-60,-59,-58 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T201008Z +LAST-MODIFIED:20081119T201040Z +DTSTAMP:20081119T201008Z +UID:20091113-1-all-publicholidays-dol.govt.nz +SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesday in November) +DTSTART;VALUE=DATE:20051111 +RRULE:FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=11,12,13,14,15,16,17;BYDAY=FR +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T201140Z +LAST-MODIFIED:20081119T201153Z +DTSTAMP:20081119T201140Z +UID:20090928-1-all-publicholidays-dol.govt.nz +SUMMARY:South Canterbury Anniversary Day (4th Monday in September) +DTSTART;VALUE=DATE:20050926 +RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=4MO +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T202108Z +LAST-MODIFIED:20081119T202117Z +DTSTAMP:20081119T202108Z +UID:20100308-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20100308 +DTEND;VALUE=DATE:20100309 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081119T202119Z +LAST-MODIFIED:20081119T202125Z +DTSTAMP:20081119T202119Z +UID:20100322-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20100322 +DTEND;VALUE=DATE:20100323 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T203128Z +LAST-MODIFIED:20081119T203139Z +DTSTAMP:20081119T203128Z +UID:20110314-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20110314 +DTEND;VALUE=DATE:20110315 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081119T203213Z +LAST-MODIFIED:20081119T203247Z +DTSTAMP:20081119T203213Z +UID:20110321-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20110321 +DTEND;VALUE=DATE:20110322 +TRANSP:TRANSPARENT +X-MOZ-GENERATION:1 +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T214936Z +LAST-MODIFIED:20081119T214943Z +DTSTAMP:20081119T214936Z +UID:20120312-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20120312 +DTEND;VALUE=DATE:20120313 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081119T215004Z +LAST-MODIFIED:20081119T215012Z +DTSTAMP:20081119T215004Z +UID:20120326-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20120326 +DTEND;VALUE=DATE:20120327 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T215900Z +LAST-MODIFIED:20081119T215926Z +DTSTAMP:20081119T215900Z +UID:20130311-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20130311 +DTEND;VALUE=DATE:20130312 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081119T215951Z +LAST-MODIFIED:20081119T215958Z +DTSTAMP:20081119T215951Z +UID:20130325-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20130325 +DTEND;VALUE=DATE:20130326 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T220720Z +LAST-MODIFIED:20081119T220732Z +DTSTAMP:20081119T220720Z +UID:20140310-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20140310 +DTEND;VALUE=DATE:20140311 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081119T220734Z +LAST-MODIFIED:20081119T220743Z +DTSTAMP:20081119T220734Z +UID:20140324-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20140324 +DTEND;VALUE=DATE:20140325 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T221413Z +LAST-MODIFIED:20081119T221422Z +DTSTAMP:20081119T221413Z +UID:20150309-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20150309 +DTEND;VALUE=DATE:20150310 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081119T221435Z +LAST-MODIFIED:20081119T221446Z +DTSTAMP:20081119T221435Z +UID:20150323-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20150323 +DTEND;VALUE=DATE:20150324 +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +CREATED:20081119T222143Z +LAST-MODIFIED:20081119T222153Z +DTSTAMP:20081119T222143Z +UID:20160314-1-all-publicholidays-dol.govt.nz +SUMMARY:Taranaki Anniversary Day +DTSTART;VALUE=DATE:20160314 +DTEND;VALUE=DATE:20160315 +TRANSP:TRANSPARENT +END:VEVENT +BEGIN:VEVENT +CREATED:20081119T222159Z +LAST-MODIFIED:20081119T222209Z +DTSTAMP:20081119T222159Z +UID:20160321-1-all-publicholidays-dol.govt.nz +SUMMARY:Otago Anniversary Day +DTSTART;VALUE=DATE:20160321 +DTEND;VALUE=DATE:20160322 +TRANSP:TRANSPARENT +END:VEVENT +END:VCALENDAR diff --git a/testing/tests/regression-suite/us_holidays.ics b/testing/tests/regression-suite/us_holidays.ics new file mode 100644 index 00000000..72c02aa2 --- /dev/null +++ b/testing/tests/regression-suite/us_holidays.ics @@ -0,0 +1,602 @@ +BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +X-WR-CALNAME:US Holidays +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20190421 +DTEND;VALUE=DATE:20190422 +SUMMARY:Easter Sunday +UID:64E660BA-86DB-43CD-A067-194149D28471-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151248Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20041011 +DTEND;VALUE=DATE:20041012 +SUMMARY:Columbus Day +UID:64874200-9494-415C-9FA8-B86F739FFB13-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20051009;BYMONTH=10;BYDAY=2MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040704 +DTEND;VALUE=DATE:20040705 +SUMMARY:Independence Day +UID:468CB2B3-342D-4D1D-B152-F52608E6CB4C-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060703 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20110424 +DTEND;VALUE=DATE:20110425 +SUMMARY:Easter Sunday +UID:01253561-2B9B-4341-88F5-29A572BB3E75-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151243Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20200412 +DTEND;VALUE=DATE:20200413 +SUMMARY:Easter Sunday +UID:8EE35D87-548A-4495-BE91-07303C510724-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151246Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040101 +DTEND;VALUE=DATE:20040102 +SUMMARY:New Year's Day +UID:5D55021E-0C17-49BD-BE73-29F472A75FAD-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:4 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20051231 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051027 +DTEND;VALUE=DATE:20051028 +SUMMARY:Navy Day +UID:183A097B-7D44-4C66-9569-AA520E7CB8DC-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151243Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20240331 +DTEND;VALUE=DATE:20240401 +SUMMARY:Easter Sunday +UID:EDF531F8-7E53-4604-9F72-16BCD40CD7D2-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151242Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060416 +DTEND;VALUE=DATE:20060417 +SUMMARY:Easter Sunday +UID:95DAFE6C-E465-40C1-8FAD-4EAB11CAD26B-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151251Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040119 +DTEND;VALUE=DATE:20040120 +SUMMARY:Martin Luther King Jr.'s Birthday +UID:E8C35314-F61A-4649-A4C3-E4F24B2BA454-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:5 +DTSTAMP:20060216T151248Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060115;BYMONTH=1;BYDAY=3MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20120408 +DTEND;VALUE=DATE:20120409 +SUMMARY:Easter Sunday +UID:0EF392B7-5203-432C-B41B-BB7AFC5CBA6A-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151249Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20140420 +DTEND;VALUE=DATE:20140421 +SUMMARY:Easter Sunday +UID:BCC001F2-681A-4D72-9631-ACCE8EA480A0-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151249Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051124 +DTEND;VALUE=DATE:20051125 +SUMMARY:Thanksgiving Day +UID:F35052B2-D44B-43F8-9F2C-95149FD385FF-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151251Z +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=11;BYDAY=4TH +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060101 +DTEND;VALUE=DATE:20060102 +SUMMARY:New Year's Day +UID:8FF1DB95-BC31-48B3-94A8-A519ED090EF7-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:4 +DTSTAMP:20060216T151243Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20180401 +DTEND;VALUE=DATE:20180402 +SUMMARY:Easter Sunday +UID:AB045233-7D93-490A-AEDC-70710D207055-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151245Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040906 +DTEND;VALUE=DATE:20040907 +SUMMARY:Labor Day +UID:D2B79EA9-E22C-4F27-BB84-750584839575-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:4 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060903;BYMONTH=9;BYDAY=1MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040212 +DTEND;VALUE=DATE:20040213 +SUMMARY:Lincoln's Birthday +UID:B14BF09D-1745-4F98-89D3-98410ACFD9C9-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151247Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060211 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20210404 +DTEND;VALUE=DATE:20210405 +SUMMARY:Easter Sunday +UID:B5F73538-5A2E-4518-86F8-4AC2415447BB-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151244Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060904 +DTEND;VALUE=DATE:20060905 +SUMMARY:Labor Day +UID:E1C2F367-726B-4BBC-A6F0-37E31EDA74F0-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:4 +DTSTAMP:20060216T151247Z +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=9;BYDAY=1MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20050327 +DTEND;VALUE=DATE:20050328 +SUMMARY:Easter Sunday +UID:467631C8-F6B4-419C-878F-082B8774CC6C-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151248Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTAMP:20060216T151243Z +UID:20432B95-74EB-4A97-B6AA-CF307DE25236-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTART;VALUE=DATE:20040531 +SUMMARY:Memorial Day +DTEND;VALUE=DATE:20040601 +DESCRIPTION:Fly flag half-staff until noon. +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060528;BYMONTH=5;BYDAY=-1MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040411 +DTEND;VALUE=DATE:20040412 +SUMMARY:Easter Sunday +UID:AB7564F8-DEC3-4A9B-B228-595138D8F83E-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151243Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20080323 +DTEND;VALUE=DATE:20080324 +SUMMARY:Easter Sunday +UID:70F1BEC8-058E-4CA0-A401-9D0AA6D10C25-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:4 +DTSTAMP:20060216T151241Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060514 +DTEND;VALUE=DATE:20060515 +SUMMARY:Mother's Day +UID:3DDCAA37-8FC9-4602-8161-062DA284C25A-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151242Z +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYDAY=2SU +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060704 +DTEND;VALUE=DATE:20060705 +SUMMARY:Independence Day +UID:4D1563A6-B1B6-4FC3-B68D-C5BC32117935-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20220417 +DTEND;VALUE=DATE:20220418 +SUMMARY:Easter Sunday +UID:8711F720-D78C-4AE3-86CC-4BE1C6A04944-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151245Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20100404 +DTEND;VALUE=DATE:20100405 +SUMMARY:Easter Sunday +UID:7B660B80-30F0-42CC-A32A-4FEE2ECC6515-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151243Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051010 +DTEND;VALUE=DATE:20051011 +SUMMARY:Columbus Day +UID:8B7568AE-0F91-48DA-88EE-210E402147BF-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=10;BYDAY=2MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040614 +DTEND;VALUE=DATE:20040615 +SUMMARY:Flag Day +UID:349DCD34-83E1-42EF-81C7-C051E5B6FAC8-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151245Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060613 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20041027 +DTEND;VALUE=DATE:20041028 +SUMMARY:Navy Day +UID:B7DA1215-2500-41A6-A40E-706ADD5FFC1E-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151243Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20051026 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040216 +DTEND;VALUE=DATE:20040217 +SUMMARY:Washington's Birthday +UID:7D553648-4460-4618-977E-12B8DB4516BF-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:5 +DTSTAMP:20060216T151242Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060219;BYMONTH=2;BYDAY=3MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20230409 +DTEND;VALUE=DATE:20230410 +SUMMARY:Easter Sunday +UID:4006A01A-8E57-497A-8061-C504817DEC29-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151248Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040515 +DTEND;VALUE=DATE:20040516 +SUMMARY:Armed Forces Day +UID:DE7C6F7A-EA80-42C8-A05B-89341A373CA2-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151242Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060519;BYMONTH=5;BYDAY=3SA +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051111 +DTEND;VALUE=DATE:20051112 +SUMMARY:Veterans Day +UID:64A2DCF3-5A6B-4EF4-A520-BA01CBC97617-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151242Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040120 +DTEND;VALUE=DATE:20040121 +SUMMARY:Inauguration Day +UID:5155D737-F8AA-4522-8703-D51B4A30AF9C-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:6 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060119 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTAMP:20060216T151243Z +UID:E44DD94F-150A-4B6E-8692-A53437147FCF-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTART;VALUE=DATE:20060529 +SUMMARY:Memorial Day +DTEND;VALUE=DATE:20060530 +DESCRIPTION:Fly flag half-staff until noon. +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYDAY=-1MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060520 +DTEND;VALUE=DATE:20060521 +SUMMARY:Armed Forces Day +UID:DEACF954-F452-4AC2-BB9C-437533BF49A6-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151247Z +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYDAY=3SA +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060917 +DTEND;VALUE=DATE:20060918 +SUMMARY:Constitution Day +UID:9C3C643D-D138-4AA9-9AB4-F77443E70837-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20250420 +DTEND;VALUE=DATE:20250421 +SUMMARY:Easter Sunday +UID:79FC38CA-5D7B-45B9-839B-27B5C8C3A514-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151246Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20041111 +DTEND;VALUE=DATE:20041112 +SUMMARY:Veterans Day +UID:75F65F7C-5D88-45B2-9D95-18F7C8AFEB86-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151243Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20051110 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20160327 +DTEND;VALUE=DATE:20160328 +SUMMARY:Easter Sunday +UID:7D9E7675-0B5B-4E43-B918-235CD5A9248E-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151249Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20150405 +DTEND;VALUE=DATE:20150406 +SUMMARY:Easter Sunday +UID:DF4DAEB8-7248-4F1F-BA4E-EA8B5BDF5D0C-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151244Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060212 +DTEND;VALUE=DATE:20060213 +SUMMARY:Lincoln's Birthday +UID:E238FE0B-4E32-43D6-965F-ACC28CC43B21-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151243Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060220 +DTEND;VALUE=DATE:20060221 +SUMMARY:Washington's Birthday +UID:3BBE9587-1A13-4DF6-8671-08511BC92786-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:5 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=2;BYDAY=3MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040917 +DTEND;VALUE=DATE:20040918 +SUMMARY:Constitution Day +UID:9672014B-DAE5-42AF-B83E-91CE92CE1278-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151249Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060916 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20070408 +DTEND;VALUE=DATE:20070409 +SUMMARY:Easter Sunday +UID:95C333C1-CEAE-45F0-B448-B8F9F5B768A2-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151247Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060120 +DTEND;VALUE=DATE:20060121 +SUMMARY:Inauguration Day +UID:5485295A-60A8-4CBF-9574-CE838633DD95-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:6 +DTSTAMP:20060216T151245Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20130331 +DTEND;VALUE=DATE:20130401 +SUMMARY:Easter Sunday +UID:7896BE9D-72E8-4C38-9BC7-203830C6429B-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151244Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20041225 +DTEND;VALUE=DATE:20041226 +SUMMARY:Christmas Day +UID:57B0B83E-0913-4853-B784-C072F9F990DF-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151245Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20051224 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20040509 +DTEND;VALUE=DATE:20040510 +SUMMARY:Mother's Day +UID:6E846799-408D-4D86-B3DF-D9946CCDB194-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151244Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20060513;BYMONTH=5;BYDAY=2SU +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20170416 +DTEND;VALUE=DATE:20170417 +SUMMARY:Easter Sunday +UID:35EE647D-6E48-4233-B0C4-CCC497684C92-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151251Z +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20051225 +DTEND;VALUE=DATE:20051226 +SUMMARY:Christmas Day +UID:555C0D00-991F-48C5-A68B-7E3CBD5780FA-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151245Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20041125 +DTEND;VALUE=DATE:20041126 +SUMMARY:Thanksgiving Day +UID:73C40DD3-C7C0-42BB-95F5-22B1FCE2F240-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151244Z +RRULE:FREQ=YEARLY;INTERVAL=1;UNTIL=20051123;BYMONTH=11;BYDAY=4TH +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060116 +DTEND;VALUE=DATE:20060117 +SUMMARY:Martin Luther King Jr.'s Birthday +UID:910ED267-B8DF-4CA7-B867-0ED1A5FD3F23-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:5 +DTSTAMP:20060216T151242Z +RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=1;BYDAY=3MO +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20060614 +DTEND;VALUE=DATE:20060615 +SUMMARY:Flag Day +UID:C15CE396-EAA3-49FB-B79F-79AF3D6E5069-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:3 +DTSTAMP:20060216T151247Z +RRULE:FREQ=YEARLY;INTERVAL=1 +END:VEVENT +BEGIN:VEVENT +TRANSP:TRANSPARENT +DTSTART;VALUE=DATE:20090412 +DTEND;VALUE=DATE:20090413 +SUMMARY:Easter Sunday +UID:698F4B6B-C5B9-4AF6-9E38-DF171C8448A5-7CFA95A3-9734-46AF-A4DC-5FB544A + D96AF +SEQUENCE:2 +DTSTAMP:20060216T151249Z +END:VEVENT +END:VCALENDAR