You are here

public function BlockContentSaveTest::testDeterminingChanges in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/block_content/tests/src/Functional/BlockContentSaveTest.php \Drupal\Tests\block_content\Functional\BlockContentSaveTest::testDeterminingChanges()
  2. 10 core/modules/block_content/tests/src/Functional/BlockContentSaveTest.php \Drupal\Tests\block_content\Functional\BlockContentSaveTest::testDeterminingChanges()

Tests determining changes in hook_block_presave().

Verifies the static block load cache is cleared upon save.

File

core/modules/block_content/tests/src/Functional/BlockContentSaveTest.php, line 68

Class

BlockContentSaveTest
Tests $block_content->save() for saving content.

Namespace

Drupal\Tests\block_content\Functional

Code

public function testDeterminingChanges() {

  // Initial creation.
  $block = $this
    ->createBlockContent('test_changes');
  $this
    ->assertEqual($block
    ->getChangedTime(), REQUEST_TIME, 'Creating a block sets default "changed" timestamp.');

  // Update the block without applying changes.
  $block
    ->save();
  $this
    ->assertEqual($block
    ->label(), 'test_changes', 'No changes have been determined.');

  // Apply changes.
  $block
    ->setInfo('updated');
  $block
    ->save();

  // The hook implementations block_content_test_block_content_presave() and
  // block_content_test_block_content_update() determine changes and change
  // the title as well as programmatically set the 'changed' timestamp.
  $this
    ->assertEqual($block
    ->label(), 'updated_presave_update', 'Changes have been determined.');
  $this
    ->assertEqual($block
    ->getChangedTime(), 979534800, 'Saving a custom block uses "changed" timestamp set in presave hook.');

  // Test the static block load cache to be cleared.
  $block = BlockContent::load($block
    ->id());
  $this
    ->assertEqual($block
    ->label(), 'updated_presave', 'Static cache has been cleared.');
}