updated core to 7.53
This commit is contained in:
@@ -7,8 +7,8 @@ dependencies[] = file
|
||||
files[] = image.test
|
||||
configure = admin/config/media/image-styles
|
||||
|
||||
; 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"
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ function image_help($path, $arg) {
|
||||
$effect = image_effect_definition_load($arg[7]);
|
||||
return isset($effect['help']) ? ('<p>' . $effect['help'] . '</p>') : NULL;
|
||||
case 'admin/config/media/image-styles/edit/%/effects/%':
|
||||
$effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[6]) : image_effect_load($arg[6], $arg[4]);
|
||||
$effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[6]) : image_effect_load($arg[7], $arg[5]);
|
||||
return isset($effect['help']) ? ('<p>' . $effect['help'] . '</p>') : NULL;
|
||||
}
|
||||
}
|
||||
@@ -801,6 +801,8 @@ function image_style_options($include_empty = TRUE, $output = CHECK_PLAIN) {
|
||||
*
|
||||
* @param $style
|
||||
* The image style
|
||||
* @param $scheme
|
||||
* The file scheme, for example 'public' for public files.
|
||||
*/
|
||||
function image_style_deliver($style, $scheme) {
|
||||
$args = func_get_args();
|
||||
@@ -833,8 +835,8 @@ function image_style_deliver($style, $scheme) {
|
||||
file_download($scheme, file_uri_target($derivative_uri));
|
||||
}
|
||||
else {
|
||||
$headers = module_invoke_all('file_download', $image_uri);
|
||||
if (in_array(-1, $headers) || empty($headers)) {
|
||||
$headers = file_download_headers($image_uri);
|
||||
if (empty($headers)) {
|
||||
return MENU_ACCESS_DENIED;
|
||||
}
|
||||
if (count($headers)) {
|
||||
@@ -1027,7 +1029,15 @@ function image_style_url($style_name, $path) {
|
||||
// The token query is added even if the 'image_allow_insecure_derivatives'
|
||||
// variable is TRUE, so that the emitted links remain valid if it is changed
|
||||
// back to the default FALSE.
|
||||
$token_query = array(IMAGE_DERIVATIVE_TOKEN => image_style_path_token($style_name, $original_uri));
|
||||
// However, sites which need to prevent the token query from being emitted at
|
||||
// all can additionally set the 'image_suppress_itok_output' variable to TRUE
|
||||
// to achieve that (if both are set, the security token will neither be
|
||||
// emitted in the image derivative URL nor checked for in
|
||||
// image_style_deliver()).
|
||||
$token_query = array();
|
||||
if (!variable_get('image_suppress_itok_output', FALSE)) {
|
||||
$token_query = array(IMAGE_DERIVATIVE_TOKEN => image_style_path_token($style_name, $original_uri));
|
||||
}
|
||||
|
||||
// If not using clean URLs, the image derivative callback is only available
|
||||
// with the query string. If the file does not exist, use url() to ensure
|
||||
@@ -1039,8 +1049,12 @@ function image_style_url($style_name, $path) {
|
||||
}
|
||||
|
||||
$file_url = file_create_url($uri);
|
||||
// Append the query string with the token.
|
||||
return $file_url . (strpos($file_url, '?') !== FALSE ? '&' : '?') . drupal_http_build_query($token_query);
|
||||
// Append the query string with the token, if necessary.
|
||||
if ($token_query) {
|
||||
$file_url .= (strpos($file_url, '?') !== FALSE ? '&' : '?') . drupal_http_build_query($token_query);
|
||||
}
|
||||
|
||||
return $file_url;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -32,7 +32,7 @@ class ImageFieldTestCase extends DrupalWebTestCase {
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('image');
|
||||
$this->admin_user = $this->drupalCreateUser(array('access content', 'access administration pages', 'administer site configuration', 'administer content types', 'administer nodes', 'create article content', 'edit any article content', 'delete any article content', 'administer image styles'));
|
||||
$this->admin_user = $this->drupalCreateUser(array('access content', 'access administration pages', 'administer site configuration', 'administer content types', 'administer nodes', 'create article content', 'edit any article content', 'delete any article content', 'administer image styles', 'administer fields'));
|
||||
$this->drupalLogin($this->admin_user);
|
||||
}
|
||||
|
||||
@@ -77,6 +77,24 @@ class ImageFieldTestCase extends DrupalWebTestCase {
|
||||
return field_create_instance($instance);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a random style.
|
||||
*
|
||||
* @return array
|
||||
* A list containing the details of the generated image style.
|
||||
*/
|
||||
function createRandomStyle() {
|
||||
$style_name = strtolower($this->randomName(10));
|
||||
$style_label = $this->randomString();
|
||||
image_style_save(array('name' => $style_name, 'label' => $style_label));
|
||||
$style_path = 'admin/config/media/image-styles/edit/' . $style_name;
|
||||
return array(
|
||||
'name' => $style_name,
|
||||
'label' => $style_label,
|
||||
'path' => $style_path,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload an image to a node.
|
||||
*
|
||||
@@ -183,6 +201,22 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase {
|
||||
$this->assertResponse(404, 'Accessing an image style URL with a source image that does not exist provides a 404 error response.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that we do not pass an array to drupal_add_http_header.
|
||||
*/
|
||||
function testImageContentTypeHeaders() {
|
||||
$files = $this->drupalGetTestFiles('image');
|
||||
$file = array_shift($files);
|
||||
// Copy the test file to private folder.
|
||||
$private_file = file_copy($file, 'private://', FILE_EXISTS_RENAME);
|
||||
// Tell image_module_test module to return the headers we want to test.
|
||||
variable_set('image_module_test_invalid_headers', $private_file->uri);
|
||||
// Invoke image_style_deliver so it will try to set headers.
|
||||
$generated_url = image_style_url($this->style_name, $private_file->uri);
|
||||
$this->drupalGet($generated_url);
|
||||
variable_del('image_module_test_invalid_headers');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test image_style_url().
|
||||
*/
|
||||
@@ -251,7 +285,7 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase {
|
||||
$this->assertEqual($this->drupalGetHeader('Content-Length'), $generated_image_info['file_size'], 'Expected Content-Length was reported.');
|
||||
if ($scheme == 'private') {
|
||||
$this->assertEqual($this->drupalGetHeader('Expires'), 'Sun, 19 Nov 1978 05:00:00 GMT', 'Expires header was sent.');
|
||||
$this->assertEqual($this->drupalGetHeader('Cache-Control'), 'no-cache, must-revalidate, post-check=0, pre-check=0', 'Cache-Control header was set to prevent caching.');
|
||||
$this->assertEqual($this->drupalGetHeader('Cache-Control'), 'no-cache, must-revalidate', 'Cache-Control header was set to prevent caching.');
|
||||
$this->assertEqual($this->drupalGetHeader('X-Image-Owned-By'), 'image_module_test', 'Expected custom header has been added.');
|
||||
|
||||
// Make sure that a second request to the already existing derivate works
|
||||
@@ -330,6 +364,15 @@ class ImageStylesPathAndUrlTestCase extends DrupalWebTestCase {
|
||||
$this->drupalGet($nested_url);
|
||||
$this->assertResponse(200, 'Image was accessible when a correct token was provided in the URL.');
|
||||
|
||||
// Suppress the security token in the URL, then get the URL of a file. Check
|
||||
// that the security token is not present in the URL but that the image is
|
||||
// still accessible.
|
||||
variable_set('image_suppress_itok_output', TRUE);
|
||||
$generate_url = image_style_url($this->style_name, $original_uri);
|
||||
$this->assertIdentical(strpos($generate_url, IMAGE_DERIVATIVE_TOKEN . '='), FALSE, 'The security token does not appear in the image style URL.');
|
||||
$this->drupalGet($generate_url);
|
||||
$this->assertResponse(200, 'Image was accessible at the URL with a missing token.');
|
||||
|
||||
// Check that requesting a nonexistent image does not create any new
|
||||
// directories in the file system.
|
||||
$directory = $scheme . '://styles/' . $this->style_name . '/' . $scheme . '/' . $this->randomName();
|
||||
@@ -460,6 +503,58 @@ class ImageEffectsUnitTest extends ImageToolkitTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the administrative user interface.
|
||||
*/
|
||||
class ImageAdminUiTestCase extends ImageFieldTestCase {
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Administrative user interface',
|
||||
'description' => 'Tests the forms used in the administrative user interface.',
|
||||
'group' => 'Image',
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp(array('image'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the help text is available on the add effect form.
|
||||
*/
|
||||
function testAddEffectHelpText() {
|
||||
// Create a random image style.
|
||||
$style = $this->createRandomStyle();
|
||||
|
||||
// Open the add effect form and check for the help text.
|
||||
$this->drupalGet($style['path'] . '/add/image_crop');
|
||||
$this->assertText(t('Cropping will remove portions of an image to make it the specified dimensions.'), 'The image style effect help text was displayed on the add effect page.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the help text is available on the edit effect form.
|
||||
*/
|
||||
function testEditEffectHelpText() {
|
||||
// Create a random image style.
|
||||
$random_style = $this->createRandomStyle();
|
||||
|
||||
// Add the crop effect to the image style.
|
||||
$edit = array();
|
||||
$edit['data[width]'] = 20;
|
||||
$edit['data[height]'] = 20;
|
||||
$this->drupalPost($random_style['path'] . '/add/image_crop', $edit, t('Add effect'));
|
||||
|
||||
// Open the edit effect form and check for the help text.
|
||||
drupal_static_reset('image_styles');
|
||||
$style = image_style_load($random_style['name']);
|
||||
|
||||
foreach ($style['effects'] as $ieid => $effect) {
|
||||
$this->drupalGet($random_style['path'] . '/effects/' . $ieid);
|
||||
$this->assertText(t('Cropping will remove portions of an image to make it the specified dimensions.'), 'The image style effect help text was displayed on the edit effect page.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests creation, deletion, and editing of image styles and effects.
|
||||
*/
|
||||
|
||||
@@ -6,8 +6,8 @@ core = 7.x
|
||||
files[] = image_module_test.module
|
||||
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"
|
||||
|
||||
|
||||
@@ -9,6 +9,9 @@ function image_module_test_file_download($uri) {
|
||||
if (variable_get('image_module_test_file_download', FALSE) == $uri) {
|
||||
return array('X-Image-Owned-By' => 'image_module_test');
|
||||
}
|
||||
if (variable_get('image_module_test_invalid_headers', FALSE) == $uri) {
|
||||
return array('Content-Type' => 'image/png');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user