annotate core/modules/image/src/Tests/Views/RelationshipUserImageDataTest.php @ 9:1fc0ff908d1f

Add another data file
author Chris Cannam
date Mon, 05 Feb 2018 12:34:32 +0000
parents 4c8ae668cc8c
children 1fec387a4317
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\image\Tests\Views;
Chris@0 4
Chris@0 5 use Drupal\field\Entity\FieldConfig;
Chris@0 6 use Drupal\file\Entity\File;
Chris@0 7 use Drupal\views\Tests\ViewTestBase;
Chris@0 8 use Drupal\views\Views;
Chris@0 9 use Drupal\views\Tests\ViewTestData;
Chris@0 10 use Drupal\field\Entity\FieldStorageConfig;
Chris@0 11
Chris@0 12 /**
Chris@0 13 * Tests image on user relationship handler.
Chris@0 14 *
Chris@0 15 * @group image
Chris@0 16 */
Chris@0 17 class RelationshipUserImageDataTest extends ViewTestBase {
Chris@0 18
Chris@0 19 /**
Chris@0 20 * Modules to install.
Chris@0 21 *
Chris@0 22 * @var array
Chris@0 23 */
Chris@0 24 public static $modules = ['image', 'image_test_views', 'user'];
Chris@0 25
Chris@0 26 /**
Chris@0 27 * Views used by this test.
Chris@0 28 *
Chris@0 29 * @var array
Chris@0 30 */
Chris@0 31 public static $testViews = ['test_image_user_image_data'];
Chris@0 32
Chris@0 33 protected function setUp() {
Chris@0 34 parent::setUp();
Chris@0 35
Chris@0 36 // Create the user profile field and instance.
Chris@0 37 FieldStorageConfig::create([
Chris@0 38 'entity_type' => 'user',
Chris@0 39 'field_name' => 'user_picture',
Chris@0 40 'type' => 'image',
Chris@0 41 'translatable' => '0',
Chris@0 42 ])->save();
Chris@0 43 FieldConfig::create([
Chris@0 44 'label' => 'User Picture',
Chris@0 45 'description' => '',
Chris@0 46 'field_name' => 'user_picture',
Chris@0 47 'entity_type' => 'user',
Chris@0 48 'bundle' => 'user',
Chris@0 49 'required' => 0,
Chris@0 50 ])->save();
Chris@0 51
Chris@0 52 ViewTestData::createTestViews(get_class($this), ['image_test_views']);
Chris@0 53 }
Chris@0 54
Chris@0 55 /**
Chris@0 56 * Tests using the views image relationship.
Chris@0 57 */
Chris@0 58 public function testViewsHandlerRelationshipUserImageData() {
Chris@0 59 $file = File::create([
Chris@0 60 'fid' => 2,
Chris@0 61 'uid' => 2,
Chris@0 62 'filename' => 'image-test.jpg',
Chris@0 63 'uri' => "public://image-test.jpg",
Chris@0 64 'filemime' => 'image/jpeg',
Chris@0 65 'created' => 1,
Chris@0 66 'changed' => 1,
Chris@0 67 'status' => FILE_STATUS_PERMANENT,
Chris@0 68 ]);
Chris@0 69 $file->enforceIsNew();
Chris@0 70 file_put_contents($file->getFileUri(), file_get_contents('core/modules/simpletest/files/image-1.png'));
Chris@0 71 $file->save();
Chris@0 72
Chris@0 73 $account = $this->drupalCreateUser();
Chris@0 74 $account->user_picture->target_id = 2;
Chris@0 75 $account->save();
Chris@0 76
Chris@0 77 $view = Views::getView('test_image_user_image_data');
Chris@0 78 // Tests \Drupal\taxonomy\Plugin\views\relationship\NodeTermData::calculateDependencies().
Chris@0 79 $expected = [
Chris@0 80 'module' => [
Chris@0 81 'file',
Chris@0 82 'user',
Chris@0 83 ],
Chris@0 84 ];
Chris@0 85 $this->assertIdentical($expected, $view->getDependencies());
Chris@0 86 $this->executeView($view);
Chris@0 87 $expected_result = [
Chris@0 88 [
Chris@0 89 'file_managed_user__user_picture_fid' => '2',
Chris@0 90 ],
Chris@0 91 ];
Chris@0 92 $column_map = ['file_managed_user__user_picture_fid' => 'file_managed_user__user_picture_fid'];
Chris@0 93 $this->assertIdenticalResultset($view, $expected_result, $column_map);
Chris@0 94 }
Chris@0 95
Chris@0 96 }