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.