diff --git a/core/modules/system/tests/modules/entity_test/entity_test.views.inc b/core/modules/system/tests/modules/entity_test/entity_test.views.inc new file mode 100644 index 0000000..d74af47 --- /dev/null +++ b/core/modules/system/tests/modules/entity_test/entity_test.views.inc @@ -0,0 +1,9 @@ +entities[$i] = $entity = EntityTest::create([ 'bundle' => 'entity_test', + 'name' => 'test ' . $i, 'field_test' => $random_number[$i], 'field_test_multiple' => [$random_number_multiple[$i * 2], $random_number_multiple[$i * 2 + 1]], 'user_id' => $this->testUsers[$i]->id(), @@ -270,6 +271,49 @@ public function testSimpleRender() { * A complex field configuration contains multiple times the same field, with * different delta limit / offset. */ + public function testFieldAlias() { + $executable = Views::getView('test_field_alias_test'); + $executable->execute(); + + $this->assertTrue($executable->field['id'] instanceof Field); + $this->assertTrue($executable->field['name'] instanceof Field); + $this->assertTrue($executable->field['name_alias'] instanceof Field); + + $this->assertIdenticalResultset($executable, + [ + ['id' => 1, 'name' => 'test 0', 'name_alias' => 'test 0'], + ['id' => 2, 'name' => 'test 1', 'name_alias' => 'test 1'], + ['id' => 3, 'name' => 'test 2', 'name_alias' => 'test 2'], + ['id' => 4, 'name' => 'test 3', 'name_alias' => 'test 3'], + ['id' => 5, 'name' => 'test 4', 'name_alias' => 'test 4'], + ], + ['id' => 'id', 'name' => 'name', 'name_alias' => 'name_alias'] + ); + } + + /** + * Tests the result of a view with complex field configuration. + * + * A complex field configuration contains multiple times the same field, with + * different delta limit / offset. + */ + public function testFieldAliasRender() { + $executable = Views::getView('test_field_alias_test'); + $executable->render(); + + for ($i = 0; $i < 5; $i++) { + $this->assertEqual($i + 1, $executable->getStyle()->getField($i, 'id')); + $this->assertEqual('test ' . $i, $executable->getStyle()->getField($i, 'name')); + $this->assertEqual('test ' . $i . '', $executable->getStyle()->getField($i, 'name_alias')); + } + } + + /** + * Tests the result of a view with complex field configuration. + * + * A complex field configuration contains multiple times the same field, with + * different delta limit / offset. + */ public function testComplexExecute() { $executable = Views::getView('test_field_field_complex_test'); $executable->execute(); diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_alias_test.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_alias_test.yml new file mode 100644 index 0000000..6e178cc --- /dev/null +++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_alias_test.yml @@ -0,0 +1,64 @@ +langcode: und +status: true +dependencies: { } +id: test_field_alias_test +module: views +description: '' +tag: '' +base_table: entity_test +base_field: id +core: '8' +display: + default: + display_options: + access: + type: none + cache: + type: none + fields: + id: + id: id + table: entity_test + field: id + plugin_id: field + entity_type: entity_test + entity_field: id + name: + id: name + table: entity_test + field: name + plugin_id: field + entity_type: entity_test + entity_field: name + type: string + settings: + link_to_entity: false + name_alias: + id: name_alias + table: entity_test + field: name_alias + plugin_id: field + entity_type: entity_test + entity_field: name + type: string + settings: + link_to_entity: true + relationships: + user_id: + table: entity_test + field: user_id + id: user_id + plugin_id: standard + sorts: + id: + id: id + table: entity_test + field: id + plugin_id: standard + order: asc + style: + type: html_list + display_plugin: default + display_title: Master + id: default + position: 0