/**
  * Tests additional edit links.
  */
 public function testEntityLinksJustEditForm()
 {
     $this->baseEntityType->setLinkTemplate('edit-form', '/entity_test/{entity_test}/edit');
     $data = $this->viewsData->getViewsData();
     $this->assertFalse(isset($data['entity_test']['view_entity_test']));
     $this->assertFalse(isset($data['entity_test']['delete_entity_test']));
     $this->assertEquals('entity_link_edit', $data['entity_test']['edit_entity_test']['field']['id']);
 }
Esempio n. 2
0
 /**
  * @covers ::getViewsData
  */
 public function testGetViewsDataWithEntityOperations()
 {
     $this->baseEntityType->setListBuilderClass('\\Drupal\\Core\\Entity\\EntityListBuilder');
     $data = $this->viewsData->getViewsData();
     $this->assertSame('entity_operations', $data[$this->baseEntityType->getBaseTable()]['operations']['field']['id']);
 }
 /**
  * Tests fields on the revision table.
  */
 public function testRevisionTableFields()
 {
     $entity_type = $this->baseEntityType->set('base_table', 'entity_test_mulrev')->set('revision_table', 'entity_test_mulrev_revision')->set('data_table', 'entity_test_mulrev_property_data')->set('revision_data_table', 'entity_test_mulrev_property_revision')->set('id', 'entity_test_mulrev');
     $base_field_definitions = $this->setupBaseFields(EntityTestMulRev::baseFieldDefinitions($this->baseEntityType));
     $this->entityManager->expects($this->once())->method('getBaseFieldDefinitions')->with('entity_test_mulrev')->willReturn($base_field_definitions);
     $this->viewsData->setEntityType($entity_type);
     // Setup the table mapping.
     $table_mapping = $this->getMock('Drupal\\Core\\Entity\\Sql\\TableMappingInterface');
     $table_mapping->expects($this->any())->method('getTableNames')->willReturn(['entity_test_mulrev', 'entity_test_mulrev_revision', 'entity_test_mulrev_property_data', 'entity_test_mulrev_property_revision']);
     $table_mapping->expects($this->any())->method('getColumnNames')->willReturnMap([['id', ['value' => 'id']], ['uuid', ['value' => 'uuid']], ['type', ['value' => 'type']], ['langcode', ['value' => 'langcode']], ['name', ['value' => 'name']], ['description', ['value' => 'description__value', 'format' => 'description__format']], ['homepage', ['value' => 'homepage']], ['user_id', ['target_id' => 'user_id']], ['revision_id', ['value' => 'id']]]);
     $table_mapping->expects($this->any())->method('getFieldNames')->willReturnMap([['entity_test_mulrev', ['id', 'revision_id', 'uuid', 'type']], ['entity_test_mulrev_revision', ['id', 'revision_id', 'langcode']], ['entity_test_mulrev_property_data', ['id', 'revision_id', 'langcode', 'name', 'description', 'homepage', 'user_id']], ['entity_test_mulrev_property_revision', ['id', 'revision_id', 'langcode', 'name', 'description', 'homepage', 'user_id']]]);
     $this->entityStorage->expects($this->once())->method('getTableMapping')->willReturn($table_mapping);
     $this->setupFieldStorageDefinition();
     $data = $this->viewsData->getViewsData();
     // Check the base fields.
     $this->assertNumericField($data['entity_test_mulrev']['id']);
     $this->assertField($data['entity_test_mulrev']['id'], 'id');
     $this->assertNumericField($data['entity_test_mulrev']['revision_id']);
     $this->assertField($data['entity_test_mulrev']['revision_id'], 'revision_id');
     $this->assertUuidField($data['entity_test_mulrev']['uuid']);
     $this->assertField($data['entity_test_mulrev']['uuid'], 'uuid');
     $this->assertStringField($data['entity_test_mulrev']['type']);
     $this->assertField($data['entity_test_mulrev']['type'], 'type');
     // Also ensure that field_data only fields don't appear on the base table.
     $this->assertFalse(isset($data['entity_test_mulrev']['name']));
     $this->assertFalse(isset($data['entity_test_mul']['description']));
     $this->assertFalse(isset($data['entity_test_mul']['description__value']));
     $this->assertFalse(isset($data['entity_test_mul']['description__format']));
     $this->assertFalse(isset($data['entity_test_mul']['homepage']));
     $this->assertFalse(isset($data['entity_test_mulrev']['langcode']));
     $this->assertFalse(isset($data['entity_test_mulrev']['user_id']));
     // Check the revision fields.
     $this->assertNumericField($data['entity_test_mulrev_revision']['id']);
     $this->assertField($data['entity_test_mulrev_revision']['id'], 'id');
     $this->assertNumericField($data['entity_test_mulrev_revision']['revision_id']);
     $this->assertField($data['entity_test_mulrev_revision']['revision_id'], 'revision_id');
     $this->assertLanguageField($data['entity_test_mulrev_revision']['langcode']);
     $this->assertField($data['entity_test_mulrev_revision']['langcode'], 'langcode');
     $this->assertEquals('Original language', $data['entity_test_mulrev_revision']['langcode']['title']);
     // Also ensure that field_data only fields don't appear on the revision table.
     $this->assertFalse(isset($data['entity_test_mulrev_revision']['name']));
     $this->assertFalse(isset($data['entity_test_mulrev_revision']['description']));
     $this->assertFalse(isset($data['entity_test_mulrev_revision']['description__value']));
     $this->assertFalse(isset($data['entity_test_mulrev_revision']['description__format']));
     $this->assertFalse(isset($data['entity_test_mulrev_revision']['homepage']));
     $this->assertFalse(isset($data['entity_test_mulrev_revision']['user_id']));
     // Check the data fields.
     $this->assertNumericField($data['entity_test_mulrev_property_data']['id']);
     $this->assertField($data['entity_test_mulrev_property_data']['id'], 'id');
     $this->assertLanguageField($data['entity_test_mulrev_property_data']['langcode']);
     $this->assertField($data['entity_test_mulrev_property_data']['langcode'], 'langcode');
     $this->assertStringField($data['entity_test_mulrev_property_data']['name']);
     $this->assertField($data['entity_test_mulrev_property_data']['name'], 'name');
     $this->assertLongTextField($data['entity_test_mulrev_property_data'], 'description');
     $this->assertField($data['entity_test_mulrev_property_data']['description__value'], 'description');
     $this->assertField($data['entity_test_mulrev_property_data']['description__format'], 'description');
     $this->assertUriField($data['entity_test_mulrev_property_data']['homepage']);
     $this->assertField($data['entity_test_mulrev_property_data']['homepage'], 'homepage');
     $this->assertEntityReferenceField($data['entity_test_mulrev_property_data']['user_id']);
     $this->assertField($data['entity_test_mulrev_property_data']['user_id'], 'user_id');
     $relationship = $data['entity_test_mulrev_property_data']['user_id']['relationship'];
     $this->assertEquals('users_field_data', $relationship['base']);
     $this->assertEquals('uid', $relationship['base field']);
     // Check the property data fields.
     $this->assertNumericField($data['entity_test_mulrev_property_revision']['id']);
     $this->assertField($data['entity_test_mulrev_property_revision']['id'], 'id');
     $this->assertLanguageField($data['entity_test_mulrev_property_revision']['langcode']);
     $this->assertField($data['entity_test_mulrev_property_revision']['langcode'], 'langcode');
     $this->assertEquals('Translation language', $data['entity_test_mulrev_property_revision']['langcode']['title']);
     $this->assertStringField($data['entity_test_mulrev_property_revision']['name']);
     $this->assertField($data['entity_test_mulrev_property_revision']['name'], 'name');
     $this->assertLongTextField($data['entity_test_mulrev_property_revision'], 'description');
     $this->assertField($data['entity_test_mulrev_property_revision']['description__value'], 'description');
     $this->assertField($data['entity_test_mulrev_property_revision']['description__format'], 'description');
     $this->assertUriField($data['entity_test_mulrev_property_revision']['homepage']);
     $this->assertField($data['entity_test_mulrev_property_revision']['homepage'], 'homepage');
     $this->assertEntityReferenceField($data['entity_test_mulrev_property_revision']['user_id']);
     $this->assertField($data['entity_test_mulrev_property_revision']['user_id'], 'user_id');
     $relationship = $data['entity_test_mulrev_property_revision']['user_id']['relationship'];
     $this->assertEquals('users_field_data', $relationship['base']);
     $this->assertEquals('uid', $relationship['base field']);
 }