diff --git a/core/misc/autocomplete.js b/core/misc/autocomplete.js index f91d58e..5e85be4 100644 --- a/core/misc/autocomplete.js +++ b/core/misc/autocomplete.js @@ -287,11 +287,10 @@ Drupal.ACDB.prototype.search = function (searchString) { this.timer = setTimeout(function () { db.owner.setStatus('begin'); - // Ajax GET request for autocompletion. We use Drupal.encodePath instead of - // encodeURIComponent to allow autocomplete search terms to contain slashes. + // Ajax GET request for autocompletion. $.ajax({ type: 'GET', - url: db.uri + '/' + Drupal.encodePath(searchString), + url: db.uri + '/' + encodeURIComponent(searchString), dataType: 'json', success: function (matches) { if (typeof matches.status == 'undefined' || matches.status != 0) { diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module index 5b02fa2..4eadf5a 100644 --- a/core/modules/taxonomy/taxonomy.module +++ b/core/modules/taxonomy/taxonomy.module @@ -312,21 +312,7 @@ function taxonomy_menu() { 'type' => MENU_CALLBACK, 'file' => 'taxonomy.pages.inc', ); - // We append /%menu_tail so the search text may contain slashes. - $items['taxonomy/autocomplete/%/%menu_tail'] = array( - 'title' => 'Autocomplete taxonomy', - 'page callback' => 'taxonomy_autocomplete', - 'page arguments' => array(2, 3), - 'access arguments' => array('access content'), - 'type' => MENU_CALLBACK, - 'file' => 'taxonomy.pages.inc', - // Needed for menu_tail_load(). - 'load arguments' => array('%map', '%index'), - ); - // This matches the vocabulary name without any search text. Even though this - // path is never called, its existence is checked by theme_textfield() and - // tested in ProfileTestAutocomplete. - $items['taxonomy/autocomplete/%'] = array( + $items['taxonomy/autocomplete'] = array( 'title' => 'Autocomplete taxonomy', 'page callback' => 'taxonomy_autocomplete', 'access arguments' => array('access content'), diff --git a/core/modules/taxonomy/taxonomy.test b/core/modules/taxonomy/taxonomy.test index 0760602..3e6301a 100644 --- a/core/modules/taxonomy/taxonomy.test +++ b/core/modules/taxonomy/taxonomy.test @@ -641,41 +641,6 @@ class TaxonomyTermTestCase extends TaxonomyWebTestCase { } /** - * Tests term autocompletion edge cases with slashes in the names. - */ - function testTermAutocompletion() { - // Add a term with a slash in the name. - $first_term = $this->createTerm($this->vocabulary); - $first_term->name = '10/16/2011'; - taxonomy_term_save($first_term); - // Add another term that differs after the slash character. - $second_term = $this->createTerm($this->vocabulary); - $second_term->name = '10/17/2011'; - taxonomy_term_save($second_term); - - // Try to autocomplete a term name that matches both terms. - // We should get both term in a json encoded string. - $input = '10/'; - $path = 'taxonomy/autocomplete/taxonomy_'; - $path .= $this->vocabulary->machine_name . '/' . $input; - // The result order is not guaranteed, so check each term separately. - $url = url($path, array('absolute' => TRUE)); - $result = drupal_http_request($url); - $data = drupal_json_decode($result->data); - $this->assertEqual($data[$first_term->name], check_plain($first_term->name), t('Autocomplete returned the first matching term')); - $this->assertEqual($data[$second_term->name], check_plain($second_term->name), t('Autocomplete returned the second matching term')); - - // Try to autocomplete a term name that matches first term. - // We should only get the first term in a json encoded string. - $input = '10/16'; - $url = 'taxonomy/autocomplete/taxonomy_'; - $url .= $this->vocabulary->machine_name . '/' . $input; - $this->drupalGet($url); - $target = array($first_term->name => check_plain($first_term->name)); - $this->assertRaw(drupal_json_encode($target), t('Autocomplete returns only the expected matching term.')); - } - - /** * Save, edit and delete a term using the user interface. */ function testTermInterface() {