diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/user/user.module | 4 | ||||
-rw-r--r-- | modules/user/user.test | 20 |
2 files changed, 23 insertions, 1 deletions
diff --git a/modules/user/user.module b/modules/user/user.module index 874efae6d..45ea7f280 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -1409,7 +1409,9 @@ function template_preprocess_user_picture(&$variables) { } if (isset($filepath)) { $alt = t("@user's picture", array('@user' => format_username($account))); - if (module_exists('image') && $style = variable_get('user_picture_style', '')) { + // If the image does not have a valid Drupal scheme (for eg. HTTP), + // don't load image styles. + if (module_exists('image') && file_valid_uri($filepath) && $style = variable_get('user_picture_style', '')) { $variables['user_picture'] = theme('image_style', array('style_name' => $style, 'path' => $filepath, 'alt' => $alt, 'title' => $alt)); } else { diff --git a/modules/user/user.test b/modules/user/user.test index 91549f0de..2cfb45671 100644 --- a/modules/user/user.test +++ b/modules/user/user.test @@ -916,6 +916,26 @@ class UserPictureTestCase extends DrupalWebTestCase { } } + /** + * Test HTTP schema working with user pictures. + */ + function testExternalPicture() { + $this->drupalLogin($this->user); + // Set the default picture to an URI with a HTTP schema. + $images = $this->drupalGetTestFiles('image'); + $image = $images[0]; + $pic_path = file_create_url($image->uri); + variable_set('user_picture_default', $pic_path); + + // Check if image is displayed in user's profile page. + $this->drupalGet('user'); + + // Get the user picture image via xpath. + $elements = $this->xpath('//div[@class="user-picture"]/img'); + $this->assertEqual(count($elements), 1, t("There is exactly one user picture on the user's profile page")); + $this->assertEqual($pic_path, (string) $elements[0]['src'], t("User picture source is correct.")); + } + function saveUserPicture($image) { $edit = array('files[picture_upload]' => drupal_realpath($image->uri)); $this->drupalPost('user/' . $this->user->uid . '/edit', $edit, t('Save')); |