Browse code

added some missing tests

Fabien Potencier authored on 21/02/2017 16:22:43
Showing 3 changed files
... ...
@@ -30,7 +30,7 @@ catches deprecation notices, and return them.
30 30
 .. tip::
31 31
 
32 32
     If your templates are not stored on the filesystem, use the ``collect()``
33
-    method instead which takes an ``Iterator``; the iterator must return
33
+    method instead. ``collect()`` takes a ``Traversable`` which must return
34 34
     template names as keys and template contents as values (as done by
35 35
     ``Twig_Util_TemplateDirIterator``).
36 36
 
... ...
@@ -46,11 +46,11 @@ class Twig_Util_DeprecationCollector
46 46
     /**
47 47
      * Returns deprecations for passed templates.
48 48
      *
49
-     * @param Iterator $iterator An iterator of templates (where keys are template names and values the contents of the template)
49
+     * @param Traversable $iterator An iterator of templates (where keys are template names and values the contents of the template)
50 50
      *
51 51
      * @return array An array of deprecations
52 52
      */
53
-    public function collect(Iterator $iterator)
53
+    public function collect(Traversable $iterator)
54 54
     {
55 55
         $this->deprecations = array();
56 56
 
57 57
new file mode 100644
... ...
@@ -0,0 +1,42 @@
1
+<?php
2
+
3
+/*
4
+ * This file is part of Twig.
5
+ *
6
+ * (c) Fabien Potencier
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+class Twig_Tests_Util_DeprecationCollectorTest extends PHPUnit_Framework_TestCase
13
+{
14
+    /**
15
+     * @requires PHP 5.3
16
+     */
17
+    public function testCollect()
18
+    {
19
+        $twig = new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock());
20
+        $twig->addFunction(new Twig_SimpleFunction('deprec', array($this, 'deprec'), array('deprecated' => true)));
21
+
22
+        $collector = new Twig_Util_DeprecationCollector($twig);
23
+        $deprecations = $collector->collect(new Twig_Tests_Util_Iterator());
24
+
25
+        $this->assertEquals(array('Twig Function "deprec" is deprecated in deprec.twig at line 1.'), $deprecations);
26
+    }
27
+
28
+    public function deprec()
29
+    {
30
+    }
31
+}
32
+
33
+class Twig_Tests_Util_Iterator implements IteratorAggregate
34
+{
35
+    public function getIterator()
36
+    {
37
+        return new ArrayIterator(array(
38
+            'ok.twig' => '{{ foo }}',
39
+            'deprec.twig' => '{{ deprec("foo") }}',
40
+        ));
41
+    }
42
+}