diff options
author | Nikita Popov <nikic@php.net> | 2016-03-18 19:59:08 +0100 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2016-03-18 19:59:08 +0100 |
commit | a2522efa9ff409c2cbce7111735e0982e9cad1e6 (patch) | |
tree | 8ae8264497b77366d6a5f9dc4b470ae065aba6c6 | |
parent | 094c80837440963872368e81188b58d7c7d214fa (diff) | |
download | php-git-a2522efa9ff409c2cbce7111735e0982e9cad1e6.tar.gz |
Add extra ArrayObject::sort() test
-rw-r--r-- | ext/spl/tests/ArrayObject_sort_different_backing_storage.phpt | 72 |
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) + } +} |