function StandardProfileTest::assertRdfaCommonNodeProperties

Same name and namespace in other branches
  1. 8.9.x core/modules/rdf/tests/src/Functional/StandardProfileTest.php \Drupal\Tests\rdf\Functional\StandardProfileTest::assertRdfaCommonNodeProperties()

Tests output for properties held in common between articles and pages.

@internal

Parameters

\Drupal\node\NodeInterface $node: The node being displayed.

string $message_prefix: The word to use in the test assertion message.

Throws

\Drupal\Core\Entity\EntityMalformedException

3 calls to StandardProfileTest::assertRdfaCommonNodeProperties()
StandardProfileTest::doArticleRdfaTests in core/modules/rdf/tests/src/Functional/StandardProfileTest.php
Tests that article data is exposed using RDFa.
StandardProfileTest::doFrontPageRdfaTests in core/modules/rdf/tests/src/Functional/StandardProfileTest.php
Tests that data is exposed in the front page teasers.
StandardProfileTest::doPageRdfaTests in core/modules/rdf/tests/src/Functional/StandardProfileTest.php
Tests that page data is exposed using RDFa.

File

core/modules/rdf/tests/src/Functional/StandardProfileTest.php, line 385

Class

StandardProfileTest
Tests the RDF mappings and RDFa markup on top of the standard profile.

Namespace

Drupal\Tests\rdf\Functional

Code

protected function assertRdfaCommonNodeProperties(NodeInterface $node, string $message_prefix) : void {
    $this->drupalGet($node->toUrl());
    $uri = $node->toUrl('canonical', [
        'absolute' => TRUE,
    ])
        ->toString();
    // Title.
    $expected_value = [
        'type' => 'literal',
        'value' => $node->get('title')->value,
        'lang' => 'en',
    ];
    $this->assertTrue($this->hasRdfProperty($this->getSession()
        ->getPage()
        ->getContent(), $this->baseUri, $uri, 'http://schema.org/name', $expected_value), "{$message_prefix} title was found (schema:name).");
    // Created date.
    $expected_value = [
        'type' => 'literal',
        'value' => $this->container
            ->get('date.formatter')
            ->format($node->get('created')->value, 'custom', 'c', 'UTC'),
        'lang' => 'en',
    ];
    $this->assertTrue($this->hasRdfProperty($this->getSession()
        ->getPage()
        ->getContent(), $this->baseUri, $uri, 'http://schema.org/dateCreated', $expected_value), "{$message_prefix} created date was found (schema:dateCreated) in teaser.");
    // Body.
    $expected_value = [
        'type' => 'literal',
        'value' => $node->get('body')->value,
        'lang' => 'en',
    ];
    $this->assertTrue($this->hasRdfProperty($this->getSession()
        ->getPage()
        ->getContent(), $this->baseUri, $uri, 'http://schema.org/text', $expected_value), "{$message_prefix} body was found (schema:text) in teaser.");
    // Author.
    $expected_value = [
        'type' => 'uri',
        'value' => $this->authorUri,
    ];
    $this->assertTrue($this->hasRdfProperty($this->getSession()
        ->getPage()
        ->getContent(), $this->baseUri, $uri, 'http://schema.org/author', $expected_value), "{$message_prefix} author was found (schema:author) in teaser.");
    // Author type.
    $this->assertEquals('schema:Person', $this->getElementRdfType($node->toUrl(), $this->baseUri, $this->authorUri), '$message_prefix author type was found (schema:Person).');
    // Author name.
    $expected_value = [
        'type' => 'literal',
        'value' => $this->adminUser
            ->label(),
    ];
    $this->assertTrue($this->hasRdfProperty($this->getSession()
        ->getPage()
        ->getContent(), $this->baseUri, $this->authorUri, 'http://schema.org/name', $expected_value), "{$message_prefix} author name was found (schema:name).");
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.