3 namespace Drupal\Tests\file\Kernel\Views;
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;
12 * Tests the core Drupal\file\Plugin\views\field\Extension handler.
16 class ExtensionViewsFieldTest extends ViewsKernelTestBase {
21 public static $modules = ['file', 'file_test_views', 'user'];
24 * Views used by this test.
28 public static $testViews = ['file_extension_view'];
33 protected function setUp($import_test_views = TRUE) {
35 ViewTestData::createTestViews(get_class($this), ['file_test_views']);
37 $this->installEntitySchema('file');
39 file_put_contents('public://file.png', '');
41 'uri' => 'public://file.png',
42 'filename' => 'file.png',
45 file_put_contents('public://file.tar', '');
47 'uri' => 'public://file.tar',
48 'filename' => 'file.tar',
51 file_put_contents('public://file.tar.gz', '');
53 'uri' => 'public://file.tar.gz',
54 'filename' => 'file.tar.gz',
57 file_put_contents('public://file', '');
59 'uri' => 'public://file',
65 * Tests file extension views field handler extension_detect_tar option.
67 public function testFileExtensionTarOption() {
68 /** @var \Drupal\Core\Render\RendererInterface $renderer */
69 $renderer = \Drupal::service('renderer');
71 $view = Views::getView('file_extension_view');
73 $this->executeView($view);
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]), '');
83 // Test with the tar option.
84 $view = Views::getView('file_extension_view');
86 $view->initHandlers();
88 $view->field['extension']->options['settings']['extension_detect_tar'] = TRUE;
89 $this->executeView($view);
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]), '');