Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / file / tests / src / Kernel / Views / ExtensionViewsFieldTest.php
1 <?php
2
3 namespace Drupal\Tests\file\Kernel\Views;
4
5 use Drupal\Core\Render\RenderContext;
6 use Drupal\file\Entity\File;
7 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
8 use Drupal\views\Views;
9 use Drupal\views\Tests\ViewTestData;
10
11 /**
12  * Tests the core Drupal\file\Plugin\views\field\Extension handler.
13  *
14  * @group file
15  */
16 class ExtensionViewsFieldTest extends ViewsKernelTestBase {
17
18   /**
19    * {@inheritdoc}
20    */
21   public static $modules = ['file', 'file_test_views', 'user'];
22
23   /**
24    * Views used by this test.
25    *
26    * @var array
27    */
28   public static $testViews = ['file_extension_view'];
29
30   /**
31    * {@inheritdoc}
32    */
33   protected function setUp($import_test_views = TRUE) {
34     parent::setUp();
35     ViewTestData::createTestViews(get_class($this), ['file_test_views']);
36
37     $this->installEntitySchema('file');
38
39     file_put_contents('public://file.png', '');
40     File::create([
41       'uri' => 'public://file.png',
42       'filename' => 'file.png',
43     ])->save();
44
45     file_put_contents('public://file.tar', '');
46     File::create([
47       'uri' => 'public://file.tar',
48       'filename' => 'file.tar',
49     ])->save();
50
51     file_put_contents('public://file.tar.gz', '');
52     File::create([
53       'uri' => 'public://file.tar.gz',
54       'filename' => 'file.tar.gz',
55     ])->save();
56
57     file_put_contents('public://file', '');
58     File::create([
59       'uri' => 'public://file',
60       'filename' => 'file',
61     ])->save();
62   }
63
64   /**
65    * Tests file extension views field handler extension_detect_tar option.
66    */
67   public function testFileExtensionTarOption() {
68     /** @var \Drupal\Core\Render\RendererInterface $renderer */
69     $renderer = \Drupal::service('renderer');
70
71     $view = Views::getView('file_extension_view');
72     $view->setDisplay();
73     $this->executeView($view);
74
75     // Test without the tar option.
76     $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
77       $this->assertEqual($view->field['extension']->advancedRender($view->result[0]), 'png');
78       $this->assertEqual($view->field['extension']->advancedRender($view->result[1]), 'tar');
79       $this->assertEqual($view->field['extension']->advancedRender($view->result[2]), 'gz');
80       $this->assertEqual($view->field['extension']->advancedRender($view->result[3]), '');
81     });
82
83     // Test with the tar option.
84     $view = Views::getView('file_extension_view');
85     $view->setDisplay();
86     $view->initHandlers();
87
88     $view->field['extension']->options['settings']['extension_detect_tar'] = TRUE;
89     $this->executeView($view);
90
91     $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
92       $this->assertEqual($view->field['extension']->advancedRender($view->result[0]), 'png');
93       $this->assertEqual($view->field['extension']->advancedRender($view->result[1]), 'tar');
94       $this->assertEqual($view->field['extension']->advancedRender($view->result[2]), 'tar.gz');
95       $this->assertEqual($view->field['extension']->advancedRender($view->result[3]), '');
96     });
97   }
98
99 }