Yaffs site version 1.1
[yaffs-website] / vendor / twig / twig / test / Twig / Tests / Profiler / Dumper / AbstractTest.php
diff --git a/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/AbstractTest.php b/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/AbstractTest.php
new file mode 100644 (file)
index 0000000..da97f47
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+abstract class Twig_Tests_Profiler_Dumper_AbstractTest extends PHPUnit_Framework_TestCase
+{
+    protected function getProfile()
+    {
+        $profile = $this->getMockBuilder('Twig_Profiler_Profile')->disableOriginalConstructor()->getMock();
+
+        $profile->expects($this->any())->method('isRoot')->will($this->returnValue(true));
+        $profile->expects($this->any())->method('getName')->will($this->returnValue('main'));
+        $profile->expects($this->any())->method('getDuration')->will($this->returnValue(1));
+        $profile->expects($this->any())->method('getMemoryUsage')->will($this->returnValue(0));
+        $profile->expects($this->any())->method('getPeakMemoryUsage')->will($this->returnValue(0));
+
+        $subProfiles = array(
+            $this->getIndexProfile(
+                array(
+                    $this->getEmbeddedBlockProfile(),
+                    $this->getEmbeddedTemplateProfile(
+                        array(
+                            $this->getIncludedTemplateProfile(),
+                        )
+                    ),
+                    $this->getMacroProfile(),
+                    $this->getEmbeddedTemplateProfile(
+                        array(
+                            $this->getIncludedTemplateProfile(),
+                        )
+                    ),
+                )
+            ),
+        );
+
+        $profile->expects($this->any())->method('getProfiles')->will($this->returnValue($subProfiles));
+        $profile->expects($this->any())->method('getIterator')->will($this->returnValue(new ArrayIterator($subProfiles)));
+
+        return $profile;
+    }
+
+    private function getIndexProfile(array $subProfiles = array())
+    {
+        return $this->generateProfile('main', 1, true, 'template', 'index.twig', $subProfiles);
+    }
+
+    private function getEmbeddedBlockProfile(array $subProfiles = array())
+    {
+        return $this->generateProfile('body', 0.0001, false, 'block', 'embedded.twig', $subProfiles);
+    }
+
+    private function getEmbeddedTemplateProfile(array $subProfiles = array())
+    {
+        return $this->generateProfile('main', 0.0001, true, 'template', 'embedded.twig', $subProfiles);
+    }
+
+    private function getIncludedTemplateProfile(array $subProfiles = array())
+    {
+        return $this->generateProfile('main', 0.0001, true, 'template', 'included.twig', $subProfiles);
+    }
+
+    private function getMacroProfile(array $subProfiles = array())
+    {
+        return $this->generateProfile('foo', 0.0001, false, 'macro', 'index.twig', $subProfiles);
+    }
+
+    /**
+     * @param string $name
+     * @param float  $duration
+     * @param bool   $isTemplate
+     * @param string $type
+     * @param string $templateName
+     * @param array  $subProfiles
+     *
+     * @return Twig_Profiler_Profile
+     */
+    private function generateProfile($name, $duration, $isTemplate, $type, $templateName, array $subProfiles = array())
+    {
+        $profile = $this->getMockBuilder('Twig_Profiler_Profile')->disableOriginalConstructor()->getMock();
+
+        $profile->expects($this->any())->method('isRoot')->will($this->returnValue(false));
+        $profile->expects($this->any())->method('getName')->will($this->returnValue($name));
+        $profile->expects($this->any())->method('getDuration')->will($this->returnValue($duration));
+        $profile->expects($this->any())->method('getMemoryUsage')->will($this->returnValue(0));
+        $profile->expects($this->any())->method('getPeakMemoryUsage')->will($this->returnValue(0));
+        $profile->expects($this->any())->method('isTemplate')->will($this->returnValue($isTemplate));
+        $profile->expects($this->any())->method('getType')->will($this->returnValue($type));
+        $profile->expects($this->any())->method('getTemplate')->will($this->returnValue($templateName));
+        $profile->expects($this->any())->method('getProfiles')->will($this->returnValue($subProfiles));
+        $profile->expects($this->any())->method('getIterator')->will($this->returnValue(new ArrayIterator($subProfiles)));
+
+        return $profile;
+    }
+}