summaryrefslogtreecommitdiff
path: root/ext/spl/tests/iterator_021.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/iterator_021.phpt')
-rwxr-xr-xext/spl/tests/iterator_021.phpt185
1 files changed, 0 insertions, 185 deletions
diff --git a/ext/spl/tests/iterator_021.phpt b/ext/spl/tests/iterator_021.phpt
deleted file mode 100755
index 115461d053..0000000000
--- a/ext/spl/tests/iterator_021.phpt
+++ /dev/null
@@ -1,185 +0,0 @@
---TEST--
-SPL: RecursiveIteratorIterator and hasChildren
---FILE--
-<?php
-
-class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator
-{
- function hasChildren()
- {
- return is_array($this->current());
- }
-
- function getChildren()
- {
- echo __METHOD__ . "\n";
- return new RecursiveArrayIterator($this->current());
- }
-
- function valid()
- {
- if (!parent::valid())
- {
- echo __METHOD__ . " = false\n";
- return false;
- }
- else
- {
- return true;
- }
- }
-}
-
-class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
-{
- private $max_depth;
- private $over = 0;
- private $skip = false;
-
- function __construct($it, $max_depth)
- {
- $this->max_depth = $max_depth;
- parent::__construct($it);
- }
-
- function rewind()
- {
- echo __METHOD__ . "\n";
- $this->skip = false;
- parent::rewind();
- }
-
- function valid()
- {
- echo __METHOD__ . "\n";
- if ($this->skip)
- {
- $this->skip = false;
- $this->next();
- }
- return parent::valid();
- }
-
- function current()
- {
- echo __METHOD__ . "\n";
- return parent::current();
- }
-
- function key()
- {
- echo __METHOD__ . "\n";
- return parent::key();
- }
-
- function next()
- {
- echo __METHOD__ . "\n";
- parent::next();
- }
-
- function callHasChildren()
- {
- $this->skip = false;
- $has = parent::callHasChildren();
- $res = $this->getDepth() < $this->max_depth && $has;
- echo __METHOD__ . "(".$this->getDepth().") = ".($res?"yes":"no")."/".($has?"yes":"no")."\n";
- if ($has && !$res)
- {
- $this->over++;
- if ($this->over == 2) {
- $this->skip = true;
- }
- }
- return $res;
- }
-
- function beginChildren()
- {
- echo __METHOD__ . "(".$this->getDepth().")\n";
- }
-
- function endChildren()
- {
- echo __METHOD__ . "(".$this->getDepth().")\n";
- }
-}
-
-foreach(new RecursiveArrayIteratorIterator(new RecursiveArrayIterator(array("a", array("ba", array("bba", "bbb"), array(array("bcaa"), array("bcba"))), array("ca"), "d")), 2) as $k=>$v)
-{
- if (is_array($v)) $v = join('',$v);
- echo "$k=>$v\n";
-}
-?>
-===DONE===
-<?php exit(0); ?>
---EXPECT--
-RecursiveArrayIteratorIterator::rewind
-RecursiveArrayIteratorIterator::callHasChildren(0) = no/no
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIteratorIterator::current
-RecursiveArrayIteratorIterator::key
-0=>a
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIteratorIterator::callHasChildren(0) = yes/yes
-RecursiveArrayIterator::getChildren
-RecursiveArrayIteratorIterator::beginChildren(1)
-RecursiveArrayIteratorIterator::callHasChildren(1) = no/no
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIteratorIterator::current
-RecursiveArrayIteratorIterator::key
-0=>ba
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIteratorIterator::callHasChildren(1) = yes/yes
-RecursiveArrayIterator::getChildren
-RecursiveArrayIteratorIterator::beginChildren(2)
-RecursiveArrayIteratorIterator::callHasChildren(2) = no/no
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIteratorIterator::current
-RecursiveArrayIteratorIterator::key
-0=>bba
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIteratorIterator::callHasChildren(2) = no/no
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIteratorIterator::current
-RecursiveArrayIteratorIterator::key
-1=>bbb
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIterator::valid = false
-RecursiveArrayIteratorIterator::endChildren(2)
-RecursiveArrayIteratorIterator::callHasChildren(1) = yes/yes
-RecursiveArrayIterator::getChildren
-RecursiveArrayIteratorIterator::beginChildren(2)
-RecursiveArrayIteratorIterator::callHasChildren(2) = no/yes
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIteratorIterator::current
-RecursiveArrayIteratorIterator::key
-0=>bcaa
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIteratorIterator::callHasChildren(2) = no/yes
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIterator::valid = false
-RecursiveArrayIteratorIterator::endChildren(2)
-RecursiveArrayIterator::valid = false
-RecursiveArrayIteratorIterator::endChildren(1)
-RecursiveArrayIteratorIterator::callHasChildren(0) = yes/yes
-RecursiveArrayIterator::getChildren
-RecursiveArrayIteratorIterator::beginChildren(1)
-RecursiveArrayIteratorIterator::callHasChildren(1) = no/no
-RecursiveArrayIteratorIterator::current
-RecursiveArrayIteratorIterator::key
-0=>ca
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIterator::valid = false
-RecursiveArrayIteratorIterator::endChildren(1)
-RecursiveArrayIteratorIterator::callHasChildren(0) = no/no
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIteratorIterator::current
-RecursiveArrayIteratorIterator::key
-3=>d
-RecursiveArrayIteratorIterator::next
-RecursiveArrayIterator::valid = false
-RecursiveArrayIteratorIterator::valid
-RecursiveArrayIterator::valid = false
-===DONE===