Author: Kris.Wallsmith
Date: 2010-02-08 19:18:44 +0100 (Mon, 08 Feb 2010)
New Revision: 27748

Modified:
   
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
   
branches/1.3/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
   branches/1.3/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php
   
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
   
branches/1.4/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
   branches/1.4/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php
Log:
[1.3, 1.4] fixed form filtering by 0 on a number column (closes #8175)

Modified: 
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
===================================================================
--- 
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
   2010-02-08 18:02:19 UTC (rev 27747)
+++ 
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
   2010-02-08 18:18:44 UTC (rev 27748)
@@ -243,7 +243,7 @@
     {
       $query->addWhere(sprintf('%s.%s IS NULL', $query->getRootAlias(), 
$fieldName));
     }
-    else if (is_array($values) && isset($values['text']) && '' != 
$values['text'])
+    else if (is_array($values) && isset($values['text']) && '' !== 
$values['text'])
     {
       $query->addWhere(sprintf('%s.%s = ?', $query->getRootAlias(), 
$fieldName), $values['text']);
     }

Modified: 
branches/1.3/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
===================================================================
--- 
branches/1.3/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
       2010-02-08 18:02:19 UTC (rev 27747)
+++ 
branches/1.3/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
       2010-02-08 18:18:44 UTC (rev 27748)
@@ -3,7 +3,7 @@
 $app = 'frontend';
 include dirname(__FILE__).'/../../bootstrap/functional.php';
 
-$t = new lime_test(10);
+$t = new lime_test(12);
 
 class TestFormFilter extends ArticleFormFilter
 {
@@ -15,12 +15,14 @@
       'name'        => new sfWidgetFormInputText(),
       'nomethod_bc' => new sfWidgetFormInputText(),
       'nomethod'    => new sfWidgetFormInputText(),
+      'author_id'   => new sfWidgetFormInputText(),
     ));
 
     $this->setValidators(array(
       'name'        => new sfValidatorPass(),
       'nomethod_bc' => new sfValidatorPass(),
       'nomethod'    => new sfValidatorPass(),
+      'author_id'   => new sfValidatorPass(),
     ));
   }
 
@@ -34,6 +36,7 @@
     return array_merge(parent::getFields(), array(
       'body'        => 'Invalid',
       'nomethod_bc' => 'Text',
+      'author_id'   => 'Number',
     ));
   }
 }
@@ -96,6 +99,13 @@
 $filter->getQuery();
 $t->is_deeply($filter->processedFields, array('name'), '->getQuery() processes 
fields not specified in getFields()');
 
+// pass 0 to number filter
+$filter = new TestFormFilter();
+$filter->bind(array('author_id' => array('text' => 0)));
+$query = $filter->getQuery();
+$t->is(trim($query->getDql()), 'FROM Article r WHERE r.author_id = ?', 
'->getQuery() filters by a 0 number');
+$t->is($query->getFlattenedParams(), array(0), '->getQuery() filters by a 0 
number');
+
 $t->diag('->setTableMethod()');
 
 $filter = new ArticleFormFilter();

Modified: 
branches/1.3/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php
===================================================================
--- 
branches/1.3/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php   
    2010-02-08 18:02:19 UTC (rev 27747)
+++ 
branches/1.3/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php   
    2010-02-08 18:18:44 UTC (rev 27748)
@@ -213,7 +213,7 @@
       $criterion->addOr($criteria->getNewCriterion($colname, null, 
Criteria::ISNULL));
       $criteria->add($criterion);
     }
-    else if (is_array($values) && isset($values['text']) && '' != 
$values['text'])
+    else if (is_array($values) && isset($values['text']) && '' !== 
$values['text'])
     {
       $criteria->add($colname, $values['text']);
     }

Modified: 
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
===================================================================
--- 
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
   2010-02-08 18:02:19 UTC (rev 27747)
+++ 
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/form/sfFormFilterDoctrine.class.php
   2010-02-08 18:18:44 UTC (rev 27748)
@@ -243,7 +243,7 @@
     {
       $query->addWhere(sprintf('%s.%s IS NULL', $query->getRootAlias(), 
$fieldName));
     }
-    else if (is_array($values) && isset($values['text']) && '' != 
$values['text'])
+    else if (is_array($values) && isset($values['text']) && '' !== 
$values['text'])
     {
       $query->addWhere(sprintf('%s.%s = ?', $query->getRootAlias(), 
$fieldName), $values['text']);
     }

Modified: 
branches/1.4/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
===================================================================
--- 
branches/1.4/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
       2010-02-08 18:02:19 UTC (rev 27747)
+++ 
branches/1.4/lib/plugins/sfDoctrinePlugin/test/unit/form/sfFormFilterDoctrineTest.php
       2010-02-08 18:18:44 UTC (rev 27748)
@@ -3,7 +3,7 @@
 $app = 'frontend';
 include dirname(__FILE__).'/../../bootstrap/functional.php';
 
-$t = new lime_test(10);
+$t = new lime_test(12);
 
 class TestFormFilter extends ArticleFormFilter
 {
@@ -15,12 +15,14 @@
       'name'        => new sfWidgetFormInputText(),
       'nomethod_bc' => new sfWidgetFormInputText(),
       'nomethod'    => new sfWidgetFormInputText(),
+      'author_id'   => new sfWidgetFormInputText(),
     ));
 
     $this->setValidators(array(
       'name'        => new sfValidatorPass(),
       'nomethod_bc' => new sfValidatorPass(),
       'nomethod'    => new sfValidatorPass(),
+      'author_id'   => new sfValidatorPass(),
     ));
   }
 
@@ -34,6 +36,7 @@
     return array_merge(parent::getFields(), array(
       'body'        => 'Invalid',
       'nomethod_bc' => 'Text',
+      'author_id'   => 'Number',
     ));
   }
 }
@@ -96,6 +99,13 @@
 $filter->getQuery();
 $t->is_deeply($filter->processedFields, array('name'), '->getQuery() processes 
fields not specified in getFields()');
 
+// pass 0 to number filter
+$filter = new TestFormFilter();
+$filter->bind(array('author_id' => array('text' => 0)));
+$query = $filter->getQuery();
+$t->is(trim($query->getDql()), 'FROM Article r WHERE r.author_id = ?', 
'->getQuery() filters by a 0 number');
+$t->is($query->getFlattenedParams(), array(0), '->getQuery() filters by a 0 
number');
+
 $t->diag('->setTableMethod()');
 
 $filter = new ArticleFormFilter();

Modified: 
branches/1.4/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php
===================================================================
--- 
branches/1.4/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php   
    2010-02-08 18:02:19 UTC (rev 27747)
+++ 
branches/1.4/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php   
    2010-02-08 18:18:44 UTC (rev 27748)
@@ -213,7 +213,7 @@
       $criterion->addOr($criteria->getNewCriterion($colname, null, 
Criteria::ISNULL));
       $criteria->add($criterion);
     }
-    else if (is_array($values) && isset($values['text']) && '' != 
$values['text'])
+    else if (is_array($values) && isset($values['text']) && '' !== 
$values['text'])
     {
       $criteria->add($colname, $values['text']);
     }

-- 
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