public function UserPictureUpgradePathTest::testUserPictureUpgrade

Tests expected user picture conversions after a successful upgrade.

File

drupal/core/modules/system/lib/Drupal/system/Tests/Upgrade/UserPictureUpgradePathTest.php, line 38
Definition of Drupal\system\Tests\Upgrade\UserPictureUpgradePathTest.

Class

UserPictureUpgradePathTest
Tests upgrading a filled database with user picture data.

Namespace

Drupal\system\Tests\Upgrade

Code

public function testUserPictureUpgrade() {
  $this
    ->assertTrue($this
    ->performUpgrade(), 'The upgrade was completed successfully.');

  // Retrieve the field instance and check for migrated settings.
  $instance = field_info_instance('user', 'user_picture', 'user');
  $file = entity_load('file', $instance['settings']['default_image']);
  $this
    ->assertIdentical($instance['settings']['default_image'], $file
    ->id(), 'Default user picture has been migrated.');
  $this
    ->assertEqual($file->uri, 'public://user_pictures_dir/druplicon.png', 'File id matches the uri expected.');
  $this
    ->assertEqual($file->filename, 'druplicon.png');
  $this
    ->assertEqual($file->langcode, LANGUAGE_NOT_SPECIFIED);
  $this
    ->assertEqual($file->filemime, 'image/png');
  $this
    ->assertFalse(empty($file->uuid));

  // Check file usage for the default image.
  $usage = file_usage()
    ->listUsage($file);
  $field = field_info_field('user_picture');
  $this
    ->assertEqual(1, $usage['image']['default_image'][$field['id']]);
  $this
    ->assertEqual($instance['settings']['max_resolution'], '800x800', 'User picture maximum resolution has been migrated.');
  $this
    ->assertEqual($instance['settings']['max_filesize'], '700 KB', 'User picture maximum filesize has been migrated.');
  $this
    ->assertEqual($instance['description'], 'These are user picture guidelines.', 'User picture guidelines are now the user picture field description.');
  $this
    ->assertEqual($instance['settings']['file_directory'], 'user_pictures_dir', 'User picture directory path has been migrated.');
  $this
    ->assertEqual($instance['display']['default']['settings']['image_style'], 'thumbnail', 'User picture image style setting has been migrated.');

  // Verify compact view mode default settings.
  $this
    ->drupalGet('admin/config/people/accounts/display/compact');
  $this
    ->assertFieldByName('fields[member_for][type]', 'hidden');

  // Check the user picture and file usage record.
  $user = user_load(1);
  $file = file_load($user->user_picture[LANGUAGE_NOT_SPECIFIED][0]['fid']);
  $this
    ->assertEqual('public://user_pictures_dir/faked_image.png', $file->uri);
  $usage = file_usage()
    ->listUsage($file);
  $this
    ->assertEqual(1, $usage['file']['user'][1]);
}