From e8919c6d42f67955a35dd67dd616556972baa54d Mon Sep 17 00:00:00 2001
From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org>
Date: Sat, 13 Jul 2013 12:09:13 +0100
Subject: [PATCH] Issue #2009680 by DarthDrupal, cwells73, Samvel, adamcowboy,
 hussainweb: Fixed Replace theme() with drupal_render() in taxonomy module.

---
 .../Tests/TaxonomyTermIndentationTest.php     | 60 +++++++++++++++++++
 core/modules/taxonomy/taxonomy.admin.inc      |  9 ++-
 2 files changed, 68 insertions(+), 1 deletion(-)
 create mode 100644 core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php

diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php
new file mode 100644
index 000000000000..59970c4729ed
--- /dev/null
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\taxonomy\Tests\TaxonomyTermIndentationTest.
+ */
+
+namespace Drupal\taxonomy\Tests;
+
+/**
+ * Testing term indentation functionality in term list page.
+ */
+class TaxonomyTermIndentationTest extends TaxonomyTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('taxonomy');
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Taxonomy term indentation',
+      'description' => 'Ensure that the term indentation works properly.',
+      'group' => 'Taxonomy',
+    );
+  }
+
+  public function setUp() {
+    parent::setUp();
+    $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access'));
+    $this->drupalLogin($this->admin_user);
+    $this->vocabulary = $this->createVocabulary();
+  }
+
+  /**
+   * Tests term indentation.
+   */
+  function testTermIndentation() {
+    // Create three taxonomy terms.
+    $term1 = $this->createTerm($this->vocabulary);
+    $term2 = $this->createTerm($this->vocabulary);
+    $term3 = $this->createTerm($this->vocabulary);
+
+    // Indent the second term under the first one.
+    $edit = array(
+      'terms[tid:' . $term2->id() . ':0][term][tid]' => 2,
+      'terms[tid:' . $term2->id() . ':0][term][parent]' => 1,
+      'terms[tid:' . $term2->id() . ':0][term][depth]' => 1,
+      'terms[tid:' . $term2->id() . ':0][weight]' => 1,
+    );
+
+    // Submit the edited form and check for HTML indentation element presence.
+    $this->drupalPost('admin/structure/taxonomy/manage/' . $this->vocabulary->get('vid'), $edit, t('Save'));
+    $this->assertPattern('|<div class="indentation">&nbsp;</div>|');
+  }
+
+}
+
diff --git a/core/modules/taxonomy/taxonomy.admin.inc b/core/modules/taxonomy/taxonomy.admin.inc
index 62defe288ee7..4161f5af9108 100644
--- a/core/modules/taxonomy/taxonomy.admin.inc
+++ b/core/modules/taxonomy/taxonomy.admin.inc
@@ -159,8 +159,15 @@ function taxonomy_overview_terms($form, &$form_state, Vocabulary $vocabulary) {
   );
   foreach ($current_page as $key => $term) {
     $form['terms'][$key]['#term'] = $term;
+    $indentation = array();
+    if (isset($term->depth) && $term->depth > 0) {
+      $indentation = array(
+        '#theme' => 'indentation',
+        '#size' => $term->depth,
+      );
+    }
     $form['terms'][$key]['term'] = array(
-      '#prefix' => isset($term->depth->value) && $term->depth->value > 0 ? theme('indentation', array('size' => $term->depth->value)) : '',
+      '#prefix' => !empty($indentation) ? drupal_render($indentation) : '',
       '#type' => 'link',
       '#title' => $term->label(),
       '#href' => "taxonomy/term/" . $term->id(),
-- 
GitLab