summaryrefslogtreecommitdiff
path: root/ext/date/tests
diff options
context:
space:
mode:
authorCraig Duncan <duncan3dc@php.net>2019-05-30 18:55:55 +0100
committerCraig Duncan <duncan3dc@php.net>2019-05-30 18:55:55 +0100
commit370997fb5d2d6d2248064a6047d25d7794118470 (patch)
tree8f5d84063ebb9c0ef9f3c3e4670bd254caea30e9 /ext/date/tests
parent61a38bb2743ef2e76278aeeec9ec486b75e94485 (diff)
parent8b53c7232e2dae1af675e9e280e7e89f2758bda1 (diff)
downloadphp-git-370997fb5d2d6d2248064a6047d25d7794118470.tar.gz
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2: Add a test for bug #65672 Ensure the internal properties cannot be overwritten
Diffstat (limited to 'ext/date/tests')
-rw-r--r--ext/date/tests/DatePeriod_properties2.phpt24
-rw-r--r--ext/date/tests/bug65672.phpt44
2 files changed, 56 insertions, 12 deletions
diff --git a/ext/date/tests/DatePeriod_properties2.phpt b/ext/date/tests/DatePeriod_properties2.phpt
index 01858e68d4..044746c024 100644
--- a/ext/date/tests/DatePeriod_properties2.phpt
+++ b/ext/date/tests/DatePeriod_properties2.phpt
@@ -32,15 +32,15 @@ foreach ($properties as $property) {
?>
--EXPECT--
-Writing to DatePeriod properties is unsupported
-Retrieval of DatePeriod properties for modification is unsupported
-Writing to DatePeriod properties is unsupported
-Retrieval of DatePeriod properties for modification is unsupported
-Writing to DatePeriod properties is unsupported
-Retrieval of DatePeriod properties for modification is unsupported
-Writing to DatePeriod properties is unsupported
-Retrieval of DatePeriod properties for modification is unsupported
-Writing to DatePeriod properties is unsupported
-Retrieval of DatePeriod properties for modification is unsupported
-Writing to DatePeriod properties is unsupported
-Retrieval of DatePeriod properties for modification is unsupported
+Writing to DatePeriod->recurrences is unsupported
+Retrieval of DatePeriod->recurrences for modification is unsupported
+Writing to DatePeriod->include_start_date is unsupported
+Retrieval of DatePeriod->include_start_date for modification is unsupported
+Writing to DatePeriod->start is unsupported
+Retrieval of DatePeriod->start for modification is unsupported
+Writing to DatePeriod->current is unsupported
+Retrieval of DatePeriod->current for modification is unsupported
+Writing to DatePeriod->end is unsupported
+Retrieval of DatePeriod->end for modification is unsupported
+Writing to DatePeriod->interval is unsupported
+Retrieval of DatePeriod->interval for modification is unsupported
diff --git a/ext/date/tests/bug65672.phpt b/ext/date/tests/bug65672.phpt
new file mode 100644
index 0000000000..a84cff69ae
--- /dev/null
+++ b/ext/date/tests/bug65672.phpt
@@ -0,0 +1,44 @@
+--TEST--
+Test for bug #65672: Broken classes inherited from DatePeriod
+--INI--
+date.timezone=UTC
+--FILE--
+<?php
+
+$interval = new DateInterval('P1D');
+$period = new class(new DateTime, $interval, new DateTime) extends DatePeriod {
+ public $extra = "stuff";
+};
+
+var_dump($period->extra);
+$period->extra = "modified";
+var_dump($period->extra);
+
+# Ensure we can modify properties (retrieve for write)
+$period->extra = [];
+$period->extra[] = "array";
+var_dump($period->extra);
+
+var_dump(isset($period->dynamic1));
+$period->dynamic1 = "dynamic";
+var_dump($period->dynamic1);
+
+# Ensure we can modify properties (retrieve for write)
+$period->dynamic2 = [];
+$period->dynamic2[] = "array";
+var_dump($period->dynamic2);
+
+?>
+--EXPECT--
+string(5) "stuff"
+string(8) "modified"
+array(1) {
+ [0]=>
+ string(5) "array"
+}
+bool(false)
+string(7) "dynamic"
+array(1) {
+ [0]=>
+ string(5) "array"
+}