Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / views / tests / src / Kernel / Handler / FieldBooleanTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Kernel\Handler;
4
5 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
6 use Drupal\views\Views;
7
8 /**
9  * Tests the core Drupal\views\Plugin\views\field\Boolean handler.
10  *
11  * @group views
12  */
13 class FieldBooleanTest extends ViewsKernelTestBase {
14
15   /**
16    * Views used by this test.
17    *
18    * @var array
19    */
20   public static $testViews = ['test_view'];
21
22   public function dataSet() {
23     // Use default dataset but remove the age from john and paul
24     $data = parent::dataSet();
25     $data[0]['age'] = 0;
26     $data[3]['age'] = 0;
27     return $data;
28   }
29
30   public function viewsData() {
31     $data = parent::viewsData();
32     $data['views_test_data']['age']['field']['id'] = 'boolean';
33     return $data;
34   }
35
36   public function testFieldBoolean() {
37     $view = Views::getView('test_view');
38     $view->setDisplay();
39
40     $view->displayHandlers->get('default')->overrideOption('fields', [
41       'age' => [
42         'id' => 'age',
43         'table' => 'views_test_data',
44         'field' => 'age',
45         'relationship' => 'none',
46       ],
47     ]);
48
49     $this->executeView($view);
50
51     // This is john, which has no age, there are no custom formats defined, yet.
52     $this->assertEqual(t('No'), $view->field['age']->advancedRender($view->result[0]));
53     $this->assertEqual(t('Yes'), $view->field['age']->advancedRender($view->result[1]));
54
55     // Reverse the output.
56     $view->field['age']->options['not'] = TRUE;
57     $this->assertEqual(t('Yes'), $view->field['age']->advancedRender($view->result[0]));
58     $this->assertEqual(t('No'), $view->field['age']->advancedRender($view->result[1]));
59
60     unset($view->field['age']->options['not']);
61
62     // Use another output format.
63     $view->field['age']->options['type'] = 'true-false';
64     $this->assertEqual(t('False'), $view->field['age']->advancedRender($view->result[0]));
65     $this->assertEqual(t('True'), $view->field['age']->advancedRender($view->result[1]));
66
67     // test awesome unicode.
68     $view->field['age']->options['type'] = 'unicode-yes-no';
69     $this->assertEqual('✖', $view->field['age']->advancedRender($view->result[0]));
70     $this->assertEqual('✔', $view->field['age']->advancedRender($view->result[1]));
71
72     // Set a custom output format.
73     $view->field['age']->formats['test'] = [t('Test-True'), t('Test-False')];
74     $view->field['age']->options['type'] = 'test';
75     $this->assertEqual(t('Test-False'), $view->field['age']->advancedRender($view->result[0]));
76     $this->assertEqual(t('Test-True'), $view->field['age']->advancedRender($view->result[1]));
77   }
78
79 }