Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / routing / Tests / Loader / XmlFileLoaderTest.php
index 354e8be0c41c0fed0cb3e040a7b4015129197afe..d24ec79a79c59341bb4dc3b7865accd18ea6c1f0 100644 (file)
@@ -46,26 +46,6 @@ class XmlFileLoaderTest extends TestCase
         $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
     }
 
-    /**
-     * @group legacy
-     */
-    public function testLegacyRouteDefinitionLoading()
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('legacy_validpattern.xml');
-        $route = $routeCollection->get('blog_show_legacy');
-
-        $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
-        $this->assertSame('/blog/{slug}', $route->getPath());
-        $this->assertSame('{locale}.example.com', $route->getHost());
-        $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertSame('\w+', $route->getRequirement('locale'));
-        $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-        $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
-        $this->assertEquals(array('https'), $route->getSchemes());
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
-    }
-
     public function testLoadWithNamespacePrefix()
     {
         $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
@@ -81,6 +61,7 @@ class XmlFileLoaderTest extends TestCase
         $this->assertSame('en|fr|de', $route->getRequirement('_locale'));
         $this->assertNull($route->getDefault('slug'));
         $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
+        $this->assertSame(1, $route->getDefault('page'));
     }
 
     public function testLoadWithImport()
@@ -150,4 +131,160 @@ class XmlFileLoaderTest extends TestCase
         $this->assertEquals('foo', $route->getDefault('foobar'));
         $this->assertEquals('bar', $route->getDefault('baz'));
     }
+
+    public function testScalarDataTypeDefaults()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('scalar_defaults.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                '_controller' => 'AcmeBlogBundle:Blog:index',
+                'slug' => null,
+                'published' => true,
+                'page' => 1,
+                'price' => 3.5,
+                'archived' => false,
+                'free' => true,
+                'locked' => false,
+                'foo' => null,
+                'bar' => null,
+            ),
+            $route->getDefaults()
+        );
+    }
+
+    public function testListDefaults()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('list_defaults.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                '_controller' => 'AcmeBlogBundle:Blog:index',
+                'values' => array(true, 1, 3.5, 'foo'),
+            ),
+            $route->getDefaults()
+        );
+    }
+
+    public function testListInListDefaults()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('list_in_list_defaults.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                '_controller' => 'AcmeBlogBundle:Blog:index',
+                'values' => array(array(true, 1, 3.5, 'foo')),
+            ),
+            $route->getDefaults()
+        );
+    }
+
+    public function testListInMapDefaults()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('list_in_map_defaults.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                '_controller' => 'AcmeBlogBundle:Blog:index',
+                'values' => array('list' => array(true, 1, 3.5, 'foo')),
+            ),
+            $route->getDefaults()
+        );
+    }
+
+    public function testMapDefaults()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('map_defaults.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                '_controller' => 'AcmeBlogBundle:Blog:index',
+                'values' => array(
+                    'public' => true,
+                    'page' => 1,
+                    'price' => 3.5,
+                    'title' => 'foo',
+                ),
+            ),
+            $route->getDefaults()
+        );
+    }
+
+    public function testMapInListDefaults()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('map_in_list_defaults.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                '_controller' => 'AcmeBlogBundle:Blog:index',
+                'values' => array(array(
+                    'public' => true,
+                    'page' => 1,
+                    'price' => 3.5,
+                    'title' => 'foo',
+                )),
+            ),
+            $route->getDefaults()
+        );
+    }
+
+    public function testMapInMapDefaults()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('map_in_map_defaults.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                '_controller' => 'AcmeBlogBundle:Blog:index',
+                'values' => array('map' => array(
+                    'public' => true,
+                    'page' => 1,
+                    'price' => 3.5,
+                    'title' => 'foo',
+                )),
+            ),
+            $route->getDefaults()
+        );
+    }
+
+    public function testNullValuesInList()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('list_null_values.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(array(null, null, null, null, null, null), $route->getDefault('list'));
+    }
+
+    public function testNullValuesInMap()
+    {
+        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
+        $routeCollection = $loader->load('map_null_values.xml');
+        $route = $routeCollection->get('blog');
+
+        $this->assertSame(
+            array(
+                'boolean' => null,
+                'integer' => null,
+                'float' => null,
+                'string' => null,
+                'list' => null,
+                'map' => null,
+            ),
+            $route->getDefault('map')
+        );
+    }
 }