From 2acf463dfed135050f54eab64884e27efdf7507d Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Fri, 5 Feb 2010 21:44:35 +0000
Subject: [PATCH] - Patch #674626 by asimmonds: fixed text format filter list
 not being ordered correctly.

---
 modules/filter/filter.admin.inc | 1 +
 modules/filter/filter.test      | 8 +++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/modules/filter/filter.admin.inc b/modules/filter/filter.admin.inc
index abd7acce294a..f0824838bd1c 100644
--- a/modules/filter/filter.admin.inc
+++ b/modules/filter/filter.admin.inc
@@ -182,6 +182,7 @@ function filter_admin_format_form($form, &$form_state, $format) {
       '#default_value' => $filters[$name]->weight,
       '#parents' => array('filters', $name, 'weight'),
     );
+    $form['filters']['order'][$name]['#weight'] = $filters[$name]->weight;
   }
 
   // Filter settings.
diff --git a/modules/filter/filter.test b/modules/filter/filter.test
index a15c2683840c..64d3cb51453c 100644
--- a/modules/filter/filter.test
+++ b/modules/filter/filter.test
@@ -231,6 +231,9 @@ class FilterAdminTestCase extends DrupalWebTestCase {
     $result = db_query('SELECT * FROM {cache_filter}')->fetchObject();
     $this->assertFalse($result, t('Cache cleared.'));
 
+    $elements = $this->xpath('//select[@name="filters[' . $first_filter . '][weight]"]/following::select[@name="filters[' . $second_filter . '][weight]"]');
+    $this->assertTrue(!empty($elements), t('Order confirmed in admin interface.'));
+
     // Reorder filters.
     $edit = array();
     $edit['filters[' . $second_filter . '][weight]'] = 1;
@@ -239,6 +242,9 @@ class FilterAdminTestCase extends DrupalWebTestCase {
     $this->assertFieldByName('filters[' . $second_filter . '][weight]', 1, t('Order saved successfully.'));
     $this->assertFieldByName('filters[' . $first_filter . '][weight]', 2, t('Order saved successfully.'));
 
+    $elements = $this->xpath('//select[@name="filters[' . $second_filter . '][weight]"]/following::select[@name="filters[' . $first_filter . '][weight]"]');
+    $this->assertTrue(!empty($elements), t('Reorder confirmed in admin interface.'));
+
     $result = db_query('SELECT * FROM {filter} WHERE format = :format ORDER BY weight ASC', array(':format' => $filtered));
     $filters = array();
     foreach ($result as $filter) {
@@ -246,7 +252,7 @@ class FilterAdminTestCase extends DrupalWebTestCase {
         $filters[] = $filter;
       }
     }
-    $this->assertTrue(($filters[0]->name == $second_filter && $filters[1]->name == $first_filter), t('Order confirmed.'));
+    $this->assertTrue(($filters[0]->name == $second_filter && $filters[1]->name == $first_filter), t('Order confirmed in database.'));
 
     // Add format.
     $edit = array();
-- 
GitLab