summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-03-18 19:59:08 +0100
committerNikita Popov <nikic@php.net>2016-03-18 19:59:08 +0100
commita2522efa9ff409c2cbce7111735e0982e9cad1e6 (patch)
tree8ae8264497b77366d6a5f9dc4b470ae065aba6c6
parent094c80837440963872368e81188b58d7c7d214fa (diff)
downloadphp-git-a2522efa9ff409c2cbce7111735e0982e9cad1e6.tar.gz
Add extra ArrayObject::sort() test
-rw-r--r--ext/spl/tests/ArrayObject_sort_different_backing_storage.phpt72
1 files changed, 72 insertions, 0 deletions
diff --git a/ext/spl/tests/ArrayObject_sort_different_backing_storage.phpt b/ext/spl/tests/ArrayObject_sort_different_backing_storage.phpt
new file mode 100644
index 0000000000..0b9bbd6330
--- /dev/null
+++ b/ext/spl/tests/ArrayObject_sort_different_backing_storage.phpt
@@ -0,0 +1,72 @@
+--TEST--
+Test sorting of various ArrayObject backing storage
+--FILE--
+<?php
+
+$obj = (object)['a' => 2, 'b' => 1];
+$ao = new ArrayObject($obj);
+$ao->uasort(function($a, $b) { return $a <=> $b; });
+var_dump($ao);
+
+$ao2 = new ArrayObject($ao);
+$ao2->uasort(function($a, $b) { return $b <=> $a; });
+var_dump($ao2);
+
+$ao3 = new ArrayObject();
+$ao3->exchangeArray($ao3);
+$ao3->a = 2;
+$ao3->b = 1;
+$ao3->uasort(function($a, $b) { return $a <=> $b; });
+var_dump($ao3);
+
+$ao4 = new ArrayObject([]);
+$ao4->uasort(function($a, $b) { return $a <=> $b; });
+var_dump($ao4);
+
+$ao5 = new ArrayObject(['a' => 2, 'b' => 1]);
+$ao5->uasort(function($a, $b) { return $a <=> $b; });
+var_dump($ao5);
+
+?>
+--EXPECT--
+object(ArrayObject)#2 (1) {
+ ["storage":"ArrayObject":private]=>
+ object(stdClass)#1 (2) {
+ ["b"]=>
+ int(1)
+ ["a"]=>
+ int(2)
+ }
+}
+object(ArrayObject)#3 (1) {
+ ["storage":"ArrayObject":private]=>
+ object(ArrayObject)#2 (1) {
+ ["storage":"ArrayObject":private]=>
+ object(stdClass)#1 (2) {
+ ["a"]=>
+ int(2)
+ ["b"]=>
+ int(1)
+ }
+ }
+}
+object(ArrayObject)#4 (2) {
+ ["b"]=>
+ int(1)
+ ["a"]=>
+ int(2)
+}
+object(ArrayObject)#5 (1) {
+ ["storage":"ArrayObject":private]=>
+ array(0) {
+ }
+}
+object(ArrayObject)#6 (1) {
+ ["storage":"ArrayObject":private]=>
+ array(2) {
+ ["b"]=>
+ int(1)
+ ["a"]=>
+ int(2)
+ }
+}