protected function ExportTest::validateNodeCdfObject in Acquia Content Hub 8.2
Validated "node with a text field" CDF object.
Parameters
int $nid: The Node ID.
string $title_expected: Expected node title.
string $bundle_expected: Expected bundle.
int $status_expected: Expected node publishing status.
array $field_expected: Expected field value.
array $field_metadata_expected: Expected field metadata.
See also
\Drupal\Tests\acquia_contenthub\Kernel\ExportTest::createNodeTypes()
\Drupal\Tests\acquia_contenthub\Kernel\ExportTest::createTaxonomyVocabulary()
\Drupal\Tests\acquia_contenthub\Kernel\ExportTest::createTaxonomyTerms()
File
- tests/
src/ Kernel/ ExportTest.php, line 1375
Class
- ExportTest
- Tests entity exports.
Namespace
Drupal\Tests\acquia_contenthub\KernelCode
protected function validateNodeCdfObject($nid, $title_expected, $bundle_expected, $status_expected, array $field_expected = [], array $field_metadata_expected = []) {
$this
->validateBaseCdfObject();
$cdf = $this->cdfObject;
// Validate Type attribute.
$type = $cdf
->getType();
$this
->assertEquals('drupal8_content_entity', $type);
// Validate Metadata attribute.
$metadata = $cdf
->getMetadata();
$this
->assertNotEmpty($metadata['dependencies']['entity']);
// Validate Metadata's "dependencies" element.
$uuids = array_keys($metadata['dependencies']['entity']);
$content_type_uuid = reset($uuids);
foreach ($uuids as $uuid) {
$has_node_type_dependency = in_array($uuid, $this->nodeTypeUuids, TRUE);
$has_taxonomy_vocabulary_dependency = in_array($uuid, $this->vocabularyUuids, TRUE);
$has_taxonomy_term_dependency = in_array($uuid, $this->termUuids, TRUE);
$has_user_dependency = in_array($uuid, $this->userUuids, TRUE);
$has_file_dependency = in_array($uuid, $this->fieldUuids, TRUE);
$has_valid_dependency = $has_node_type_dependency || $has_taxonomy_vocabulary_dependency || $has_taxonomy_term_dependency || $has_user_dependency || $has_file_dependency;
$this
->assertTrue($has_valid_dependency);
}
unset($metadata['dependencies']);
unset($metadata['data']);
$metadata_expected = [
'default_language' => 'en',
'field' => [
'uuid' => [
'type' => 'uuid',
],
'type' => [
'type' => 'entity_reference',
'target' => 'node_type',
],
'revision_timestamp' => [
'type' => 'created',
],
'revision_uid' => [
'type' => 'entity_reference',
'target' => 'user',
],
'revision_log' => [
'type' => 'string_long',
],
'status' => [
'type' => 'boolean',
],
'title' => [
'type' => 'string',
],
'uid' => [
'type' => 'entity_reference',
'target' => 'user',
],
'created' => [
'type' => 'created',
],
'changed' => [
'type' => 'changed',
],
'promote' => [
'type' => 'boolean',
],
'sticky' => [
'type' => 'boolean',
],
'default_langcode' => [
'type' => 'boolean',
],
'revision_default' => [
'type' => 'boolean',
],
'revision_translation_affected' => [
'type' => 'boolean',
],
],
'languages' => [
'en',
],
'version' => 2,
];
$metadata_expected['field'] = array_merge($metadata_expected['field'], $field_metadata_expected);
$this
->assertEquals($metadata_expected, $metadata);
// Validate "Data" attribute.
$data = $this
->getCdfDataAttribute($cdf);
$created_timestamp = $data['created']['value']['en']['value'];
$is_timestamp = is_numeric($created_timestamp) && (int) $created_timestamp == $created_timestamp;
$this
->assertTrue($is_timestamp);
unset($data['revision_uid']);
unset($data['uid']);
$data_expected = [
'uuid' => [
'value' => [
'en' => [
'value' => $cdf
->getUuid(),
],
],
],
'type' => [
'value' => [
'en' => $content_type_uuid,
],
],
'revision_timestamp' => [
'value' => [
'en' => [
'value' => $created_timestamp,
],
],
],
'revision_log' => [
'value' => [
'en' => [],
],
],
'status' => [
'value' => [
'en' => (string) $status_expected,
],
],
'title' => [
'value' => [
'en' => $title_expected,
],
],
'created' => [
'value' => [
'en' => [
'value' => $created_timestamp,
],
],
],
'changed' => [
'value' => [
'en' => [
'value' => $created_timestamp,
],
],
],
'promote' => [
'value' => [
'en' => '1',
],
],
'sticky' => [
'value' => [
'en' => '0',
],
],
'default_langcode' => [
'value' => [
'en' => '1',
],
],
'revision_default' => [
'value' => [
'en' => '1',
],
],
'revision_translation_affected' => [
'value' => [
'en' => '1',
],
],
];
$data_expected = array_merge($data_expected, $field_expected);
$this
->assertEquals($data_expected, $data);
// Validate entity type.
$entity_type = $this
->getCdfAttribute($cdf, 'entity_type');
$this
->assertEquals('node', $entity_type);
// Validate bundle.
$bundle = $this
->getCdfAttribute($cdf, 'bundle');
$this
->assertEquals($bundle_expected, $bundle);
// Validate node title.
$title = $this
->getCdfAttribute($cdf, 'label', 'en');
$this
->assertEquals($title_expected, $title);
// Validate "url" attribute.
$url_attribute = $this
->getCdfAttribute($cdf, 'url');
$url = Url::fromUserInput('/', [
'absolute' => TRUE,
]);
$url = $url
->toString();
$this
->assertEquals($url . $entity_type . '/' . $nid, $url_attribute);
}