function 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 70 
Class
- BlockContentSaveTest
- Tests $block_content->save() for saving content.
Namespace
Drupal\Tests\block_content\FunctionalCode
public function testDeterminingChanges() {
  // Initial creation.
  $block = $this->createBlockContent('test_changes');
  $this->assertEquals(REQUEST_TIME, $block->getChangedTime(), 'Creating a block sets default "changed" timestamp.');
  // Update the block without applying changes.
  $block->save();
  $this->assertEquals('test_changes', $block->label(), '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->assertEquals('updated_presave_update', $block->label(), 'Changes have been determined.');
  $this->assertEquals(979534800, $block->getChangedTime(), '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->assertEquals('updated_presave', $block->label(), 'Static cache has been cleared.');
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
