Version 1
[yaffs-website] / web / core / modules / block_content / tests / modules / block_content_test / block_content_test.module
diff --git a/web/core/modules/block_content/tests/modules/block_content_test/block_content_test.module b/web/core/modules/block_content/tests/modules/block_content_test/block_content_test.module
new file mode 100644 (file)
index 0000000..0489a61
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * @file
+ * A dummy module for testing custom block related hooks.
+ *
+ * This is a dummy module that implements custom block related hooks to test API
+ * interaction with the block_content module.
+ */
+
+use Drupal\block_content\Entity\BlockContent;
+
+/**
+ * Implements hook_block_content_view().
+ */
+function block_content_test_block_content_view(array &$build, BlockContent $block_content, $view_mode) {
+  // Add extra content.
+  $build['extra_content'] = [
+    '#markup' => '<blink>Yowser</blink>',
+  ];
+}
+
+/**
+ * Implements hook_block_content_presave().
+ */
+function block_content_test_block_content_presave(BlockContent $block_content) {
+  if ($block_content->label() == 'testing_block_content_presave') {
+    $block_content->setInfo($block_content->label() . '_presave');
+  }
+  // Determine changes.
+  if (!empty($block_content->original) && $block_content->original->label() == 'test_changes') {
+    if ($block_content->original->label() != $block_content->label()) {
+      $block_content->setInfo($block_content->label() . '_presave');
+      // Drupal 1.0 release.
+      $block_content->changed = 979534800;
+    }
+  }
+}
+
+/**
+ * Implements hook_block_content_update().
+ */
+function block_content_test_block_content_update(BlockContent $block_content) {
+  // Determine changes on update.
+  if (!empty($block_content->original) && $block_content->original->label() == 'test_changes') {
+    if ($block_content->original->label() != $block_content->label()) {
+      $block_content->setInfo($block_content->label() . '_update');
+    }
+  }
+}
+
+/**
+ * Implements hook_block_content_insert().
+ *
+ * This tests saving a block_content on block_content insert.
+ *
+ * @see \Drupal\block_content\Tests\BlockContentSaveTest::testBlockContentSaveOnInsert()
+ */
+function block_content_test_block_content_insert(BlockContent $block_content) {
+  // Set the block_content title to the block_content ID and save.
+  if ($block_content->label() == 'new') {
+    $block_content->setInfo('BlockContent ' . $block_content->id());
+    $block_content->setNewRevision(FALSE);
+    $block_content->save();
+  }
+  if ($block_content->label() == 'fail_creation') {
+    throw new Exception('Test exception for rollback.');
+  }
+}