updated core to 7.53
This commit is contained in:
@@ -30,8 +30,9 @@
|
||||
*
|
||||
* @return
|
||||
* Array with optional keys:
|
||||
* - title: Title for the tab on the search page for this module. Defaults
|
||||
* to the module name if not given.
|
||||
* - title: Title for the tab on the search page for this module. Title must
|
||||
* be untranslated. Outside of this return array, pass the title through the
|
||||
* t() function to register it as a translatable string.
|
||||
* - path: Path component after 'search/' for searching with this module.
|
||||
* Defaults to the module name if not given.
|
||||
* - conditions_callback: An implementation of callback_search_conditions().
|
||||
@@ -39,6 +40,9 @@
|
||||
* @ingroup search
|
||||
*/
|
||||
function hook_search_info() {
|
||||
// Make the title translatable.
|
||||
t('Content');
|
||||
|
||||
return array(
|
||||
'title' => 'Content',
|
||||
'path' => 'node',
|
||||
|
||||
@@ -149,6 +149,17 @@ class SearchQuery extends SelectQueryExtender {
|
||||
$this->searchExpression = $expression;
|
||||
$this->type = $module;
|
||||
|
||||
// Add a search_* tag. This needs to be added before any preExecute methods
|
||||
// for decorated queries are called, as $this->prepared will be set to TRUE
|
||||
// and tags added in the execute method will never get used. For example,
|
||||
// if $query is extended by 'SearchQuery' then 'PagerDefault', the
|
||||
// search-specific tag will be added too late (when preExecute() has
|
||||
// already been called from the PagerDefault extender), and as a
|
||||
// consequence will not be available to hook_query_alter() implementations,
|
||||
// nor will the correct hook_query_TAG_alter() implementations get invoked.
|
||||
// See node_search_execute().
|
||||
$this->addTag('search_' . $module);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -398,10 +409,10 @@ class SearchQuery extends SelectQueryExtender {
|
||||
* used. However, if at least one call to addScore() has taken place, the
|
||||
* keyword relevance score is not automatically added.
|
||||
*
|
||||
* Also note that if you call orderBy() directly on the query, search scores
|
||||
* will not automatically be used to order search results. Your orderBy()
|
||||
* expression can reference 'calculated_score', which will be the total
|
||||
* calculated score value.
|
||||
* Note that you must use this method to add ordering to your searches, and
|
||||
* not call orderBy() directly, when using the SearchQuery extender. This is
|
||||
* because of the two-pass system the SearchQuery class uses to normalize
|
||||
* scores.
|
||||
*
|
||||
* @param $score
|
||||
* The score expression, which should evaluate to a number between 0 and 1.
|
||||
@@ -494,9 +505,8 @@ class SearchQuery extends SelectQueryExtender {
|
||||
$this->orderBy('calculated_score', 'DESC');
|
||||
}
|
||||
|
||||
// Add tag and useful metadata.
|
||||
// Add useful metadata.
|
||||
$this
|
||||
->addTag('search_' . $this->type)
|
||||
->addMetaData('normalize', $this->normalize)
|
||||
->fields('i', array('type', 'sid'));
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ files[] = search.test
|
||||
configure = admin/config/search/settings
|
||||
stylesheets[all][] = search.css
|
||||
|
||||
; Information added by Drupal.org packaging script on 2014-11-19
|
||||
version = "7.34"
|
||||
; Information added by Drupal.org packaging script on 2016-12-07
|
||||
version = "7.53"
|
||||
project = "drupal"
|
||||
datestamp = "1416429488"
|
||||
datestamp = "1481152423"
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ function search_view($module = NULL, $keys = '') {
|
||||
// which will get us back to this page callback. In other words, the search
|
||||
// form submits with POST but redirects to GET. This way we can keep
|
||||
// the search query URL clean as a whistle.
|
||||
if (empty($_POST['form_id']) || $_POST['form_id'] != 'search_form') {
|
||||
if (empty($_POST['form_id']) || ($_POST['form_id'] != 'search_form' && $_POST['form_id'] != 'search_block_form')) {
|
||||
$conditions = NULL;
|
||||
if (isset($info['conditions_callback']) && function_exists($info['conditions_callback'])) {
|
||||
// Build an optional array of more search conditions.
|
||||
|
||||
@@ -666,6 +666,24 @@ class SearchBlockTestCase extends DrupalWebTestCase {
|
||||
url('search/node/', array('absolute' => TRUE)),
|
||||
'Redirected to correct url.'
|
||||
);
|
||||
|
||||
// Test that after entering a too-short keyword in the form, you can then
|
||||
// search again with a longer keyword. First test using the block form.
|
||||
$terms = array('search_block_form' => 'a');
|
||||
$this->drupalPost('node', $terms, t('Search'));
|
||||
$this->assertText('You must include at least one positive keyword with 3 characters or more');
|
||||
$terms = array('search_block_form' => 'foo');
|
||||
$this->drupalPost(NULL, $terms, t('Search'));
|
||||
$this->assertNoText('You must include at least one positive keyword with 3 characters or more');
|
||||
$this->assertText('Your search yielded no results');
|
||||
|
||||
// Same test again, using the search page form for the second search this time.
|
||||
$terms = array('search_block_form' => 'a');
|
||||
$this->drupalPost('node', $terms, t('Search'));
|
||||
$terms = array('keys' => 'foo');
|
||||
$this->drupalPost(NULL, $terms, t('Search'));
|
||||
$this->assertNoText('You must include at least one positive keyword with 3 characters or more');
|
||||
$this->assertText('Your search yielded no results');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2029,10 +2047,11 @@ class SearchNodeAccessTest extends DrupalWebTestCase {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that search returns results with punctuation in the search phrase.
|
||||
* Tests that search works with punctuation and HTML entities.
|
||||
*/
|
||||
function testPhraseSearchPunctuation() {
|
||||
$node = $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => "The bunny's ears were fuzzy.")))));
|
||||
$node2 = $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => 'Dignissim Aliquam & Quieligo meus natu quae quia te. Damnum© erat— neo pneum. Facilisi feugiat ibidem ratis.')))));
|
||||
|
||||
// Update the search index.
|
||||
module_invoke_all('update_index');
|
||||
@@ -2045,6 +2064,58 @@ class SearchNodeAccessTest extends DrupalWebTestCase {
|
||||
$edit = array('keys' => '"bunny\'s"');
|
||||
$this->drupalPost('search/node', $edit, t('Search'));
|
||||
$this->assertText($node->title);
|
||||
|
||||
// Search for "&" and verify entities are not broken up in the output.
|
||||
$edit = array('keys' => '&');
|
||||
$this->drupalPost('search/node', $edit, t('Search'));
|
||||
$this->assertNoRaw('<strong>&</strong>amp;');
|
||||
$this->assertText('You must include at least one positive keyword');
|
||||
|
||||
$edit = array('keys' => '&');
|
||||
$this->drupalPost('search/node', $edit, t('Search'));
|
||||
$this->assertNoRaw('<strong>&</strong>amp;');
|
||||
$this->assertText('You must include at least one positive keyword');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests node search with query tags.
|
||||
*/
|
||||
class SearchNodeTagTest extends DrupalWebTestCase {
|
||||
public $test_user;
|
||||
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Node search query tags',
|
||||
'description' => 'Tests Node search tags functionality.',
|
||||
'group' => 'Search',
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('search', 'search_node_tags');
|
||||
node_access_rebuild();
|
||||
|
||||
// Create a test user and log in.
|
||||
$this->test_user = $this->drupalCreateUser(array('search content'));
|
||||
$this->drupalLogin($this->test_user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that the correct tags are available and hooks invoked.
|
||||
*/
|
||||
function testNodeSearchQueryTags() {
|
||||
$this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => 'testing testing testing.')))));
|
||||
|
||||
// Update the search index.
|
||||
module_invoke_all('update_index');
|
||||
search_update_totals();
|
||||
|
||||
$edit = array('keys' => 'testing');
|
||||
$this->drupalPost('search/node', $edit, t('Search'));
|
||||
|
||||
$this->assertTrue(variable_get('search_node_tags_test_query_tag', FALSE), 'hook_query_alter() was invoked and the query contained the "search_node" tag.');
|
||||
$this->assertTrue(variable_get('search_node_tags_test_query_tag_hook', FALSE), 'hook_query_search_node_alter() was invoked.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ version = VERSION
|
||||
core = 7.x
|
||||
hidden = TRUE
|
||||
|
||||
; Information added by Drupal.org packaging script on 2014-11-19
|
||||
version = "7.34"
|
||||
; Information added by Drupal.org packaging script on 2016-12-07
|
||||
version = "7.53"
|
||||
project = "drupal"
|
||||
datestamp = "1416429488"
|
||||
datestamp = "1481152423"
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ version = VERSION
|
||||
core = 7.x
|
||||
hidden = TRUE
|
||||
|
||||
; Information added by Drupal.org packaging script on 2014-11-19
|
||||
version = "7.34"
|
||||
; Information added by Drupal.org packaging script on 2016-12-07
|
||||
version = "7.53"
|
||||
project = "drupal"
|
||||
datestamp = "1416429488"
|
||||
datestamp = "1481152423"
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
name = "Test search node tags"
|
||||
description = "Support module for Node search tags testing."
|
||||
package = Testing
|
||||
version = VERSION
|
||||
core = 7.x
|
||||
hidden = TRUE
|
||||
|
||||
; Information added by Drupal.org packaging script on 2016-12-07
|
||||
version = "7.53"
|
||||
project = "drupal"
|
||||
datestamp = "1481152423"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Dummy module implementing a node search hooks for search module testing.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Implements hook_query_alter().
|
||||
*/
|
||||
function search_node_tags_query_alter(QueryAlterableInterface $query) {
|
||||
if ($query->hasTag('search_node')) {
|
||||
variable_set('search_node_tags_test_query_tag', TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_query_TAG_alter().
|
||||
*/
|
||||
function search_node_tags_query_search_node_alter(QueryAlterableInterface $query) {
|
||||
variable_set('search_node_tags_test_query_tag_hook', TRUE);
|
||||
}
|
||||
Reference in New Issue
Block a user