diff --git a/inc/tz/expand.php b/inc/tz/expand.php
index c3f2652c..c5f5c1ba 100644
--- a/inc/tz/expand.php
+++ b/inc/tz/expand.php
@@ -76,34 +76,60 @@ function expand_timezone_onsets( vCalendar $vResource, RepeatRuleDateTime $range
$dtstart_prop->SetParameterValue('TZID',$zone_tz);
$dtstart = new RepeatRuleDateTime( $dtstart_prop );
$is_date = $dtstart->isDate();
- $instances[$dtstart->FloatOrUTC()] = $comp;
+ $instances[$dtstart->UTC('Y-m-d\TH:i:s\Z')] = $comp;
$rrule = $comp->GetProperty('RRULE');
$has_repeats = isset($rrule);
if ( !$has_repeats ) continue;
- $instances += rrule_expand($dtstart, 'RRULE', $comp, $range_end);
- if ( DEBUG_EXPAND ) {
- print( "After rrule_expand");
- foreach( $instances AS $k => $v ) {
- print ' : '.$k;
+ $recur = $comp->GetProperty('RRULE');
+ if ( isset($recur) ) {
+ $recur = $recur->Value();
+ $this_start = clone($dtstart);
+ $rule = new RepeatRule( $this_start, $recur, $is_date );
+ $i = 0;
+ $result_limit = 1000;
+ while( $date = $rule->next() ) {
+ $instances[$date->UTC('Y-m-d\TH:i:s\Z')] = $comp;
+ if ( $i++ >= $result_limit || $date > $range_end ) break;
+ }
+ if ( DEBUG_EXPAND ) {
+ print( "After rrule_expand");
+ foreach( $instances AS $k => $v ) {
+ print ' : '.$k;
+ }
+ print "\n";
}
- print "\n";
}
- $instances += rdate_expand($dtstart, 'RDATE', $comp, $range_end);
- if ( DEBUG_EXPAND ) {
- print( "After rdate_expand");
- foreach( $instances AS $k => $v ) {
- print ' : '.$k;
+
+ $properties = $comp->GetProperties('RDATE');
+ if ( count($properties) ) {
+ foreach( $properties AS $p ) {
+ $timezone = $p->GetParameterValue('TZID');
+ $rdate = $p->Value();
+ $rdates = explode( ',', $rdate );
+ foreach( $rdates AS $k => $v ) {
+ $rdate = new RepeatRuleDateTime( $v, $timezone, $is_date);
+ if ( $return_floating_times ) $rdate->setAsFloat();
+ $instances[$rdate->UTC('Y-m-d\TH:i:s\Z')] = $comp;
+ if ( $rdate > $range_end ) break;
+ }
+ }
+
+ if ( DEBUG_EXPAND ) {
+ print( "After rdate_expand");
+ foreach( $instances AS $k => $v ) {
+ print ' : '.$k;
+ }
+ print "\n";
}
- print "\n";
}
}
ksort($instances);
$onsets = array();
- $start_utc = $range_start->FloatOrUTC();
- $end_utc = $range_end->FloatOrUTC();
+ $start_utc = $range_start->UTC('Y-m-d\TH:i:s\Z');
+ $end_utc = $range_end->UTC('Y-m-d\TH:i:s\Z');
foreach( $instances AS $utc => $comp ) {
if ( $utc > $end_utc ) {
if ( DEBUG_EXPAND ) printf( "We're done: $utc is out of the range.\n");
@@ -124,7 +150,7 @@ function expand_timezone_onsets( vCalendar $vResource, RepeatRuleDateTime $range
return $onsets;
}
-header( 'Etag: "'.$tz->etag.'"' );
+header( 'ETag: "'.$tz->etag.'"' );
header( 'Last-Modified', $tz->last_modified );
header('Content-Type: application/xml; charset="utf-8"');
@@ -132,7 +158,7 @@ $vtz = new vCalendar($tz->vtimezone);
$response = new XMLDocument(array("urn:ietf:params:xml:ns:timezone-service" => ""));
$timezones = $response->NewXMLElement('urn:ietf:params:xml:ns:timezone-service:timezones');
-$timezones->NewElement('dtstamp', gmdate('Ymd\THis\Z'));
+$timezones->NewElement('dtstamp', gmdate('Y-m-d\TH:i:s\Z'));
$from = new RepeatRuleDateTime($start);
$until = new RepeatRuleDateTime($end);
diff --git a/inc/tz/get.php b/inc/tz/get.php
index 6cc8b596..21146849 100644
--- a/inc/tz/get.php
+++ b/inc/tz/get.php
@@ -43,7 +43,7 @@ if ( $qry->QDo('SELECT * FROM tz_localnames WHERE our_tzno = :our_tzno', array('
}
}
-header( 'Etag: "'.$tz->etag.'"' );
+header( 'ETag: "'.$tz->etag.'"' );
header( 'Last-Modified', $tz->last_modified );
$request->DoResponse(200, $vtz->Render(), 'text/calendar');
diff --git a/inc/tz/list.php b/inc/tz/list.php
index 93bd2edb..de935b4d 100644
--- a/inc/tz/list.php
+++ b/inc/tz/list.php
@@ -13,9 +13,9 @@ require_once('vComponent.php');
$response = new XMLDocument( array("urn:ietf:params:xml:ns:timezone-service" => "") );
$tzlist = $response->NewXMLElement('timezone-list');
-$tzlist->NewElement('dtstamp', gmdate('Ymd\THis\Z'));
+$tzlist->NewElement('dtstamp', gmdate('Y-m-d\TH:i:s\Z'));
-$sql = 'SELECT our_tzno, tzid, active, to_char(last_modified AT TIME ZONE \'UTC\',\'YYYYMMDD\"T\"HH24MISS"Z"\') AS last_modified, olson_name, vtimezone FROM timezones';
+$sql = 'SELECT our_tzno, tzid, active, to_char(last_modified AT TIME ZONE \'UTC\',\'YYYY-MM-DD\"T\"HH24:MI:SS"Z"\') AS last_modified, olson_name, vtimezone FROM timezones';
$params = array();
$where = '';
if ( $returnall !== true ) {
diff --git a/testing/tests/timezone/5010-list.result b/testing/tests/timezone/5010-list.result
index d04fa704..a68904dc 100644
--- a/testing/tests/timezone/5010-list.result
+++ b/testing/tests/timezone/5010-list.result
@@ -1,6 +1,6 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Content-Length: 2596
+Content-Length: 2644
Content-Type: application/xml; charset="utf-8"
diff --git a/testing/tests/timezone/5010-list.test b/testing/tests/timezone/5010-list.test
index 18871ceb..798bb656 100644
--- a/testing/tests/timezone/5010-list.test
+++ b/testing/tests/timezone/5010-list.test
@@ -5,5 +5,5 @@ TYPE=GET
URL=http://regression.host/tz.php?action=list&returnall&lang=en_US
HEAD
-REPLACE=/dtstamp>[0-9TZ]{16}/dtstamp>all good/
-REPLACE=/last-modified>[0-9TZ]{16}/last-modified>all good/
+REPLACE=/dtstamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/dtstamp>all good/
+REPLACE=/last-modified>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/last-modified>all good/
diff --git a/testing/tests/timezone/5011-list.result b/testing/tests/timezone/5011-list.result
index b9bd3e38..9082975a 100644
--- a/testing/tests/timezone/5011-list.result
+++ b/testing/tests/timezone/5011-list.result
@@ -1,6 +1,6 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Content-Length: 158
+Content-Length: 162
Content-Type: application/xml; charset="utf-8"
diff --git a/testing/tests/timezone/5011-list.test b/testing/tests/timezone/5011-list.test
index d7288120..1383a704 100644
--- a/testing/tests/timezone/5011-list.test
+++ b/testing/tests/timezone/5011-list.test
@@ -5,4 +5,4 @@ TYPE=GET
URL=http://regression.host/tz.php?action=list
HEAD
-REPLACE=/dtstamp>[0-9TZ]{16}/dtstamp>all good/
+REPLACE=/dtstamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/dtstamp>all good/
diff --git a/testing/tests/timezone/5021-list.test b/testing/tests/timezone/5021-list.test
index 8594e61c..269a2d2a 100644
--- a/testing/tests/timezone/5021-list.test
+++ b/testing/tests/timezone/5021-list.test
@@ -5,5 +5,5 @@ TYPE=GET
URL=http://regression.host/tz.php?action=list
HEAD
-REPLACE=/dtstamp>[0-9TZ]{16}/dtstamp>all good/
-REPLACE=/last-modified>[0-9TZ]{16}/last-modified>all good/
+REPLACE=/dtstamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/dtstamp>all good/
+REPLACE=/last-modified>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/last-modified>all good/
diff --git a/testing/tests/timezone/5030-get.result b/testing/tests/timezone/5030-get.result
index d7a1b64a..08df2fab 100644
--- a/testing/tests/timezone/5030-get.result
+++ b/testing/tests/timezone/5030-get.result
@@ -1,6 +1,6 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Etag: "b6098dd509534c18b8bb8a979afa7df4"
+ETag: "Some good etag"
Content-Length: 601
Content-Type: text/calendar
diff --git a/testing/tests/timezone/5030-get.test b/testing/tests/timezone/5030-get.test
index e6b215e5..984d3139 100644
--- a/testing/tests/timezone/5030-get.test
+++ b/testing/tests/timezone/5030-get.test
@@ -6,3 +6,4 @@ URL=http://regression.host/tz.php?action=get&tzid=Pacific/Auckland&lang=en_US
HEAD
REPLACE=/LAST-MODIFIED:[0-9TZ]{16}/LAST-MODIFIED:all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
diff --git a/testing/tests/timezone/5031-get.result b/testing/tests/timezone/5031-get.result
index c3adb161..4b208def 100644
--- a/testing/tests/timezone/5031-get.result
+++ b/testing/tests/timezone/5031-get.result
@@ -1,6 +1,6 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Etag: "0db80e352e12f15a4cceab465c77671b"
+ETag: "Some good etag"
Content-Length: 611
Content-Type: text/calendar
diff --git a/testing/tests/timezone/5031-get.test b/testing/tests/timezone/5031-get.test
index 874e4bc7..6b42ffde 100644
--- a/testing/tests/timezone/5031-get.test
+++ b/testing/tests/timezone/5031-get.test
@@ -6,3 +6,4 @@ URL=http://regression.host/tz.php?action=get&tzid=Europe/Madrid&lang=es_ES&forma
HEAD
REPLACE=/LAST-MODIFIED:[0-9TZ]{16}/LAST-MODIFIED:all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
diff --git a/testing/tests/timezone/5032-get.test b/testing/tests/timezone/5032-get.test
index 590a71dc..3b6bad54 100644
--- a/testing/tests/timezone/5032-get.test
+++ b/testing/tests/timezone/5032-get.test
@@ -6,3 +6,4 @@ URL=http://regression.host/tz.php?action=get&tzid=Europe/London&lang=en_UK&forma
HEAD
REPLACE=/LAST-MODIFIED:[0-9TZ]{16}/LAST-MODIFIED:all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
diff --git a/testing/tests/timezone/5033-get.result b/testing/tests/timezone/5033-get.result
new file mode 100644
index 00000000..41997ac0
--- /dev/null
+++ b/testing/tests/timezone/5033-get.result
@@ -0,0 +1,9 @@
+HTTP/1.1 403 Forbidden
+Date: Dow, 01 Jan 2000 00:00:00 GMT
+Content-Length: 148
+Content-Type: text/xml; charset="utf-8"
+
+
+
+ This server currently only supports text/calendar format.
+
\ No newline at end of file
diff --git a/testing/tests/timezone/5033-get.test b/testing/tests/timezone/5033-get.test
new file mode 100644
index 00000000..6ce91d3c
--- /dev/null
+++ b/testing/tests/timezone/5033-get.test
@@ -0,0 +1,9 @@
+#
+# Get timezone with invalid format
+#
+TYPE=GET
+URL=http://regression.host/tz.php?action=get&tzid=Pacific/Auckland&lang=pt_BR&format=text/html
+HEAD
+
+REPLACE=/LAST-MODIFIED:[0-9TZ]{16}/LAST-MODIFIED:all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
diff --git a/testing/tests/timezone/5034-get.result b/testing/tests/timezone/5034-get.result
new file mode 100644
index 00000000..0045a3e6
--- /dev/null
+++ b/testing/tests/timezone/5034-get.result
@@ -0,0 +1,5 @@
+HTTP/1.1 404 Not Found
+Date: Dow, 01 Jan 2000 00:00:00 GMT
+Content-Length: 0
+Content-Type: text/plain; charset="utf-8"
+
diff --git a/testing/tests/timezone/5034-get.test b/testing/tests/timezone/5034-get.test
new file mode 100644
index 00000000..4afee064
--- /dev/null
+++ b/testing/tests/timezone/5034-get.test
@@ -0,0 +1,9 @@
+#
+# Request bogus timezone that will never exist
+#
+TYPE=GET
+URL=http://regression.host/tz.php?action=get&tzid=US/Canada&lang=en_CA
+HEAD
+
+REPLACE=/LAST-MODIFIED:[0-9TZ]{16}/LAST-MODIFIED:all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
diff --git a/testing/tests/timezone/5040-expand.result b/testing/tests/timezone/5040-expand.result
index fe6c167f..e70636e3 100644
--- a/testing/tests/timezone/5040-expand.result
+++ b/testing/tests/timezone/5040-expand.result
@@ -1,7 +1,7 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Etag: "e87a687e5f1f3b83389ac9472aea42ed"
-Content-Length: 4042
+ETag: "Some good etag"
+Content-Length: 4134
Content-Type: application/xml; charset="utf-8"
@@ -12,133 +12,133 @@ Content-Type: application/xml; charset="utf-8"
Gregorian
NZST
- 20110402T150000Z
+ 2011-04-02T15:00:00Z
+13:00
+12:00
NZDT
- 20110924T140000Z
+ 2011-09-24T14:00:00Z
+12:00
+13:00
NZST
- 20120331T150000Z
+ 2012-03-31T15:00:00Z
+13:00
+12:00
NZDT
- 20120929T140000Z
+ 2012-09-29T14:00:00Z
+12:00
+13:00
NZST
- 20130406T150000Z
+ 2013-04-06T15:00:00Z
+13:00
+12:00
NZDT
- 20130928T140000Z
+ 2013-09-28T14:00:00Z
+12:00
+13:00
NZST
- 20140405T150000Z
+ 2014-04-05T15:00:00Z
+13:00
+12:00
NZDT
- 20140927T140000Z
+ 2014-09-27T14:00:00Z
+12:00
+13:00
NZST
- 20150404T150000Z
+ 2015-04-04T15:00:00Z
+13:00
+12:00
NZDT
- 20150926T140000Z
+ 2015-09-26T14:00:00Z
+12:00
+13:00
NZST
- 20160402T150000Z
+ 2016-04-02T15:00:00Z
+13:00
+12:00
NZDT
- 20160924T140000Z
+ 2016-09-24T14:00:00Z
+12:00
+13:00
NZST
- 20170401T150000Z
+ 2017-04-01T15:00:00Z
+13:00
+12:00
NZDT
- 20170923T140000Z
+ 2017-09-23T14:00:00Z
+12:00
+13:00
NZST
- 20180331T150000Z
+ 2018-03-31T15:00:00Z
+13:00
+12:00
NZDT
- 20180929T140000Z
+ 2018-09-29T14:00:00Z
+12:00
+13:00
NZST
- 20190406T150000Z
+ 2019-04-06T15:00:00Z
+13:00
+12:00
NZDT
- 20190928T140000Z
+ 2019-09-28T14:00:00Z
+12:00
+13:00
NZST
- 20200404T150000Z
+ 2020-04-04T15:00:00Z
+13:00
+12:00
NZDT
- 20200926T140000Z
+ 2020-09-26T14:00:00Z
+12:00
+13:00
NZST
- 20210403T150000Z
+ 2021-04-03T15:00:00Z
+13:00
+12:00
NZDT
- 20210925T140000Z
+ 2021-09-25T14:00:00Z
+12:00
+13:00
diff --git a/testing/tests/timezone/5040-expand.test b/testing/tests/timezone/5040-expand.test
index 13bfa860..791d3dd0 100644
--- a/testing/tests/timezone/5040-expand.test
+++ b/testing/tests/timezone/5040-expand.test
@@ -5,4 +5,5 @@ TYPE=GET
URL=http://regression.host/tz.php?action=expand&tzid=Pacific/Auckland
HEAD
-REPLACE=/dtstamp>[0-9TZ]{16}/dtstamp>all good/
+REPLACE=/dtstamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/dtstamp>all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
diff --git a/testing/tests/timezone/5041-expand.result b/testing/tests/timezone/5041-expand.result
index 74e64075..a3298a14 100644
--- a/testing/tests/timezone/5041-expand.result
+++ b/testing/tests/timezone/5041-expand.result
@@ -1,7 +1,7 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Etag: "60b52981cbe6fab393b6f40f24aec132"
-Content-Length: 4720
+ETag: "Some good etag"
+Content-Length: 4828
Content-Type: application/xml; charset="utf-8"
@@ -12,157 +12,157 @@ Content-Type: application/xml; charset="utf-8"
Gregorian
EDT
- 20090308T070000Z
+ 2009-03-08T07:00:00Z
-05:00
-04:00
EST
- 20091101T070000Z
+ 2009-11-01T07:00:00Z
-04:00
-05:00
EDT
- 20100314T070000Z
+ 2010-03-14T07:00:00Z
-05:00
-04:00
EST
- 20101107T070000Z
+ 2010-11-07T07:00:00Z
-04:00
-05:00
EDT
- 20110313T070000Z
+ 2011-03-13T07:00:00Z
-05:00
-04:00
EST
- 20111106T070000Z
+ 2011-11-06T07:00:00Z
-04:00
-05:00
EDT
- 20120311T070000Z
+ 2012-03-11T07:00:00Z
-05:00
-04:00
EST
- 20121104T070000Z
+ 2012-11-04T07:00:00Z
-04:00
-05:00
EDT
- 20130310T070000Z
+ 2013-03-10T07:00:00Z
-05:00
-04:00
EST
- 20131103T070000Z
+ 2013-11-03T07:00:00Z
-04:00
-05:00
EDT
- 20140309T070000Z
+ 2014-03-09T07:00:00Z
-05:00
-04:00
EST
- 20141102T070000Z
+ 2014-11-02T07:00:00Z
-04:00
-05:00
EDT
- 20150308T070000Z
+ 2015-03-08T07:00:00Z
-05:00
-04:00
EST
- 20151101T070000Z
+ 2015-11-01T07:00:00Z
-04:00
-05:00
EDT
- 20160313T070000Z
+ 2016-03-13T07:00:00Z
-05:00
-04:00
EST
- 20161106T070000Z
+ 2016-11-06T07:00:00Z
-04:00
-05:00
EDT
- 20170312T070000Z
+ 2017-03-12T07:00:00Z
-05:00
-04:00
EST
- 20171105T070000Z
+ 2017-11-05T07:00:00Z
-04:00
-05:00
EDT
- 20180311T070000Z
+ 2018-03-11T07:00:00Z
-05:00
-04:00
EST
- 20181104T070000Z
+ 2018-11-04T07:00:00Z
-04:00
-05:00
EDT
- 20190310T070000Z
+ 2019-03-10T07:00:00Z
-05:00
-04:00
EST
- 20191103T070000Z
+ 2019-11-03T07:00:00Z
-04:00
-05:00
EDT
- 20200308T070000Z
+ 2020-03-08T07:00:00Z
-05:00
-04:00
EST
- 20201101T070000Z
+ 2020-11-01T07:00:00Z
-04:00
-05:00
EDT
- 20210314T070000Z
+ 2021-03-14T07:00:00Z
-05:00
-04:00
EST
- 20211107T070000Z
+ 2021-11-07T07:00:00Z
-04:00
-05:00
diff --git a/testing/tests/timezone/5041-expand.test b/testing/tests/timezone/5041-expand.test
index 8ab553b4..f8e2a3b2 100644
--- a/testing/tests/timezone/5041-expand.test
+++ b/testing/tests/timezone/5041-expand.test
@@ -5,4 +5,6 @@ TYPE=GET
URL=http://regression.host/tz.php?action=expand&tzid=America/Indiana/Indianapolis&start=2009-01-01
HEAD
-REPLACE=/dtstamp>[0-9TZ]{16}/dtstamp>all good/
+REPLACE=/dtstamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/dtstamp>all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
+
diff --git a/testing/tests/timezone/5042-expand.result b/testing/tests/timezone/5042-expand.result
index ca0f8a8d..8156f1a9 100644
--- a/testing/tests/timezone/5042-expand.result
+++ b/testing/tests/timezone/5042-expand.result
@@ -1,7 +1,7 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Etag: "60b52981cbe6fab393b6f40f24aec132"
-Content-Length: 1108
+ETag: "Some good etag"
+Content-Length: 1132
Content-Type: application/xml; charset="utf-8"
@@ -12,31 +12,31 @@ Content-Type: application/xml; charset="utf-8"
Gregorian
EDT
- 20110313T070000Z
+ 2011-03-13T07:00:00Z
-05:00
-04:00
EST
- 20111106T070000Z
+ 2011-11-06T07:00:00Z
-04:00
-05:00
EDT
- 20120311T070000Z
+ 2012-03-11T07:00:00Z
-05:00
-04:00
EST
- 20121104T070000Z
+ 2012-11-04T07:00:00Z
-04:00
-05:00
EDT
- 20130310T070000Z
+ 2013-03-10T07:00:00Z
-05:00
-04:00
diff --git a/testing/tests/timezone/5042-expand.test b/testing/tests/timezone/5042-expand.test
index e576e5b1..d275dcd6 100644
--- a/testing/tests/timezone/5042-expand.test
+++ b/testing/tests/timezone/5042-expand.test
@@ -5,4 +5,6 @@ TYPE=GET
URL=http://regression.host/tz.php?action=expand&tzid=America/Indiana/Indianapolis&end=2013-07-01
HEAD
-REPLACE=/dtstamp>[0-9TZ]{16}/dtstamp>all good/
+REPLACE=/dtstamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/dtstamp>all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
+
diff --git a/testing/tests/timezone/5043-expand.result b/testing/tests/timezone/5043-expand.result
index 1aeac8a0..70e5e037 100644
--- a/testing/tests/timezone/5043-expand.result
+++ b/testing/tests/timezone/5043-expand.result
@@ -1,7 +1,7 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
-Etag: "60b52981cbe6fab393b6f40f24aec132"
-Content-Length: 1968
+ETag: "Some good etag"
+Content-Length: 2012
Content-Type: application/xml; charset="utf-8"
@@ -12,61 +12,61 @@ Content-Type: application/xml; charset="utf-8"
Gregorian
EDT
- 20140309T070000Z
+ 2014-03-09T07:00:00Z
-05:00
-04:00
EST
- 20141102T070000Z
+ 2014-11-02T07:00:00Z
-04:00
-05:00
EDT
- 20150308T070000Z
+ 2015-03-08T07:00:00Z
-05:00
-04:00
EST
- 20151101T070000Z
+ 2015-11-01T07:00:00Z
-04:00
-05:00
EDT
- 20160313T070000Z
+ 2016-03-13T07:00:00Z
-05:00
-04:00
EST
- 20161106T070000Z
+ 2016-11-06T07:00:00Z
-04:00
-05:00
EDT
- 20170312T070000Z
+ 2017-03-12T07:00:00Z
-05:00
-04:00
EST
- 20171105T070000Z
+ 2017-11-05T07:00:00Z
-04:00
-05:00
EDT
- 20180311T070000Z
+ 2018-03-11T07:00:00Z
-05:00
-04:00
EST
- 20181104T070000Z
+ 2018-11-04T07:00:00Z
-04:00
-05:00
diff --git a/testing/tests/timezone/5043-expand.test b/testing/tests/timezone/5043-expand.test
index f45561a6..ccda7f73 100644
--- a/testing/tests/timezone/5043-expand.test
+++ b/testing/tests/timezone/5043-expand.test
@@ -5,4 +5,6 @@ TYPE=GET
URL=http://regression.host/tz.php?action=expand&tzid=America/Indiana/Indianapolis&start=2014-01-01&end=2018-12-31
HEAD
-REPLACE=/dtstamp>[0-9TZ]{16}/dtstamp>all good/
+REPLACE=/dtstamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z/dtstamp>all good/
+REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
+