Author: fabien
Date: 2010-01-19 11:34:52 +0100 (Tue, 19 Jan 2010)
New Revision: 26870

Modified:
   branches/1.3/lib/widget/sfWidgetFormSchema.class.php
   branches/1.3/test/unit/widget/sfWidgetFormSchemaTest.php
   branches/1.4/lib/widget/sfWidgetFormSchema.class.php
   branches/1.4/test/unit/widget/sfWidgetFormSchemaTest.php
Log:
[1.3, 1.4] fixed sfWidgetFormSchema::setPositions() which accepts duplication 
positions (closes #7992)

Modified: branches/1.3/lib/widget/sfWidgetFormSchema.class.php
===================================================================
--- branches/1.3/lib/widget/sfWidgetFormSchema.class.php        2010-01-19 
10:25:57 UTC (rev 26869)
+++ branches/1.3/lib/widget/sfWidgetFormSchema.class.php        2010-01-19 
10:34:52 UTC (rev 26870)
@@ -753,8 +753,8 @@
    */
   public function setPositions(array $positions)
   {
-    $positions = array_values($positions);
-    $current = array_keys($this->fields);
+    $positions = array_unique(array_values($positions));
+    $current   = array_keys($this->fields);
 
     if ($diff = array_diff($positions, $current))
     {

Modified: branches/1.3/test/unit/widget/sfWidgetFormSchemaTest.php
===================================================================
--- branches/1.3/test/unit/widget/sfWidgetFormSchemaTest.php    2010-01-19 
10:25:57 UTC (rev 26869)
+++ branches/1.3/test/unit/widget/sfWidgetFormSchemaTest.php    2010-01-19 
10:34:52 UTC (rev 26870)
@@ -10,7 +10,7 @@
 
 require_once(dirname(__FILE__).'/../../bootstrap/unit.php');
 
-$t = new lime_test(94);
+$t = new lime_test(95);
 
 $w1 = new sfWidgetFormInputText(array(), array('class' => 'foo1'));
 $w2 = new sfWidgetFormInputText();
@@ -239,6 +239,12 @@
 $w['w1'] = $w1;
 $t->is($w->getPositions(), array('w1', 'w2'), '->setPositions() changes all 
field positions');
 
+$w = new sfWidgetFormSchema();
+$w['w1'] = $w1;
+$w['w2'] = $w2;
+$w->setPositions(array('w1', 'w2', 'w1'));
+$t->is($w->getPositions(), array('w1', 'w2'), '->setPositions() does not 
repeat the fields');
+
 try
 {
   $w->setPositions(array('w1', 'w2', 'w3'));

Modified: branches/1.4/lib/widget/sfWidgetFormSchema.class.php
===================================================================
--- branches/1.4/lib/widget/sfWidgetFormSchema.class.php        2010-01-19 
10:25:57 UTC (rev 26869)
+++ branches/1.4/lib/widget/sfWidgetFormSchema.class.php        2010-01-19 
10:34:52 UTC (rev 26870)
@@ -753,8 +753,8 @@
    */
   public function setPositions(array $positions)
   {
-    $positions = array_values($positions);
-    $current = array_keys($this->fields);
+    $positions = array_unique(array_values($positions));
+    $current   = array_keys($this->fields);
 
     if ($diff = array_diff($positions, $current))
     {

Modified: branches/1.4/test/unit/widget/sfWidgetFormSchemaTest.php
===================================================================
--- branches/1.4/test/unit/widget/sfWidgetFormSchemaTest.php    2010-01-19 
10:25:57 UTC (rev 26869)
+++ branches/1.4/test/unit/widget/sfWidgetFormSchemaTest.php    2010-01-19 
10:34:52 UTC (rev 26870)
@@ -10,7 +10,7 @@
 
 require_once(dirname(__FILE__).'/../../bootstrap/unit.php');
 
-$t = new lime_test(94);
+$t = new lime_test(95);
 
 $w1 = new sfWidgetFormInputText(array(), array('class' => 'foo1'));
 $w2 = new sfWidgetFormInputText();
@@ -239,6 +239,12 @@
 $w['w1'] = $w1;
 $t->is($w->getPositions(), array('w1', 'w2'), '->setPositions() changes all 
field positions');
 
+$w = new sfWidgetFormSchema();
+$w['w1'] = $w1;
+$w['w2'] = $w2;
+$w->setPositions(array('w1', 'w2', 'w1'));
+$t->is($w->getPositions(), array('w1', 'w2'), '->setPositions() does not 
repeat the fields');
+
 try
 {
   $w->setPositions(array('w1', 'w2', 'w3'));

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