updated core to 7.53

This commit is contained in:
Bachir Soussi Chiadmi
2016-12-23 10:39:24 +01:00
parent e7aa033981
commit 400dd6e9f4
337 changed files with 9443 additions and 2570 deletions
+6 -2
View File
@@ -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',
+16 -6
View File
@@ -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'));
+3 -3
View File
@@ -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"
+1 -1
View File
@@ -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.
+72 -1
View File
@@ -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' => '&amp;');
$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"
+3 -3
View File
@@ -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);
}