diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module index ba44c51..8a388e6 100644 --- a/core/modules/filter/filter.module +++ b/core/modules/filter/filter.module @@ -686,7 +686,7 @@ function _filter_list_cmp($a, $b) { */ function _filter_format_filter_cmp($a, $b) { if ($a->weight != $b->weight) { - return $a->weight > $b->weight; + return ($a->weight < $b->weight) ? -1 : 1; } elseif ($a->module != $b->module) { return strcmp($a->module, $b->module); diff --git a/core/modules/filter/lib/Drupal/filter/Tests/FilterAdminTest.php b/core/modules/filter/lib/Drupal/filter/Tests/FilterAdminTest.php index fa28d80..1e0cd24 100644 --- a/core/modules/filter/lib/Drupal/filter/Tests/FilterAdminTest.php +++ b/core/modules/filter/lib/Drupal/filter/Tests/FilterAdminTest.php @@ -153,9 +153,13 @@ function testFilterAdmin() { $this->assertTrue(!empty($elements), t('Reorder confirmed in admin interface.')); $filter_format = filter_format_load($filtered); - $result = $filter_format->filters; - $filters = array(); - foreach ($filter_format->filters as $filter_name => $filter) { + + // The filter format is not saved in 'order', but the order is defined + // in the filter array. So, check if after ordering the filter, the + // expected order is correct. + $filter_format_filters = $filter_format->filters; + @uasort($filter_format_filters, '_filter_format_filter_cmp'); + foreach ($filter_format_filters as $filter_name => $filter) { if ($filter_name == $second_filter || $filter_name == $first_filter) { $filters[] = $filter_name; }