From 05b9feb85f391e8e6a6e8a1ad74364965e83da01 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 17 May 2009 15:21:45 +0000 Subject: [PATCH] - New tests (testfest LondonUG) --- ext/spl/tests/heap_corruption.phpt | 62 +++++++++++++++++++ ext/spl/tests/heap_current_variation_001.phpt | 22 +++++++ ext/spl/tests/heap_isempty_variation_001.phpt | 16 +++++ ext/spl/tests/heap_it_current_empty.phpt | 12 ++++ ext/spl/tests/heap_top_variation_001.phpt | 14 +++++ ext/spl/tests/heap_top_variation_002.phpt | 31 ++++++++++ ext/spl/tests/heap_top_variation_003.phpt | 16 +++++ ext/spl/tests/iterator_count.phpt | 26 ++++++++ ext/spl/tests/iterator_to_array.phpt | 25 ++++++++ ext/spl/tests/limititerator_seek.phpt | 18 ++++++ ext/spl/tests/pqueue_compare_basic.phpt | 19 ++++++ ext/spl/tests/pqueue_compare_error.phpt | 19 ++++++ ext/spl/tests/pqueue_current_error.phpt | 12 ++++ ...recursive_tree_iterator_setprefixpart.phpt | 32 ++++++++++ ...iteratoriterator_beginiteration_basic.phpt | 32 ++++++++++ ...veiteratoriterator_enditeration_basic.phpt | 32 ++++++++++ ...iteratoriterator_getsubiterator_basic.phpt | 20 ++++++ ...iteratoriterator_getsubiterator_error.phpt | 15 +++++ ...atoriterator_getsubiterator_variation.phpt | 42 +++++++++++++ ...iterator_getsubiterator_variation_002.phpt | 20 ++++++ ...iterator_getsubiterator_variation_003.phpt | 42 +++++++++++++ ...iveiteratoriterator_nextelement_basic.phpt | 39 ++++++++++++ ext/spl/tests/regexiterator_getpregflags.phpt | 33 ++++++++++ .../regexiterator_setflags_exception.phpt | 35 +++++++++++ ext/spl/tests/regexiterator_setpregflags.phpt | 34 ++++++++++ .../regexiterator_setpregflags_exception.phpt | 36 +++++++++++ ...pl_caching_iterator_constructor_flags.phpt | 25 ++++++++ .../spl_cachingiterator___toString_basic.phpt | 16 +++++ .../spl_cachingiterator_setFlags_basic.phpt | 16 +++++ .../spl_fileinfo_getlinktarget_basic.phpt | 22 +++++++ ext/spl/tests/spl_heap_count_basic.phpt | 35 +++++++++++ ext/spl/tests/spl_heap_count_error.phpt | 12 ++++ .../spl_heap_extract_parameter_error.phpt | 27 ++++++++ ext/spl/tests/spl_heap_insert_basic.phpt | 20 ++++++ ext/spl/tests/spl_heap_is_empty_basic.phpt | 31 ++++++++++ ext/spl/tests/spl_heap_isempty.phpt | 21 +++++++ ext/spl/tests/spl_heap_iteration_error.phpt | 53 ++++++++++++++++ ..._heap_recoverfromcorruption_arguments.phpt | 15 +++++ ext/spl/tests/spl_iterator_apply_error.phpt | 26 ++++++++ .../tests/spl_iterator_apply_error_001.phpt | 20 ++++++ .../spl_iterator_caching_count_basic.phpt | 21 +++++++ .../spl_iterator_caching_count_error.phpt | 21 +++++++ .../spl_iterator_caching_getcache_error.phpt | 21 +++++++ .../tests/spl_iterator_getcallchildren.phpt | 39 ++++++++++++ .../spl_iterator_iterator_constructor.phpt | 30 +++++++++ ..._iterator_recursive_getiterator_error.phpt | 16 +++++ .../tests/spl_iterator_to_array_basic.phpt | 13 ++++ .../tests/spl_iterator_to_array_error.phpt | 33 ++++++++++ .../spl_limit_iterator_check_limits.phpt | 37 +++++++++++ ext/spl/tests/spl_maxheap_compare_basic.phpt | 22 +++++++ ext/spl/tests/spl_minheap_compare_error.phpt | 31 ++++++++++ ext/spl/tests/spl_pq_top_basic.phpt | 42 +++++++++++++ ext/spl/tests/spl_pq_top_error_args.phpt | 12 ++++ ext/spl/tests/spl_pq_top_error_corrupt.phpt | 38 ++++++++++++ ext/spl/tests/spl_pq_top_error_empty.phpt | 19 ++++++ ..._priorityqeue_insert_two_params_error.phpt | 31 ++++++++++ ...rIterator_setMaxDepth_parameter_count.phpt | 28 +++++++++ ..._recursive_iterator_iterator_key_case.phpt | 33 ++++++++++ ext/spl/tests/splpriorityqueue_extract.phpt | 19 ++++++ .../splpriorityqueue_setextractflags.phpt | 17 +++++ 60 files changed, 1566 insertions(+) create mode 100644 ext/spl/tests/heap_corruption.phpt create mode 100644 ext/spl/tests/heap_current_variation_001.phpt create mode 100644 ext/spl/tests/heap_isempty_variation_001.phpt create mode 100644 ext/spl/tests/heap_it_current_empty.phpt create mode 100644 ext/spl/tests/heap_top_variation_001.phpt create mode 100644 ext/spl/tests/heap_top_variation_002.phpt create mode 100644 ext/spl/tests/heap_top_variation_003.phpt create mode 100644 ext/spl/tests/iterator_count.phpt create mode 100644 ext/spl/tests/iterator_to_array.phpt create mode 100644 ext/spl/tests/limititerator_seek.phpt create mode 100644 ext/spl/tests/pqueue_compare_basic.phpt create mode 100644 ext/spl/tests/pqueue_compare_error.phpt create mode 100644 ext/spl/tests/pqueue_current_error.phpt create mode 100644 ext/spl/tests/recursive_tree_iterator_setprefixpart.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_beginiteration_basic.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_enditeration_basic.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_getsubiterator_basic.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_getsubiterator_error.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_002.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_003.phpt create mode 100644 ext/spl/tests/recursiveiteratoriterator_nextelement_basic.phpt create mode 100644 ext/spl/tests/regexiterator_getpregflags.phpt create mode 100644 ext/spl/tests/regexiterator_setflags_exception.phpt create mode 100644 ext/spl/tests/regexiterator_setpregflags.phpt create mode 100644 ext/spl/tests/regexiterator_setpregflags_exception.phpt create mode 100644 ext/spl/tests/spl_caching_iterator_constructor_flags.phpt create mode 100644 ext/spl/tests/spl_cachingiterator___toString_basic.phpt create mode 100644 ext/spl/tests/spl_cachingiterator_setFlags_basic.phpt create mode 100755 ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt create mode 100644 ext/spl/tests/spl_heap_count_basic.phpt create mode 100644 ext/spl/tests/spl_heap_count_error.phpt create mode 100644 ext/spl/tests/spl_heap_extract_parameter_error.phpt create mode 100644 ext/spl/tests/spl_heap_insert_basic.phpt create mode 100644 ext/spl/tests/spl_heap_is_empty_basic.phpt create mode 100644 ext/spl/tests/spl_heap_isempty.phpt create mode 100644 ext/spl/tests/spl_heap_iteration_error.phpt create mode 100644 ext/spl/tests/spl_heap_recoverfromcorruption_arguments.phpt create mode 100755 ext/spl/tests/spl_iterator_apply_error.phpt create mode 100755 ext/spl/tests/spl_iterator_apply_error_001.phpt create mode 100644 ext/spl/tests/spl_iterator_caching_count_basic.phpt create mode 100644 ext/spl/tests/spl_iterator_caching_count_error.phpt create mode 100644 ext/spl/tests/spl_iterator_caching_getcache_error.phpt create mode 100644 ext/spl/tests/spl_iterator_getcallchildren.phpt create mode 100644 ext/spl/tests/spl_iterator_iterator_constructor.phpt create mode 100644 ext/spl/tests/spl_iterator_recursive_getiterator_error.phpt create mode 100644 ext/spl/tests/spl_iterator_to_array_basic.phpt create mode 100755 ext/spl/tests/spl_iterator_to_array_error.phpt create mode 100644 ext/spl/tests/spl_limit_iterator_check_limits.phpt create mode 100644 ext/spl/tests/spl_maxheap_compare_basic.phpt create mode 100644 ext/spl/tests/spl_minheap_compare_error.phpt create mode 100644 ext/spl/tests/spl_pq_top_basic.phpt create mode 100644 ext/spl/tests/spl_pq_top_error_args.phpt create mode 100644 ext/spl/tests/spl_pq_top_error_corrupt.phpt create mode 100644 ext/spl/tests/spl_pq_top_error_empty.phpt create mode 100644 ext/spl/tests/spl_priorityqeue_insert_two_params_error.phpt create mode 100644 ext/spl/tests/spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt create mode 100644 ext/spl/tests/spl_recursive_iterator_iterator_key_case.phpt create mode 100644 ext/spl/tests/splpriorityqueue_extract.phpt create mode 100644 ext/spl/tests/splpriorityqueue_setextractflags.phpt diff --git a/ext/spl/tests/heap_corruption.phpt b/ext/spl/tests/heap_corruption.phpt new file mode 100644 index 0000000000..284ee1db81 --- /dev/null +++ b/ext/spl/tests/heap_corruption.phpt @@ -0,0 +1,62 @@ +--TEST-- +SPL: SplHeap - heap corruption via compare exception (with top element deletion) +--CREDITS-- +Mike Sullivan +#TestFest 2009 (London) +--FILE-- +allow_compare == true) + { + if ($v1 > $v2) + { + return 1; + } + else if ($v1 < $v2) + { + return -1; + } + else + { + return 0; + } + } + else + { + throw new Exception('Compare exception'); + } + } +} + +$heap = new myHeap(); +$heap->insert(1); +$heap->insert(2); +$heap->insert(3); +$heap->insert(4); + +$heap->allow_compare = false; + +try { + $heap->extract(); +} +catch (Exception $e) { + echo "Compare Exception: " . $e->getMessage() . PHP_EOL; +} + +try { + $heap->top(); +} +catch (Exception $e) { + echo "Corruption Exception: " . $e->getMessage() . PHP_EOL; +} + +?> +--EXPECT-- +Compare Exception: Compare exception +Corruption Exception: Heap is corrupted, heap properties are no longer ensured. \ No newline at end of file diff --git a/ext/spl/tests/heap_current_variation_001.phpt b/ext/spl/tests/heap_current_variation_001.phpt new file mode 100644 index 0000000000..eb6df2b88e --- /dev/null +++ b/ext/spl/tests/heap_current_variation_001.phpt @@ -0,0 +1,22 @@ +--TEST-- +SPL: SplHeap::current - get current value from empty heap +--CREDITS-- +Mike Sullivan +#TestFest 2009 (London) +--FILE-- +current()); + +?> +--EXPECT-- +NULL \ No newline at end of file diff --git a/ext/spl/tests/heap_isempty_variation_001.phpt b/ext/spl/tests/heap_isempty_variation_001.phpt new file mode 100644 index 0000000000..dac470fccf --- /dev/null +++ b/ext/spl/tests/heap_isempty_variation_001.phpt @@ -0,0 +1,16 @@ +--TEST-- +SPL: SplHeap: isEmpty argument variation. +--FILE-- +isEmpty(1); +?> +--EXPECTF-- +Warning: SplHeap::isEmpty() expects exactly 0 parameters, 1 given in %s diff --git a/ext/spl/tests/heap_it_current_empty.phpt b/ext/spl/tests/heap_it_current_empty.phpt new file mode 100644 index 0000000000..24230dbeeb --- /dev/null +++ b/ext/spl/tests/heap_it_current_empty.phpt @@ -0,0 +1,12 @@ +--TEST-- +SPL: SplHeap current, check looping through an empty heap gives you no values +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- + +--EXPECT-- diff --git a/ext/spl/tests/heap_top_variation_001.phpt b/ext/spl/tests/heap_top_variation_001.phpt new file mode 100644 index 0000000000..9953cf9ade --- /dev/null +++ b/ext/spl/tests/heap_top_variation_001.phpt @@ -0,0 +1,14 @@ +--TEST-- +SPL: SplHeap top, illegal number of args +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +insert(5); +// top doesn't take any args, lets see what happens if we give it one +$h->top('bogus'); +?> +--EXPECTF-- +Warning: SplHeap::top() expects exactly 0 parameters, 1 given in %s diff --git a/ext/spl/tests/heap_top_variation_002.phpt b/ext/spl/tests/heap_top_variation_002.phpt new file mode 100644 index 0000000000..cd6a8d0ad9 --- /dev/null +++ b/ext/spl/tests/heap_top_variation_002.phpt @@ -0,0 +1,31 @@ +--TEST-- +SPL: SplHeap top, corrupted heap +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +insert(4); +try { + $h->insert(5); +} catch (Exception $e) {} + +// call top, should fail with corrupted heap +try { + $h->top(); +} catch (Exception $e) { + echo $e->getMessage(); +} +?> +--EXPECTF-- +Heap is corrupted, heap properties are no longer ensured. diff --git a/ext/spl/tests/heap_top_variation_003.phpt b/ext/spl/tests/heap_top_variation_003.phpt new file mode 100644 index 0000000000..7a91a9c000 --- /dev/null +++ b/ext/spl/tests/heap_top_variation_003.phpt @@ -0,0 +1,16 @@ +--TEST-- +SPL: SplHeap top of empty heap +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +top(); +} catch (Exception $e) { + echo $e->getMessage(); +} +?> +--EXPECTF-- +Can't peek at an empty heap diff --git a/ext/spl/tests/iterator_count.phpt b/ext/spl/tests/iterator_count.phpt new file mode 100644 index 0000000000..9aa4e1197c --- /dev/null +++ b/ext/spl/tests/iterator_count.phpt @@ -0,0 +1,26 @@ +--TEST-- +SPL: iterator_count() exceptions test +--CREDITS-- +Lance Kesson jac_kesson@hotmail.com +#testfest London 2009-05-09 +--FILE-- + +--EXPECTF-- +Warning: iterator_count() expects exactly 1 parameter, 0 given in %s + +Warning: iterator_count() expects exactly 1 parameter, 2 given in %s + +Catchable fatal error: Argument 1 passed to iterator_count() must implement interface Traversable, %unicode_string_optional% given %s diff --git a/ext/spl/tests/iterator_to_array.phpt b/ext/spl/tests/iterator_to_array.phpt new file mode 100644 index 0000000000..958d370cca --- /dev/null +++ b/ext/spl/tests/iterator_to_array.phpt @@ -0,0 +1,25 @@ +--TEST-- +SPL: iterator_to_array() exceptions test +--CREDITS-- +Lance Kesson jac_kesson@hotmail.com +#testfest London 2009-05-09 +--FILE-- + +--EXPECTF-- +Warning: iterator_to_array() expects at least 1 parameter, 0 given in %s + +Warning: iterator_to_array() expects at most 2 parameters, 3 given in %s + +Catchable fatal error: Argument 1 passed to iterator_to_array() must implement interface Traversable, %unicode_string_optional% given %s diff --git a/ext/spl/tests/limititerator_seek.phpt b/ext/spl/tests/limititerator_seek.phpt new file mode 100644 index 0000000000..a59a49bee8 --- /dev/null +++ b/ext/spl/tests/limititerator_seek.phpt @@ -0,0 +1,18 @@ +--TEST-- +SPL: LimitIterator seek() arguments +--CREDITS-- +Roshan Abraham (roshanabrahams@gmail.com) +TestFest London May 2009 +--FILE-- +seek(1,1); // Should throw a warning as seek expects only 1 argument + +?> +--EXPECTF-- + +Warning: LimitIterator::seek() expects exactly 1 parameter, 2 given in %s on line %d + diff --git a/ext/spl/tests/pqueue_compare_basic.phpt b/ext/spl/tests/pqueue_compare_basic.phpt new file mode 100644 index 0000000000..1544add469 --- /dev/null +++ b/ext/spl/tests/pqueue_compare_basic.phpt @@ -0,0 +1,19 @@ +--TEST-- +SPL: SplPriorityQueue: test compare +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +compare(4, 5) < 0); +var_dump($h->compare(5, 5) == 0); +var_dump($h->compare(5, 4) > 0); +?> +===DONE=== + +--EXPECTF-- +bool(true) +bool(true) +bool(true) +===DONE=== diff --git a/ext/spl/tests/pqueue_compare_error.phpt b/ext/spl/tests/pqueue_compare_error.phpt new file mode 100644 index 0000000000..610be2a569 --- /dev/null +++ b/ext/spl/tests/pqueue_compare_error.phpt @@ -0,0 +1,19 @@ +--TEST-- +SPL: Priority queue compare, illegal number of args +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +compare(); +$h->compare(1); +$h->compare(1, 2, 3); +?> +--EXPECTF-- +Warning: SplPriorityQueue::compare() expects exactly 2 parameters, 0 given in %s + +Warning: SplPriorityQueue::compare() expects exactly 2 parameters, 1 given in %s + +Warning: SplPriorityQueue::compare() expects exactly 2 parameters, 3 given in %s + diff --git a/ext/spl/tests/pqueue_current_error.phpt b/ext/spl/tests/pqueue_current_error.phpt new file mode 100644 index 0000000000..7fdf0af5e4 --- /dev/null +++ b/ext/spl/tests/pqueue_current_error.phpt @@ -0,0 +1,12 @@ +--TEST-- +SPL: SplPriorityQueue current on empty queue should give null +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +current()); +?> +--EXPECT-- +NULL diff --git a/ext/spl/tests/recursive_tree_iterator_setprefixpart.phpt b/ext/spl/tests/recursive_tree_iterator_setprefixpart.phpt new file mode 100644 index 0000000000..81c853f307 --- /dev/null +++ b/ext/spl/tests/recursive_tree_iterator_setprefixpart.phpt @@ -0,0 +1,32 @@ +--TEST-- +SPL: RecursiveTreeIterator::setPrefixPart() Test arguments +--CREDITS-- +Roshan Abraham (roshanabrahams@gmail.com) +TestFest London May 2009 +--FILE-- + array("b") +); + +$it = new RecursiveArrayIterator($arr); +$it = new RecursiveTreeIterator($it); + +$it->setPrefixPart(1); // Should throw a warning as setPrefixPart expects 2 arguments + +$a = new stdClass(); +$it->setPrefixPart($a, 1); // Should throw a warning as setPrefixPart expects argument 1 to be long integer + +$it->setPrefixPart(1, $a); // Should throw a warning as setPrefixPart expects argument 2 to be a string + + +?> +===DONE=== +--EXPECTF-- +Warning: RecursiveTreeIterator::setPrefixPart() expects exactly 2 parameters, 1 given in %s on line %d + +Warning: RecursiveTreeIterator::setPrefixPart() expects parameter 1 to be long, object given in %s on line %d + +Warning: RecursiveTreeIterator::setPrefixPart() expects parameter 2 to be %binary_string_optional%, object given in %s on line %d +===DONE=== diff --git a/ext/spl/tests/recursiveiteratoriterator_beginiteration_basic.phpt b/ext/spl/tests/recursiveiteratoriterator_beginiteration_basic.phpt new file mode 100644 index 0000000000..c9476e0e56 --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_beginiteration_basic.phpt @@ -0,0 +1,32 @@ +--TEST-- +SPL: RecursiveIteratorIterator::beginIteration() is called by RecursiveIteratorIterator::rewind() +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- +next(); + } +} +$iterator = new SkipsFirstElementRecursiveIteratorIterator($sub_iterator); +foreach ($iterator as $element) { + var_dump($element); +} +?> +--EXPECT-- +int(1) +int(2) +::beginIteration() was invoked +int(2) + diff --git a/ext/spl/tests/recursiveiteratoriterator_enditeration_basic.phpt b/ext/spl/tests/recursiveiteratoriterator_enditeration_basic.phpt new file mode 100644 index 0000000000..0355401f27 --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_enditeration_basic.phpt @@ -0,0 +1,32 @@ +--TEST-- +SPL: RecursiveIteratorIterator::endIteration() is called when ::valid() first returns false +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- + +--EXPECT-- +int(1) +int(2) +int(1) +int(2) +::endIteration() was invoked + diff --git a/ext/spl/tests/recursiveiteratoriterator_getsubiterator_basic.phpt b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_basic.phpt new file mode 100644 index 0000000000..5d1c958d92 --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_basic.phpt @@ -0,0 +1,20 @@ +--TEST-- +SPL: RecursiveIteratorIterator::getSubIterator() returns iterator passed in constructor +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- +getSubIterator() === $sub_iterator); +var_dump($iterator->getSubIterator() === $not_sub_iterator); +?> +--EXPECT-- +bool(true) +bool(false) + diff --git a/ext/spl/tests/recursiveiteratoriterator_getsubiterator_error.phpt b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_error.phpt new file mode 100644 index 0000000000..760082f6bd --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_error.phpt @@ -0,0 +1,15 @@ +--TEST-- +SPL: RecursiveIteratorIterator::getSubIterator() expects at most 1 parameter +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- +getSubIterator(); +$iterator->getSubIterator(0); +$iterator->getSubIterator(0, 0); +?> +--EXPECTF-- +Warning: RecursiveIteratorIterator::getSubIterator() expects at most 1 parameter, 2 given in %s on line 5 + diff --git a/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation.phpt b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation.phpt new file mode 100644 index 0000000000..a7b84c4bcc --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation.phpt @@ -0,0 +1,42 @@ +--TEST-- +SPL: RecursiveIteratorIterator::getSubIterator() returns different iterators depending on the current element +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- +next(); +$iterator->next(); +var_dump(get_class($iterator->getSubIterator())); +var_dump($iterator->getSubIterator()->getArrayCopy()); +$iterator->next(); +var_dump(get_class($iterator->getSubIterator())); +var_dump($iterator->getSubIterator()->getArrayCopy()); +?> +--EXPECTF-- +%unicode|string%(22) "RecursiveArrayIterator" +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + array(2) { + [0]=> + int(3) + [1]=> + int(4) + } +} +%unicode|string%(22) "RecursiveArrayIterator" +array(2) { + [0]=> + int(3) + [1]=> + int(4) +} + diff --git a/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_002.phpt b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_002.phpt new file mode 100644 index 0000000000..aac4e65bb8 --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_002.phpt @@ -0,0 +1,20 @@ +--TEST-- +SPL: RecursiveIteratorIterator::getSubIterator() returns NULL if there's no current element +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- +next(); +var_dump(is_null($iterator->getSubIterator())); +$iterator->next(); +var_dump(is_null($iterator->getSubIterator())); +?> +--EXPECT-- +bool(false) +bool(false) + diff --git a/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_003.phpt b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_003.phpt new file mode 100644 index 0000000000..ff18840391 --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_003.phpt @@ -0,0 +1,42 @@ +--TEST-- +SPL: RecursiveIteratorIterator::getSubIterator() with explicit level parameter +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- +next(); +$iterator->next(); +$iterator->next(); +var_dump($iterator->getSubIterator(-1)); +var_dump($iterator->getSubIterator(0)->getArrayCopy()); +var_dump($iterator->getSubIterator(1)->getArrayCopy()); +var_dump($iterator->getSubIterator(2)); +?> +--EXPECT-- +NULL +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + array(2) { + [0]=> + int(3) + [1]=> + int(4) + } +} +array(2) { + [0]=> + int(3) + [1]=> + int(4) +} +NULL + diff --git a/ext/spl/tests/recursiveiteratoriterator_nextelement_basic.phpt b/ext/spl/tests/recursiveiteratoriterator_nextelement_basic.phpt new file mode 100644 index 0000000000..0bf4f198f3 --- /dev/null +++ b/ext/spl/tests/recursiveiteratoriterator_nextelement_basic.phpt @@ -0,0 +1,39 @@ +--TEST-- +SPL: RecursiveIteratorIterator::nextElement() is called when the next element is ready +--CREDITS-- +Matt Raines matt@raines.me.uk +#testfest London 2009-05-09 +--FILE-- + +--EXPECT-- +int(1) +int(2) +int(3) +int(4) +::nextElement() was invoked +int(1) +::nextElement() was invoked +int(2) +::nextElement() was invoked +int(3) +::nextElement() was invoked +int(4) + diff --git a/ext/spl/tests/regexiterator_getpregflags.phpt b/ext/spl/tests/regexiterator_getpregflags.phpt new file mode 100644 index 0000000000..58a4dc4a3b --- /dev/null +++ b/ext/spl/tests/regexiterator_getpregflags.phpt @@ -0,0 +1,33 @@ +--TEST-- +SPL: RegexIterator::getPregFlags() +--CREDITS-- +Lance Kesson jac_kesson@hotmail.com +#testfest London 2009-05-09 +--FILE-- +setPregFlags(PREG_OFFSET_CAPTURE); + +echo is_long($r->getPregFlags()); + +?> +--EXPECTF-- +1 \ No newline at end of file diff --git a/ext/spl/tests/regexiterator_setflags_exception.phpt b/ext/spl/tests/regexiterator_setflags_exception.phpt new file mode 100644 index 0000000000..fdc8bca649 --- /dev/null +++ b/ext/spl/tests/regexiterator_setflags_exception.phpt @@ -0,0 +1,35 @@ +--TEST-- +SPL: RegexIterator::setFlags() exceptions test +--CREDITS-- +Lance Kesson jac_kesson@hotmail.com +#testfest London 2009-05-09 +--FILE-- +setFlags(); +}catch (Exception $e) { + echo $e->getMessage(); +} + +?> +--EXPECTF-- +Warning: RegexIterator::setFlags() expects exactly 1 parameter, 0 given in %s \ No newline at end of file diff --git a/ext/spl/tests/regexiterator_setpregflags.phpt b/ext/spl/tests/regexiterator_setpregflags.phpt new file mode 100644 index 0000000000..ea1b455488 --- /dev/null +++ b/ext/spl/tests/regexiterator_setpregflags.phpt @@ -0,0 +1,34 @@ +--TEST-- +SPL: RegexIterator::setPregFlags() +--CREDITS-- +Lance Kesson jac_kesson@hotmail.com +#testfest London 2009-05-09 +--FILE-- +setPregFlags(PREG_OFFSET_CAPTURE); + +echo $r->getPregFlags(); + + +?> +--EXPECTF-- +256 \ No newline at end of file diff --git a/ext/spl/tests/regexiterator_setpregflags_exception.phpt b/ext/spl/tests/regexiterator_setpregflags_exception.phpt new file mode 100644 index 0000000000..cc7c17c272 --- /dev/null +++ b/ext/spl/tests/regexiterator_setpregflags_exception.phpt @@ -0,0 +1,36 @@ +--TEST-- +SPL: RegexIterator::getPregFlags() exception test +--CREDITS-- +Lance Kesson jac_kesson@hotmail.com +#testfest London 2009-05-09 +--FILE-- +setPregFlags(); +}catch (Exception $e) { + echo $e->getMessage(); +} + +?> +--EXPECTF-- +Warning: RegexIterator::setPregFlags() expects exactly 1 parameter, 0 given in %s \ No newline at end of file diff --git a/ext/spl/tests/spl_caching_iterator_constructor_flags.phpt b/ext/spl/tests/spl_caching_iterator_constructor_flags.phpt new file mode 100644 index 0000000000..499cd67559 --- /dev/null +++ b/ext/spl/tests/spl_caching_iterator_constructor_flags.phpt @@ -0,0 +1,25 @@ +--TEST-- +SPL: CachingInterator constructor flag checks +--CREDITS-- +Sean Burlington www.practicalweb.co.uk +TestFest London May 2009 +--FILE-- +getMessage() . "\n"; +} + + +?> +===DONE=== +--EXPECTF-- +Flags must contain only one of CALL_TOSTRING, TOSTRING_USE_KEY, TOSTRING_USE_CURRENT, TOSTRING_USE_CURRENT +===DONE=== diff --git a/ext/spl/tests/spl_cachingiterator___toString_basic.phpt b/ext/spl/tests/spl_cachingiterator___toString_basic.phpt new file mode 100644 index 0000000000..0395b3794d --- /dev/null +++ b/ext/spl/tests/spl_cachingiterator___toString_basic.phpt @@ -0,0 +1,16 @@ +--TEST-- +SPL: SplCachingIterator, Test method to convert current element to string +--CREDITS-- +Chris Scott chris.scott@nstein.com +#testfest London 2009-05-09 +--FILE-- +__toString() // if conversion to string is done by echo, for example, an exeption is thrown. Invoking __toString explicitly covers different code. +); +?> +--EXPECTF-- +NULL diff --git a/ext/spl/tests/spl_cachingiterator_setFlags_basic.phpt b/ext/spl/tests/spl_cachingiterator_setFlags_basic.phpt new file mode 100644 index 0000000000..126586bcc7 --- /dev/null +++ b/ext/spl/tests/spl_cachingiterator_setFlags_basic.phpt @@ -0,0 +1,16 @@ +--TEST-- +SPL: SplCachingIterator, Test method to set flags for caching iterator +--CREDITS-- +Chris Scott chris.scott@nstein.com +#testfest London 2009-05-09 +--FILE-- +setFlags(); //expects arg + +?> +--EXPECTF-- +Warning: CachingIterator::setFlags() expects exactly 1 parameter, %s diff --git a/ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt b/ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt new file mode 100755 index 0000000000..399d9a31aa --- /dev/null +++ b/ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt @@ -0,0 +1,22 @@ +--TEST-- +SPL: Spl File Info test getLinkTarget +--CREDITS-- +Nataniel McHugh nat@fishtrap.co.uk +--SKIPIF-- + +--FILE-- +isLink()) { + echo $fileInfo->getLinkTarget() == __FILE__ ? 'same' : 'different',PHP_EOL; +} +var_dump(unlink($link)); +?> +--EXPECT-- +same +bool(true) diff --git a/ext/spl/tests/spl_heap_count_basic.phpt b/ext/spl/tests/spl_heap_count_basic.phpt new file mode 100644 index 0000000000..6e6baf6c9b --- /dev/null +++ b/ext/spl/tests/spl_heap_count_basic.phpt @@ -0,0 +1,35 @@ +--TEST-- +SPL: SplHeap, Test spl_heap_object_count_elements (spl_heap.c:490) for returning count() failure for Heaps +--CREDITS-- +Chris Scott chris.scott@nstein.com +#testfest London 2009-05-09 +--FILE-- +insert(1); +count($heap);// refers to MyHeap->count() method + +?> +--EXPECTF-- +Fatal error: Uncaught exception 'Exception' with message 'Cause count to fail' in %s +Stack trace: +#0 [internal function]: MyHeap->count() +#1 %s count(Object(MyHeap)) +#2 {main} + thrown in %s on line %d diff --git a/ext/spl/tests/spl_heap_count_error.phpt b/ext/spl/tests/spl_heap_count_error.phpt new file mode 100644 index 0000000000..6bed4cfa60 --- /dev/null +++ b/ext/spl/tests/spl_heap_count_error.phpt @@ -0,0 +1,12 @@ +--TEST-- +SPL: Priority queue count, illegal number of args +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +count(1); +?> +--EXPECTF-- +Warning: SplPriorityQueue::count() expects exactly 0 parameters, 1 given in %s diff --git a/ext/spl/tests/spl_heap_extract_parameter_error.phpt b/ext/spl/tests/spl_heap_extract_parameter_error.phpt new file mode 100644 index 0000000000..aecd03dfa1 --- /dev/null +++ b/ext/spl/tests/spl_heap_extract_parameter_error.phpt @@ -0,0 +1,27 @@ +--TEST-- +SPL: Heap and extract with parameter +--CREDITS-- +Sean Burlington www.practicalweb.co.uk +TestFest London May 2009 +--FILE-- +extract('test')); + +?> +===DONE=== +--EXPECTF-- +Warning: SplHeap::extract() expects exactly 0 parameters, 1 given in %s on line 14 +NULL +===DONE=== diff --git a/ext/spl/tests/spl_heap_insert_basic.phpt b/ext/spl/tests/spl_heap_insert_basic.phpt new file mode 100644 index 0000000000..76a34b292b --- /dev/null +++ b/ext/spl/tests/spl_heap_insert_basic.phpt @@ -0,0 +1,20 @@ +--TEST-- +SPL: SplHeap, Test method to insert into heap +--CREDITS-- +Chris Scott chris.scott@nstein.com +#testfest London 2009-05-09 +--FILE-- +insert(1,2); +?> +--EXPECTF-- +Warning: SplHeap::insert() expects exactly 1 parameter, %s diff --git a/ext/spl/tests/spl_heap_is_empty_basic.phpt b/ext/spl/tests/spl_heap_is_empty_basic.phpt new file mode 100644 index 0000000000..47d7ccce9a --- /dev/null +++ b/ext/spl/tests/spl_heap_is_empty_basic.phpt @@ -0,0 +1,31 @@ +--TEST-- +SPL: SplHeap, test trivial method to find if a heap is empty +--CREDITS-- +Nathaniel McHugh nat@fishtrap.co.uk +#testfest London 2009-05-09 +--FILE-- +isEmpty()); +$heap->insert(1); +var_dump($heap->isEmpty()); +$heap->extract(); +var_dump($heap->isEmpty()); +$heap->isEmpty('var'); +?> +--EXPECTF-- +bool(true) +bool(false) +bool(true) + +Warning: SplHeap::isEmpty() expects exactly 0 parameters, 1 given in %s diff --git a/ext/spl/tests/spl_heap_isempty.phpt b/ext/spl/tests/spl_heap_isempty.phpt new file mode 100644 index 0000000000..2729c7fa87 --- /dev/null +++ b/ext/spl/tests/spl_heap_isempty.phpt @@ -0,0 +1,21 @@ +--TEST-- +SPL: Test of isEmpty for SPL Max Heap +--CREDITS-- +Rohan Abraham (rohanabrahams@gmail.com) +TestFest London May 2009 +--FILE-- +isEmpty())."\n"; + $h->insert(2); + echo "Checking after insert: "; + var_dump($h->isEmpty())."\n"; + $h->extract(); + echo "Checking after extract: "; + var_dump($h->isEmpty())."\n"; +?> +--EXPECT-- +Checking a new heap is empty: bool(true) +Checking after insert: bool(false) +Checking after extract: bool(true) \ No newline at end of file diff --git a/ext/spl/tests/spl_heap_iteration_error.phpt b/ext/spl/tests/spl_heap_iteration_error.phpt new file mode 100644 index 0000000000..62e462f553 --- /dev/null +++ b/ext/spl/tests/spl_heap_iteration_error.phpt @@ -0,0 +1,53 @@ +--TEST-- +SPL: Attempt to corrupt the heap while iterating +--CREDITS-- +Lukasz Andrzejak meltir@meltir.com +#testfest London 2009-05-09 +--FILE-- +fail) + throw new Exception('Corrupting heap',99); + return 0; + } +} + +$h = new ext_heap(); +$h->insert(array('foobar')); +$h->insert(array('foobar1')); +$h->insert(array('foobar2')); + +try { + $h->fail=true; + foreach ($h as $value) {}; + echo "I should have raised an exception here"; +} catch (Exception $e) { + if ($e->getCode()!=99) echo "Unexpected exception"; +} + +var_dump($h); +?> +--EXPECTF-- +object(ext_heap)#%d (4) { + [%u|b%"fail"]=> + bool(true) + [%u|b%"flags":%u|b%"SplHeap":private]=> + int(0) + [%u|b%"isCorrupted":%u|b%"SplHeap":private]=> + bool(true) + [%u|b%"heap":%u|b%"SplHeap":private]=> + array(2) { + [0]=> + array(1) { + [0]=> + %unicode|string%(7) "foobar2" + } + [1]=> + array(1) { + [0]=> + %unicode|string%(7) "foobar1" + } + } +} diff --git a/ext/spl/tests/spl_heap_recoverfromcorruption_arguments.phpt b/ext/spl/tests/spl_heap_recoverfromcorruption_arguments.phpt new file mode 100644 index 0000000000..8726f4b32a --- /dev/null +++ b/ext/spl/tests/spl_heap_recoverfromcorruption_arguments.phpt @@ -0,0 +1,15 @@ +--TEST-- +SPL: SplHeap check no arguments to be accepted on recoverFromCorruption +--CREDITS-- +Rohan Abraham (rohanabrahams@gmail.com) +TestFest London May 2009 +--FILE-- +recoverFromCorruption("no args"); +?> +--EXPECTF-- + +Warning: SplHeap::recoverFromCorruption() expects exactly 0 parameters, 1 given in %s on line %d + diff --git a/ext/spl/tests/spl_iterator_apply_error.phpt b/ext/spl/tests/spl_iterator_apply_error.phpt new file mode 100755 index 0000000000..8e7cba483a --- /dev/null +++ b/ext/spl/tests/spl_iterator_apply_error.phpt @@ -0,0 +1,26 @@ +--TEST-- +SPL: Error: iterator_apply when an iterator method (eg rewind) throws exception +--FILE-- +getMessage(); +} + +?> + + +--EXPECT-- +Make the iterator break diff --git a/ext/spl/tests/spl_iterator_apply_error_001.phpt b/ext/spl/tests/spl_iterator_apply_error_001.phpt new file mode 100755 index 0000000000..54663c0da8 --- /dev/null +++ b/ext/spl/tests/spl_iterator_apply_error_001.phpt @@ -0,0 +1,20 @@ +--TEST-- +SPL: Error: iterator_apply when the callback throws an exception +--FILE-- +getMessage(); +} + +?> +--EXPECT-- +Broken callback diff --git a/ext/spl/tests/spl_iterator_caching_count_basic.phpt b/ext/spl/tests/spl_iterator_caching_count_basic.phpt new file mode 100644 index 0000000000..b11eb7b540 --- /dev/null +++ b/ext/spl/tests/spl_iterator_caching_count_basic.phpt @@ -0,0 +1,21 @@ +--TEST-- +SPL: Caching iterator count() cache contents +--CREDITS-- +Lukasz Andrzejak meltir@meltir.com +#testfest London 2009-05-09 +--FILE-- +count()."\n"; +} +?> +===DONE=== +--EXPECT-- +1 +2 +3 +4 +5 +===DONE=== \ No newline at end of file diff --git a/ext/spl/tests/spl_iterator_caching_count_error.phpt b/ext/spl/tests/spl_iterator_caching_count_error.phpt new file mode 100644 index 0000000000..70aa2be30b --- /dev/null +++ b/ext/spl/tests/spl_iterator_caching_count_error.phpt @@ -0,0 +1,21 @@ +--TEST-- +SPL: Caching iterator count() cache failure +--CREDITS-- +Lukasz Andrzejak meltir@meltir.com +#testfest London 2009-05-09 +--FILE-- +count(); + echo "Should have caused an exception"; +} catch (BadMethodCallException $e) { + echo "Exception raised\n"; +} + +?> +===DONE=== +--EXPECT-- +Exception raised +===DONE=== \ No newline at end of file diff --git a/ext/spl/tests/spl_iterator_caching_getcache_error.phpt b/ext/spl/tests/spl_iterator_caching_getcache_error.phpt new file mode 100644 index 0000000000..2ea4bd819b --- /dev/null +++ b/ext/spl/tests/spl_iterator_caching_getcache_error.phpt @@ -0,0 +1,21 @@ +--TEST-- +SPL: Caching iterator getCache failure +--CREDITS-- +Lukasz Andrzejak meltir@meltir.com +#testfest London 2009-05-09 +--FILE-- +getCache(); + echo "Should have caused an exception"; +} catch (BadMethodCallException $e) { + echo "Exception raised\n"; +} + +?> +===DONE=== +--EXPECT-- +Exception raised +===DONE=== \ No newline at end of file diff --git a/ext/spl/tests/spl_iterator_getcallchildren.phpt b/ext/spl/tests/spl_iterator_getcallchildren.phpt new file mode 100644 index 0000000000..77b03b6b7f --- /dev/null +++ b/ext/spl/tests/spl_iterator_getcallchildren.phpt @@ -0,0 +1,39 @@ +--TEST-- +SPL: RecursiveIteratorIterator, getCallChildren +--CREDITS-- +Sean Burlington www.practicalweb.co.uk +TestFest London May 2009 +--FILE-- +current()); +$test->next(); +var_dump($test->current()); +try { + $output = $test->callGetChildren(); +} catch (InvalidArgumentException $ilae){ + $output = null; + print "invalid argument exception\n"; +} +var_dump($output); + + +?> +===DONE=== +--EXPECTF-- + array(3) { + [0]=> + int(7) + [1]=> + int(8) + [2]=> + int(9) +} +int(7) +invalid argument exception +NULL +===DONE=== diff --git a/ext/spl/tests/spl_iterator_iterator_constructor.phpt b/ext/spl/tests/spl_iterator_iterator_constructor.phpt new file mode 100644 index 0000000000..d4fdb14c13 --- /dev/null +++ b/ext/spl/tests/spl_iterator_iterator_constructor.phpt @@ -0,0 +1,30 @@ +--TEST-- +SPL: IteratorInterator constructor checks +--CREDITS-- +Sean Burlington www.practicalweb.co.uk +TestFest London May 2009 +--FILE-- +getMessage() . "\n"; +} + + +?> +===DONE=== +--EXPECTF-- +IteratorIterator::__construct() expects at most 2 parameters, 3 given +===DONE=== diff --git a/ext/spl/tests/spl_iterator_recursive_getiterator_error.phpt b/ext/spl/tests/spl_iterator_recursive_getiterator_error.phpt new file mode 100644 index 0000000000..0d45c31513 --- /dev/null +++ b/ext/spl/tests/spl_iterator_recursive_getiterator_error.phpt @@ -0,0 +1,16 @@ +--TEST-- +SPL: IteratorIterator foreach by reference failure +--CREDITS-- +Lukasz Andrzejak meltir@meltir.com +#testfest London 2009-05-09 +--FILE-- + +--EXPECTF-- +Fatal error: An iterator cannot be used with foreach by reference in %s \ No newline at end of file diff --git a/ext/spl/tests/spl_iterator_to_array_basic.phpt b/ext/spl/tests/spl_iterator_to_array_basic.phpt new file mode 100644 index 0000000000..68cb8792a9 --- /dev/null +++ b/ext/spl/tests/spl_iterator_to_array_basic.phpt @@ -0,0 +1,13 @@ +--TEST-- +SPL: iterator_to_array, Test function to convert iterator to array +--CREDITS-- +Chris Scott chris.scott@nstein.com +#testfest London 2009-05-09 +--FILE-- + +--EXPECTF-- +Warning: iterator_to_array() expects at least 1 parameter, %s diff --git a/ext/spl/tests/spl_iterator_to_array_error.phpt b/ext/spl/tests/spl_iterator_to_array_error.phpt new file mode 100755 index 0000000000..755ef7b990 --- /dev/null +++ b/ext/spl/tests/spl_iterator_to_array_error.phpt @@ -0,0 +1,33 @@ +--TEST-- +SPL: Error: iterator_to_array when the current operation throws an exception +--FILE-- +getMessage() . PHP_EOL; +} + +try { + // get values + $ar = iterator_to_array($it, false); +} catch (Exception $e) { + echo $e->getMessage() . PHP_EOL; +} + +?> + + +--EXPECT-- +Make the iterator break +Make the iterator break diff --git a/ext/spl/tests/spl_limit_iterator_check_limits.phpt b/ext/spl/tests/spl_limit_iterator_check_limits.phpt new file mode 100644 index 0000000000..01436a8fbe --- /dev/null +++ b/ext/spl/tests/spl_limit_iterator_check_limits.phpt @@ -0,0 +1,37 @@ +--TEST-- +SPL: LimitIterator check limits are valid +--CREDITS-- +Sean Burlington www.practicalweb.co.uk +TestFest London May 2009 +--FILE-- +getMessage(). "\n"; +} + + +try { + $limitIterator = new LimitIterator($arrayIterator, 0, -2); +} catch (OutOfRangeException $e){ + print $e->getMessage() . "\n"; +} + +try { + $limitIterator = new LimitIterator($arrayIterator, 0, -1); +} catch (OutOfRangeException $e){ + print $e->getMessage() . "\n"; +} + + + +?> +===DONE=== +--EXPECTF-- +Parameter offset must be > 0 +Parameter count must either be -1 or a value greater than or equal 0 +===DONE=== diff --git a/ext/spl/tests/spl_maxheap_compare_basic.phpt b/ext/spl/tests/spl_maxheap_compare_basic.phpt new file mode 100644 index 0000000000..3705b3fd0b --- /dev/null +++ b/ext/spl/tests/spl_maxheap_compare_basic.phpt @@ -0,0 +1,22 @@ +--TEST-- +SPL: SplMaxHeap, Test method to comare elements +--CREDITS-- +Chris Scott chris.scott@nstein.com +#testfest London 2009-05-09 +--FILE-- +testCompare(); + +?> +--EXPECTF-- +Warning: SplMaxHeap::compare() expects exactly 2 parameters, %s diff --git a/ext/spl/tests/spl_minheap_compare_error.phpt b/ext/spl/tests/spl_minheap_compare_error.phpt new file mode 100644 index 0000000000..7120a6cd11 --- /dev/null +++ b/ext/spl/tests/spl_minheap_compare_error.phpt @@ -0,0 +1,31 @@ +--TEST-- +SPL: SplMinHeap compare, illegal number of args +--CREDITS-- +Mark Schaschke (mark@fractalturtle.com) +TestFest London May 2009 +--FILE-- +testCompare1(); +$h->testCompare2(); +$h->testCompare3(); +?> +--EXPECTF-- +Warning: SplMinHeap::compare() expects exactly 2 parameters, 0 given in %s + +Warning: SplMinHeap::compare() expects exactly 2 parameters, 1 given in %s + +Warning: SplMinHeap::compare() expects exactly 2 parameters, 3 given in %s + diff --git a/ext/spl/tests/spl_pq_top_basic.phpt b/ext/spl/tests/spl_pq_top_basic.phpt new file mode 100644 index 0000000000..dcc1cbe4c0 --- /dev/null +++ b/ext/spl/tests/spl_pq_top_basic.phpt @@ -0,0 +1,42 @@ +--TEST-- +SPL: SplPriorityQueue: top and extract flags +--CREDITS-- +Nathaniel McHugh nat@fishtrap.co.uk +#testfest London 2009-05-09 +--FILE-- +insert("a", 1); +$priorityQueue->insert("b", 2); +$priorityQueue->insert("c", 0); + +echo "EXTR DEFAULT",PHP_EOL; +echo "value: ",$priorityQueue->top(),PHP_EOL; + +$priorityQueue->setExtractFlags(SplPriorityQueue::EXTR_PRIORITY); +echo "EXTR_PRIORITY",PHP_EOL; +echo "priority: ",$priorityQueue->top(),PHP_EOL; + +$priorityQueue->setExtractFlags(SplPriorityQueue::EXTR_BOTH); +echo "EXTR_BOTH",PHP_EOL; +print_r($priorityQueue->top()); + +echo "EXTR_DATA",PHP_EOL; +$priorityQueue->setExtractFlags(SplPriorityQueue::EXTR_DATA); +echo "value: ",$priorityQueue->top(),PHP_EOL; +?> +--EXPECT-- +EXTR DEFAULT +value: b +EXTR_PRIORITY +priority: 2 +EXTR_BOTH +Array +( + [data] => b + [priority] => 2 +) +EXTR_DATA +value: b \ No newline at end of file diff --git a/ext/spl/tests/spl_pq_top_error_args.phpt b/ext/spl/tests/spl_pq_top_error_args.phpt new file mode 100644 index 0000000000..a0e5969034 --- /dev/null +++ b/ext/spl/tests/spl_pq_top_error_args.phpt @@ -0,0 +1,12 @@ +--TEST-- +SPL: SplPriorityQueue: top too many arguments exception +--CREDITS-- +Nathaniel McHugh nat@fishtrap.co.uk +#testfest London 2009-05-09 +--FILE-- +top('var'); +?> +--EXPECTF-- +Warning: SplPriorityQueue::top() expects exactly 0 parameters, 1 given in %s \ No newline at end of file diff --git a/ext/spl/tests/spl_pq_top_error_corrupt.phpt b/ext/spl/tests/spl_pq_top_error_corrupt.phpt new file mode 100644 index 0000000000..30b6fde5a1 --- /dev/null +++ b/ext/spl/tests/spl_pq_top_error_corrupt.phpt @@ -0,0 +1,38 @@ +--TEST-- +SPL: SplPriorityQueue: top and extract flags +--CREDITS-- +Nathaniel McHugh nat@fishtrap.co.uk +#testfest 2009-05-09 +--FILE-- +insert("a", 1); + +try { + //corrupt heap + $priorityQueue->insert("b", 2); + // ignore exception tested elsewhere +} catch (Exception $e) { +} + +try { + $priorityQueue->top(); +} catch (RuntimeException $e) { + echo "Exception: ".$e->getMessage().PHP_EOL; +} + +?> +--EXPECT-- +Exception: Heap is corrupted, heap properties are no longer ensured. diff --git a/ext/spl/tests/spl_pq_top_error_empty.phpt b/ext/spl/tests/spl_pq_top_error_empty.phpt new file mode 100644 index 0000000000..9e2a31bbc0 --- /dev/null +++ b/ext/spl/tests/spl_pq_top_error_empty.phpt @@ -0,0 +1,19 @@ +--TEST-- +SPL: SplPriorityQueue: top exception on empty heap +--CREDITS-- +Nathaniel McHugh nat@fishtrap.co.uk +#testfest 2009-05-09 +--FILE-- +top(); +} catch (RuntimeException $e) { + echo "Exception: ".$e->getMessage().PHP_EOL; +} + +?> +--EXPECT-- +Exception: Can't peek at an empty heap diff --git a/ext/spl/tests/spl_priorityqeue_insert_two_params_error.phpt b/ext/spl/tests/spl_priorityqeue_insert_two_params_error.phpt new file mode 100644 index 0000000000..659ffb4bc0 --- /dev/null +++ b/ext/spl/tests/spl_priorityqeue_insert_two_params_error.phpt @@ -0,0 +1,31 @@ +--TEST-- +SPL: priorityQueue paramter test on insert method +--CREDITS-- +Sean Burlington www.practicalweb.co.uk +TestFest London May 2009 +--FILE-- +insert()); +var_dump($testHeap->insert('test')); +var_dump($testHeap->insert('test', 'test')); +var_dump($testHeap->insert('test', 'test', 'test')); + + +?> +===DONE=== +--EXPECTF-- +Warning: SplPriorityQueue::insert() expects exactly 2 parameters, 0 given in %s on line 7 +NULL + +Warning: SplPriorityQueue::insert() expects exactly 2 parameters, 1 given in %s on line 8 +NULL +bool(true) + +Warning: SplPriorityQueue::insert() expects exactly 2 parameters, 3 given in %s on line 10 +NULL +===DONE=== diff --git a/ext/spl/tests/spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt b/ext/spl/tests/spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt new file mode 100644 index 0000000000..d52a3208ec --- /dev/null +++ b/ext/spl/tests/spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt @@ -0,0 +1,28 @@ +--TEST-- +SPL: RecursiveIteratorIterator, setMaxDepth check parameter count +--CREDITS-- +Sean Burlington www.practicalweb.co.uk +TestFest London May 2009 +--FILE-- +current()); +$test->setMaxDepth(); +$test->setMaxDepth(1); +$test->setMaxDepth(1,2); +$test->setMaxDepth(1,2,3); + +//var_dump($test->current()); + + +?> +===DONE=== +--EXPECTF-- +Warning: RecursiveIteratorIterator::setMaxDepth() expects at most 1 parameter, 2 given in %s on line 10 + +Warning: RecursiveIteratorIterator::setMaxDepth() expects at most 1 parameter, 3 given in %s on line 11 +===DONE=== diff --git a/ext/spl/tests/spl_recursive_iterator_iterator_key_case.phpt b/ext/spl/tests/spl_recursive_iterator_iterator_key_case.phpt new file mode 100644 index 0000000000..1262ec0d65 --- /dev/null +++ b/ext/spl/tests/spl_recursive_iterator_iterator_key_case.phpt @@ -0,0 +1,33 @@ +--TEST-- +SPL: Test on RecursiveIteratorIterator key function checking switch statements +--CREDITS-- +Rohan Abraham (rohanabrahams@gmail.com) +TestFest London May 2009 +--FILE-- +1, "two"=>2, "three"=>array("four"=>4, "five"=>5, "six"=>array("seven"=>7)), "eight"=>8, -100 => 10, NULL => "null"); + $it = new RecursiveArrayIterator($ar); + $it = new RecursiveIteratorIterator($it); + foreach($it as $k=>$v) + { + echo "$k=>$v\n"; + var_dump($k); + } +?> +--EXPECTF-- +one=>1 +%unicode|string%(3) "one" +two=>2 +%unicode|string%(3) "two" +four=>4 +%unicode|string%(4) "four" +five=>5 +%unicode|string%(4) "five" +seven=>7 +%unicode|string%(5) "seven" +eight=>8 +%unicode|string%(5) "eight" +-100=>10 +int(-100) +=>null +%unicode|string%(0) "" diff --git a/ext/spl/tests/splpriorityqueue_extract.phpt b/ext/spl/tests/splpriorityqueue_extract.phpt new file mode 100644 index 0000000000..eee7bb2f73 --- /dev/null +++ b/ext/spl/tests/splpriorityqueue_extract.phpt @@ -0,0 +1,19 @@ +--TEST-- +SPL: splpriorityqueue extract() Test arguments +--CREDITS-- +Roshan Abraham (roshanabrahams@gmail.com) +TestFest London May 2009 +--FILE-- +insert("1",1); + +$sp->extract(1); // Should throw a warning as extract expects NO arguments + +?> +--EXPECTF-- + +Warning: SplPriorityQueue::extract() expects exactly 0 parameters, 1 given in %s on line %d + diff --git a/ext/spl/tests/splpriorityqueue_setextractflags.phpt b/ext/spl/tests/splpriorityqueue_setextractflags.phpt new file mode 100644 index 0000000000..97d86f375e --- /dev/null +++ b/ext/spl/tests/splpriorityqueue_setextractflags.phpt @@ -0,0 +1,17 @@ +--TEST-- +SPL: splpriorityqueue setExtractFlags() Test arguments +--CREDITS-- +Roshan Abraham (roshanabrahams@gmail.com) +TestFest London May 2009 +--FILE-- +setExtractFlags(1,1); // Should throw a warning as setExtractFlags expects only 1 argument + +?> +--EXPECTF-- + +Warning: SplPriorityQueue::setExtractFlags() expects exactly 1 parameter, 2 given in %s on line %d + -- 2.40.0