Chris@0: getMockBuilder('Drupal\views\ViewsData') Chris@0: ->disableOriginalConstructor() Chris@0: ->getMock(); Chris@0: $views_data->expects($this->once()) Chris@0: ->method('get') Chris@0: ->will($this->returnValue($this->viewsData())); Chris@0: Chris@0: $data_helper = new ViewsDataHelper($views_data); Chris@0: Chris@0: $expected = [ Chris@0: 'field' => [ Chris@0: 'age', Chris@0: 'created', Chris@0: 'job', Chris@0: 'name', Chris@0: 'status', Chris@0: ], Chris@0: 'argument' => [ Chris@0: 'age', Chris@0: 'created', Chris@0: 'id', Chris@0: 'job', Chris@0: ], Chris@0: 'filter' => [ Chris@0: 'created', Chris@0: 'id', Chris@0: 'job', Chris@0: 'name', Chris@0: 'status', Chris@0: ], Chris@0: 'sort' => [ Chris@0: 'age', Chris@0: 'created', Chris@0: 'id', Chris@0: 'name', Chris@0: 'status', Chris@0: ], Chris@0: 'area' => [ Chris@0: 'age', Chris@0: 'created', Chris@0: 'job', Chris@0: ], Chris@0: 'header' => [ Chris@0: 'age', Chris@0: 'created', Chris@0: 'job', Chris@0: ], Chris@0: 'footer' => [ Chris@0: 'age', Chris@0: 'created', Chris@0: 'job', Chris@0: ], Chris@0: ]; Chris@0: Chris@0: $handler_types = ['field', 'argument', 'filter', 'sort', 'area']; Chris@0: foreach ($handler_types as $handler_type) { Chris@0: $fields = $data_helper->fetchFields('views_test_data', $handler_type); Chris@0: $expected_keys = $expected[$handler_type]; Chris@0: array_walk($expected_keys, function (&$item) { Chris@0: $item = "views_test_data.$item"; Chris@0: }); Chris@0: $this->assertEquals($expected_keys, array_keys($fields), "Handlers of type $handler_type are not listed as expected"); Chris@0: } Chris@0: Chris@0: // Check for subtype filtering, so header and footer. Chris@0: foreach (['header', 'footer'] as $sub_type) { Chris@0: $fields = $data_helper->fetchFields('views_test_data', 'area', FALSE, $sub_type); Chris@0: Chris@0: $expected_keys = $expected[$sub_type]; Chris@0: array_walk($expected_keys, function (&$item) { Chris@0: $item = "views_test_data.$item"; Chris@0: }); Chris@0: $this->assertEquals($expected_keys, array_keys($fields), "Sub_type $sub_type is not filtered as expected."); Chris@0: } Chris@0: } Chris@0: Chris@0: }