Author: fabien
Date: 2010-02-01 18:00:09 +0100 (Mon, 01 Feb 2010)
New Revision: 27380

Added:
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/orm-1.0.xml
Modified:
   branches/2.0/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/DoctrineExtension.php
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SwiftMailerExtension.php
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SymfonyTemplatingExtension.php
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/ZendExtension.php
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/dbal-1.0.xml
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/symfony/templating-1.0.xml
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/zend/logger-1.0.xml
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/doctrine/doctrine-1.0.xsd
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/swiftmailer/swiftmailer-1.0.xsd
   
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/symfony/symfony-1.0.xsd
   branches/2.0/src/Symfony/Components/EventDispatcher/Event.php
   branches/2.0/src/Symfony/Components/Templating/Loader/FilesystemLoader.php
   branches/2.0/tests/unit/Symfony/Components/EventDispatcher/EventTest.php
Log:
Merge branch 'master' of git://github.com/symfony/symfony

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php    
    2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Dumper/PhpDumper.php    
    2010-02-01 17:00:09 UTC (rev 27380)
@@ -306,7 +306,9 @@
    */
   public function __construct()
   {
-    parent::__construct(\$this->getDefaultParameters());
+    parent::__construct();
+
+    \$this->parameters = \$this->getDefaultParameters();
   }
 
 EOF;

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/DoctrineExtension.php
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/DoctrineExtension.php
      2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/DoctrineExtension.php
      2010-02-01 17:00:09 UTC (rev 27380)
