Namespace
Drupal\Tests\ctools_block\Functional
File
-
modules/ctools_block/tests/src/Functional/EntityFieldBlockTest.php
View source
<?php
namespace Drupal\Tests\ctools_block\Functional;
use Drupal\Tests\BrowserTestBase;
class EntityFieldBlockTest extends BrowserTestBase {
protected static $modules = [
'block',
'ctools_block',
'ctools_block_field_test',
];
protected $defaultTheme = 'stark';
public function testBodyField() {
$block = $this->drupalPlaceBlock('entity_field:node:body', [
'formatter' => [
'type' => 'text_default',
],
'context_mapping' => [
'entity' => '@node.node_route_context:node',
],
]);
$node = $this->drupalCreateNode([
'type' => 'ctools_block_field_test',
]);
$this->drupalGet('node/' . $node->id());
$assert = $this->assertSession();
$assert->pageTextContains($block->label());
$assert->pageTextContains($node->body->value);
$node->set('body', NULL)
->save();
$this->getSession()
->reload();
$assert->pageTextNotContains($block->label());
}
public function testEmptyImageField() {
$entityTypeManager = $this->container
->get('entity_type.manager');
$source = $this->container
->get('module_handler')
->getModule('image')
->getPath() . '/sample.png';
$file_system = $this->container
->get('file_system');
$file_system->copy($source, 'public://sample.png');
$file = $entityTypeManager->getStorage('file')
->create([
'uri' => 'public://sample.png',
]);
$file->save();
$field = $entityTypeManager->getStorage('field_config')
->load('node.ctools_block_field_test.field_image');
$settings = $field->getSettings();
$settings['default_image']['uuid'] = $file->uuid();
$field->set('settings', $settings)
->save();
$this->drupalPlaceBlock('entity_field:node:field_image', [
'formatter' => [
'type' => 'image_image',
],
'context_mapping' => [
'entity' => '@node.node_route_context:node',
],
]);
$node = $this->drupalCreateNode([
'type' => 'ctools_block_field_test',
]);
$this->drupalGet('node/' . $node->id());
$url = $file->getFileUri();
$url = $this->container
->get('file_url_generator')
->generateAbsoluteString($url);
$url = $this->container
->get('file_url_generator')
->transformRelative($url);
$this->assertSession()
->responseContains('src="' . $url . '"');
}
public function testNodeBaseFields() {
$block = $this->drupalPlaceBlock('entity_field:node:title', [
'formatter' => [
'type' => 'string',
],
'context_mapping' => [
'entity' => '@node.node_route_context:node',
],
]);
$node = $this->drupalCreateNode([
'type' => 'ctools_block_field_test',
'uid' => 1,
]);
$this->drupalGet('node/' . $node->id());
$assert = $this->assertSession();
$assert->pageTextContains($block->label());
$assert->pageTextContains($node->getTitle());
}
public function testRenderCache() {
$this->drupalPlaceBlock('entity_field:node:body', [
'formatter' => [
'type' => 'text_default',
],
'context_mapping' => [
'entity' => '@node.node_route_context:node',
],
]);
$a = $this->drupalCreateNode([
'type' => 'ctools_block_field_test',
]);
$b = $this->drupalCreateNode([
'type' => 'ctools_block_field_test',
]);
$assert = $this->assertSession();
$this->drupalGet('node/' . $a->id());
$assert->pageTextContains($a->body->value);
$this->drupalGet('node/' . $b->id());
$assert->pageTextNotContains($a->body->value);
$assert->pageTextContains($b->body->value);
$text = 'This is my text. Are you not entertained?';
$a->body->value = $text;
$a->save();
$this->drupalGet('node/' . $a->id());
$assert->pageTextContains($text);
}
}
Classes