Mercurial > hg > isophonics-drupal-site
view core/modules/text/tests/src/FunctionalJavascript/TextareaWithSummaryTest.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | c2387f117808 |
children |
line wrap: on
line source
<?php namespace Drupal\Tests\text\FunctionalJavascript; use Drupal\field\Entity\FieldConfig; use Drupal\FunctionalJavascriptTests\WebDriverTestBase; /** * Tests the JavaScript functionality of the text_textarea_with_summary widget. * * @group text */ class TextareaWithSummaryTest extends WebDriverTestBase { /** * {@inheritdoc} */ public static $modules = ['text', 'node']; /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->drupalCreateContentType(['type' => 'page']); $account = $this->drupalCreateUser(['create page content', 'edit own page content']); $this->drupalLogin($account); } /** * Helper to test toggling the summary area. */ protected function assertSummaryToggle() { $this->drupalGet('node/add/page'); $widget = $this->getSession()->getPage()->findById('edit-body-wrapper'); $summary_field = $widget->findField('edit-body-0-summary'); $this->assertEquals(FALSE, $summary_field->isVisible(), 'Summary field is hidden by default.'); $this->assertEquals(FALSE, $widget->hasButton('Hide summary'), 'No Hide summary link by default.'); $widget->pressButton('Edit summary'); $this->assertEquals(FALSE, $widget->hasButton('Edit summary'), 'Edit summary link is removed after clicking.'); $this->assertEquals(TRUE, $summary_field->isVisible(), 'Summary field is shown.'); $widget->pressButton('Hide summary'); $this->assertEquals(FALSE, $widget->hasButton('Hide summary'), 'Hide summary link is removed after clicking.'); $this->assertEquals(FALSE, $summary_field->isVisible(), 'Summary field is hidden again.'); $this->assertEquals(TRUE, $widget->hasButton('Edit summary'), 'Edit summary link is visible again.'); } /** * Tests the textSummary javascript behavior. */ public function testTextSummaryBehavior() { // Test with field defaults. $this->assertSummaryToggle(); // Repeat test with non-empty field description. $body_field = FieldConfig::loadByName('node', 'page', 'body'); $body_field->set('description', 'Text with Summary field description.'); $body_field->save(); $this->assertSummaryToggle(); // Test summary is shown when non-empty. $node = $this->createNode([ 'body' => [ [ 'value' => $this->randomMachineName(32), 'summary' => $this->randomMachineName(32), 'format' => filter_default_format(), ], ], ]); $this->drupalGet('node/' . $node->id() . '/edit'); $page = $this->getSession()->getPage(); $summary_field = $page->findField('edit-body-0-summary'); $this->assertEquals(TRUE, $summary_field->isVisible(), 'Non-empty summary field is shown by default.'); } }