@@ -24,6 +24,13 @@
  */
 class DoctrineExtension extends LoaderExtension
 {
+  protected $alias;
+
+  public function setAlias($alias)
+  {
+    $this->alias = $alias;
+  }
+
   /**
    * Loads the DBAL configuration.
    *
@@ -42,7 +49,7 @@
     $loader = new XmlFileLoader(__DIR__.'/xml/doctrine');
     $configuration->merge($loader->load('dbal-1.0.xml'));
 
-    foreach (array('dbname', 'driverClass', 'host', 'username', 'password') as 
$key)
+    foreach (array('dbname', 'host', 'username', 'password', 'path', 'port') 
as $key)
     {
       if (isset($config[$key]))
       {
@@ -50,10 +57,45 @@
       }
     }
 
+    if (isset($config['options']))
+    {
+      $configuration->setParameter('doctrine.dbal.driver.options', 
$config['options']);
+    }
+
+    if (isset($config['driver']))
+    {
+      $class = $config['driver'];
+      if (in_array($class, array('OCI8', 'PDOMsSql', 'PDOMySql', 'PDOOracle', 
'PDOPgSql', 'PDOSqlite')))
+      {
+        $class = 'Doctrine\\DBAL\\Driver\\'.$class.'\\Driver';
+      }
+
+      $configuration->setParameter('doctrine.dbal.driver.class', $class);
+    }
+
+    $configuration->setAlias('connection', null !== $this->alias ? 
$this->alias : 'doctrine.dbal.connection');
+
     return $configuration;
   }
 
   /**
+   * Loads the Doctrine ORM configuration.
+   *
+   * @param array $config A configuration array
+   *
+   * @return BuilderConfiguration A BuilderConfiguration instance
+   */
+  public function ormLoad($config)
+  {
+    $configuration = new BuilderConfiguration();
+
+    $loader = new XmlFileLoader(__DIR__.'/xml/doctrine');
+    $configuration->merge($loader->load('orm-1.0.xml'));
+
+    return $configuration;
+  }
+
+  /**
    * Returns the namespace to be used for this extension (XML namespace).
    *
    * @return string The XML namespace

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SwiftMailerExtension.php
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SwiftMailerExtension.php
   2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SwiftMailerExtension.php
   2010-02-01 17:00:09 UTC (rev 27380)
@@ -95,7 +95,7 @@
       }
     }
 
-    $configuration->setAlias(isset($config['alias']) ? $config['alias'] : 
'mailer', 'swiftmailer.mailer');
+    $configuration->setAlias('mailer', 'swiftmailer.mailer');
 
     return $configuration;
   }

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SymfonyTemplatingExtension.php
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SymfonyTemplatingExtension.php
     2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/SymfonyTemplatingExtension.php
     2010-02-01 17:00:09 UTC (rev 27380)
@@ -25,6 +25,19 @@
  */
 class SymfonyTemplatingExtension extends LoaderExtension
 {
+  protected $defaultHelpers = array();
+  protected $alias;
+
+  public function setAlias($alias)
+  {
+    $this->alias = $alias;
+  }
+
+  public function setDefaultHelpers(array $defaultHelpers)
+  {
+    $this->defaultHelpers = $defaultHelpers;
+  }
+
   /**
    * Loads the templating configuration.
    *
@@ -32,8 +45,10 @@
    *
    *      <symfony:templating path="/path/to/templates" cache="/path/to/cache">
    *        
<symfony:loader>symfony.templating.loader.filesystem</symfony:loader>
-   *        
<symfony:helper>symfony.templating.helper.javascripts</symfony:helper>
-   *        
<symfony:helper>symfony.templating.helper.stylesheets</symfony:helper>
+   *        <symfony:helpers>
+   *          symfony.templating.helper.javascripts
+   *          symfony.templating.helper.stylesheets
+   *        </symfony:helpers>
    *      </symfony:templating>
    *
    * @param array $config A configuration array
@@ -81,21 +96,17 @@
     }
 
     // helpers
-    if (isset($config['helper']))
+    if (array_key_exists('helpers', $config))
     {
       $helpers = array();
-      $ids = is_array($config['helper']) ? $config['helper'] : 
array($config['helper']);
-      foreach ($ids as $id)
+      foreach (explode("\n", $config['helpers']) as $helper)
       {
-        $helpers[] = new Reference($id);
+        $helpers[] = new Reference(trim($helper));
       }
     }
     else
     {
-      $helpers = null === $config['helper'] ? array() : array(
-        new Reference('symfony.templating.helper.javascripts'),
-        new Reference('symfony.templating.helper.stylesheets'),
-      );
+      $helpers = $this->defaultHelpers;
     }
 
     
$configuration->getDefinition('symfony.templating.helperset')->addArgument($helpers);
@@ -109,6 +120,8 @@
       $configuration->setParameter('symfony.templating.loader.cache.path', 
$config['cache']);
     }
 
+    $configuration->setAlias('templating', null !== $this->alias ? 
$this->alias : 'symfony.templating.engine');
+
     return $configuration;
   }
 

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/ZendExtension.php
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/ZendExtension.php
  2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/ZendExtension.php
  2010-02-01 17:00:09 UTC (rev 27380)
@@ -52,6 +52,8 @@
       $configuration->setParameter('zend.logger.path', $config['path']);
     }
 
+    $configuration->setAlias('logger', 'zend.logger');
+
     return $configuration;
   }
 
@@ -117,6 +119,8 @@
       }
     }
 
+    $configuration->setAlias('mail', 'zend.mail');
+
     return $configuration;
   }
 

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/dbal-1.0.xml
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/dbal-1.0.xml
  2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/dbal-1.0.xml
  2010-02-01 17:00:09 UTC (rev 27380)
@@ -5,14 +5,17 @@
     xsi:schemaLocation="http://www.symfony-project.org/schema/dic/services 
http://www.symfony-project.org/schema/dic/services/services-1.0.xsd";>
 
   <parameters>
+    <parameter key="doctrine.dbal.dbname">null</parameter>
     <parameter key="doctrine.dbal.user">root</parameter>
     <parameter key="doctrine.dbal.password"></parameter>
     <parameter key="doctrine.dbal.host">localhost</parameter>
+    <parameter key="doctrine.dbal.port">null</parameter>
+    <parameter key="doctrine.dbal.path">null</parameter>
     <parameter 
key="doctrine.dbal.driver.class">Doctrine\DBAL\Driver\PDOMySql\Driver</parameter>
+    <parameter key="doctrine.dbal.driver.options" type="collection" />
     <parameter 
key="doctrine.dbal.wrapper.class">Doctrine\DBAL\Connection</parameter>
     <parameter 
key="doctrine.dbal.configuration.class">Doctrine\DBAL\Configuration</parameter>
     <parameter 
key="doctrine.dbal.event_manager.class">Doctrine\Common\EventManager</parameter>
-    <parameter 
key="doctrine.dbal.logger.class">Doctrine\DBAL\Logging\DebugStack</parameter>
   </parameters>
 
   <services>
@@ -22,18 +25,23 @@
         <argument key="user">%doctrine.dbal.user%</argument>
         <argument key="password">%doctrine.dbal.password%</argument>
         <argument key="host">%doctrine.dbal.host%</argument>
+        <argument key="port">%doctrine.dbal.port%</argument>
+        <argument key="path">%doctrine.dbal.path%</argument>
         <argument key="driverClass">%doctrine.dbal.driver.class%</argument>
+        <argument key="driverOptions">%doctrine.dbal.driver.options%</argument>
+        <!--
         <argument key="wrapperClass">%doctrine.dbal.wrapper.class%</argument>
+        //-->
       </argument>
       <argument type="service" id="doctrine.dbal.configuration" />
       <argument type="service" id="doctrine.dbal.event_manager" />
     </service>
 
     <service id="doctrine.dbal.configuration" 
class="%doctrine.dbal.configuration.class%">
-      <call method="setSqlLogger"><argument type="service" 
id="doctrine.dbal.logger" /></call>
+      <call method="setSqlLogger"><argument type="service" 
id="doctrine.dbal.logger" on-invalid="ignore" /></call>
     </service>
 
-    <service id="doctrine.dbal.logger" class="%doctrine.dbal.logger.class%" />
+    <service id="doctrine.dbal.logger.debug" 
class="Doctrine\DBAL\Logging\DebugStack" />
 
     <service id="doctrine.dbal.event_manager" 
class="%doctrine.dbal.event_manager.class%" />
   </services>

Added: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/orm-1.0.xml
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/orm-1.0.xml
                           (rev 0)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/doctrine/orm-1.0.xml
   2010-02-01 17:00:09 UTC (rev 27380)
@@ -0,0 +1,24 @@
+<?xml version="1.0" ?>
+
+<container xmlns="http://www.symfony-project.org/schema/dic/services";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xsi:schemaLocation="http://www.symfony-project.org/schema/dic/services 
http://www.symfony-project.org/schema/dic/services/services-1.0.xsd";>
+
+  <services>
+    <service id="doctrine.orm.manager" class="Doctrine\ORM\EntityManager" 
constructor="create">
+      <argument type="service" id="connection" />
+      <argument type="service" id="doctrine.orm.configuration" />
+    </service>
+
+    <service id="doctrine.orm.configuration" 
class="Doctrine\ORM\Configuration">
+      <!--
+      <call method="setMetadataCacheImpl"><argument type="service" 
id="doctrine.orm.cache" /></call>
+      <call method="setQueryCacheImpl"><argument type="service" 
id="doctrine.orm.cache" /></call>
+      //-->
+      <call 
method="setProxyDir"><argument>%kernel.cache_dir%/doctrine/Proxies</argument></call>
+      <call method="setProxyNamespace"><argument>Proxies</argument></call>
+    </service>
+
+    <service id="doctrine.orm.cache" class="Doctrine\Common\Cache\ApcCache" />
+  </services>
+</container>

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/symfony/templating-1.0.xml
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/symfony/templating-1.0.xml
     2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/symfony/templating-1.0.xml
     2010-02-01 17:00:09 UTC (rev 27380)
@@ -25,17 +25,17 @@
 
     <service id="symfony.templating.loader.filesystem" 
class="%symfony.templating.loader.filesystem.class%">
       <argument>%symfony.templating.loader.filesystem.path%</argument>
-      <call method="setDebugger"><argument type="service" 
id="symfony.templating.debugger" /></call>
+      <call method="setDebugger"><argument type="service" 
id="symfony.templating.debugger" on-invalid="ignore" /></call>
     </service>
 
     <service id="symfony.templating.loader.cache" 
class="%symfony.templating.loader.cache.class%">
       <argument type="service" id="symfony.templating.loader.wrapped" />
       <argument>%symfony.templating.loader.cache.path%</argument>
-      <call method="setDebugger"><argument type="service" 
id="symfony.templating.debugger" /></call>
+      <call method="setDebugger"><argument type="service" 
id="symfony.templating.debugger" on-invalid="ignore" /></call>
     </service>
 
     <service id="symfony.templating.loader.chain" 
class="%symfony.templating.loader.chain.class%">
-      <call method="setDebugger"><argument type="service" 
id="symfony.templating.debugger" /></call>
+      <call method="setDebugger"><argument type="service" 
id="symfony.templating.debugger" on-invalid="ignore" /></call>
     </service>
 
     <service id="symfony.templating.helper.javascripts" 
class="%symfony.templating.helper.javascripts.class%" />

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/zend/logger-1.0.xml
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/zend/logger-1.0.xml
    2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/Extension/xml/zend/logger-1.0.xml
    2010-02-01 17:00:09 UTC (rev 27380)
@@ -26,7 +26,5 @@
     <service id="zend.logger.filter" class="Zend_Log_Filter_Priority">
       <argument>%zend.logger.priority%</argument>
     </service>
-
-    <service id="logger" alias="zend.logger" />
   </services>
 </container>

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/doctrine/doctrine-1.0.xsd
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/doctrine/doctrine-1.0.xsd
 2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/doctrine/doctrine-1.0.xsd
 2010-02-01 17:00:09 UTC (rev 27380)
@@ -10,7 +10,11 @@
   <xsd:complexType name="dbal">
     <xsd:attribute name="dbname" type="xsd:string" />
     <xsd:attribute name="host" type="xsd:string" />
+    <xsd:attribute name="port" type="xsd:integer" />
     <xsd:attribute name="username" type="xsd:string" />
     <xsd:attribute name="password" type="xsd:string" />
+    <xsd:attribute name="driver" type="xsd:string" />
+    <xsd:attribute name="options" type="xsd:string" />
+    <xsd:attribute name="path" type="xsd:string" />
   </xsd:complexType>
 </xsd:schema>

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
 2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
 2010-02-01 17:00:09 UTC (rev 27380)
@@ -107,7 +107,7 @@
     <xsd:attribute name="type" type="parameter_type" />
     <xsd:attribute name="id" type="xsd:string" />
     <xsd:attribute name="key" type="xsd:string" />
-    <xsd:attribute name="on-invalid" type="xsd:string" />
+    <xsd:attribute name="on-invalid" type="invalid_sequence" />
   </xsd:complexType>
 
   <xsd:complexType name="argument" mixed="true">
@@ -147,6 +147,14 @@
     </xsd:restriction>
   </xsd:simpleType>
 
+  <xsd:simpleType name="invalid_sequence">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="null" />
+      <xsd:enumeration value="ignore" />
+      <xsd:enumeration value="exception" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
   <xsd:simpleType name="boolean">
     <xsd:restriction base="xsd:string">
       <xsd:pattern value="(%.+%|true|false)" />

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/swiftmailer/swiftmailer-1.0.xsd
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/swiftmailer/swiftmailer-1.0.xsd
   2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/swiftmailer/swiftmailer-1.0.xsd
   2010-02-01 17:00:09 UTC (rev 27380)
@@ -21,6 +21,8 @@
 
     <xsd:attribute name="transport" type="xsd:string" />
     <xsd:attribute name="delivery_strategy" type="delivery_strategy" />
+    <xsd:attribute name="username" type="xsd:string" />
+    <xsd:attribute name="password" type="xsd:string" />
   </xsd:complexType>
 
   <xsd:complexType name="spool">

Modified: 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/symfony/symfony-1.0.xsd
===================================================================
--- 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/symfony/symfony-1.0.xsd
   2010-02-01 13:52:23 UTC (rev 27379)
+++ 
branches/2.0/src/Symfony/Components/DependencyInjection/Loader/schema/dic/symfony/symfony-1.0.xsd
   2010-02-01 17:00:09 UTC (rev 27380)
@@ -10,7 +10,7 @@
   <xsd:complexType name="templating">
     <xsd:sequence>
       <xsd:element name="loader" type="xsd:string" minOccurs="0" 
maxOccurs="unbounded" />
-      <xsd:element name="helper" type="xsd:string" minOccurs="0" 
maxOccurs="unbounded" />
+      <xsd:element name="helpers" type="xsd:string" minOccurs="0" 
maxOccurs="1" />
     </xsd:sequence>
 
     <xsd:attribute name="path" type="xsd:string" />

Modified: branches/2.0/src/Symfony/Components/EventDispatcher/Event.php
===================================================================
--- branches/2.0/src/Symfony/Components/EventDispatcher/Event.php       
2010-02-01 13:52:23 UTC (rev 27379)
+++ branches/2.0/src/Symfony/Components/EventDispatcher/Event.php       
2010-02-01 17:00:09 UTC (rev 27380)
@@ -110,6 +110,46 @@
   }
 
   /**
+   * Returns true if the parameter exists.
+   *
+   * @param  string  $name  The parameter name
+   *
+   * @return Boolean true if the parameter exists, false otherwise
+   */
+  public function hasParameter($name)
+  {
+    return array_key_exists($name, $this->parameters);
+  }
+
+  /**
+   * Returns a parameter value.
+   *
+   * @param  string  $name  The parameter name
+   *
+   * @return mixed  The parameter value
+   */
+  public function getParameter($name)
+  {
+    if (!array_key_exists($name, $this->parameters))
+    {
+      throw new \InvalidArgumentException(sprintf('The event "%s" has no "%s" 
parameter.', $this->name, $name));
+    }
+
+    return $this->parameters[$name];
+  }
+
+  /**
+   * Sets a parameter.
+   *
+   * @param string  $name   The parameter name
+   * @param mixed   $value  The parameter value
+   */
+  public function setParameter($name, $value)
+  {
+    $this->parameters[$name] = $value;
+  }
+
+  /**
    * Returns true if the parameter exists (implements the ArrayAccess 
interface).
    *
    * @param  string  $name  The parameter name

Modified: 
branches/2.0/src/Symfony/Components/Templating/Loader/FilesystemLoader.php
===================================================================
--- branches/2.0/src/Symfony/Components/Templating/Loader/FilesystemLoader.php  
2010-02-01 13:52:23 UTC (rev 27379)
+++ branches/2.0/src/Symfony/Components/Templating/Loader/FilesystemLoader.php  
2010-02-01 17:00:09 UTC (rev 27380)
@@ -85,9 +85,12 @@
       }
     }
 
-    foreach ($logs as $log)
+    if ($this->debugger)
     {
-      $this->debugger->log($log);
+      foreach ($logs as $log)
+      {
+        $this->debugger->log($log);
+      }
     }
 
     return false;

Modified: 
branches/2.0/tests/unit/Symfony/Components/EventDispatcher/EventTest.php
===================================================================
--- branches/2.0/tests/unit/Symfony/Components/EventDispatcher/EventTest.php    
2010-02-01 13:52:23 UTC (rev 27379)
+++ branches/2.0/tests/unit/Symfony/Components/EventDispatcher/EventTest.php    
2010-02-01 17:00:09 UTC (rev 27380)
@@ -12,7 +12,7 @@
 
 use Symfony\Components\EventDispatcher\Event;
 
-$t = new LimeTest(11);
+$t = new LimeTest(16);
 
 $subject = new stdClass();
 $parameters = array('foo' => 'bar');
@@ -26,10 +26,27 @@
 $t->diag('->getName()');
 $t->is($event->getName(), 'name', '->getName() returns the event name');
 
-// ->getParameters()
+// ->getParameters() ->setParameter() ->hasParameter() ->getParameter()
 $t->diag('->getParameters()');
 $t->is($event->getParameters(), $parameters, '->getParameters() returns the 
event parameters');
+$t->is($event->getParameter('foo'), 'bar', '->getParameter() returns the value 
of a parameter');
+$event->setParameter('foo', 'foo');
+$t->is($event->getParameter('foo'), 'foo', '->setParameter() changes the value 
of a parameter');
+$t->ok($event->hasParameter('foo'), '->hasParameter() returns true if the 
parameter is defined');
+unset($event['foo']);
+$t->ok(!$event->hasParameter('foo'), '->hasParameter() returns false if the 
parameter is not defined');
 
+try
+{
+  $event->getParameter('foobar');
+  $t->fail('->getParameter() throws an \InvalidArgumentException exception 
when the parameter does not exist');
+}
+catch (\InvalidArgumentException $e)
+{
+  $t->pass('->getParameter() throws an \InvalidArgumentException exception 
when the parameter does not exist');
+}
+$event = new Event($subject, 'name', $parameters);
+
 // ->getReturnValue() ->setReturnValue()
 $t->diag('->getReturnValue() ->setReturnValue()');
 $event->setReturnValue('foo');

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to