Version 1
[yaffs-website] / web / core / modules / system / tests / modules / plugin_test / src / Plugin / plugin_test / mock_block / MockMenuBlock.php
diff --git a/web/core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlock.php b/web/core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlock.php
new file mode 100644 (file)
index 0000000..f13b56e
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+namespace Drupal\plugin_test\Plugin\plugin_test\mock_block;
+
+/**
+ * Mock implementation of a menu block plugin used by Plugin API unit tests.
+ *
+ * @see \Drupal\plugin_test\Plugin\MockBlockManager
+ */
+class MockMenuBlock {
+
+  /**
+   * The title to display when rendering this block instance.
+   *
+   * @var string
+   */
+  protected $title;
+
+  /**
+   * The number of menu levels deep to render.
+   *
+   * @var int
+   */
+  protected $depth;
+
+  public function __construct($title = '', $depth = 0) {
+    $this->title = $title;
+    $this->depth = $depth;
+  }
+
+  /**
+   * Returns the content to display.
+   */
+  public function getContent() {
+    // Since this is a mock object, we just return some HTML of the desired
+    // nesting level. For depth=2, this returns:
+    // '<ul><li>1<ul><li>1.1</li></ul></li></ul>'.
+    $content = '';
+    for ($i = 0; $i < $this->depth; $i++) {
+      $content .= '<ul><li>' . implode('.', array_fill(0, $i + 1, '1'));
+    }
+    for ($i = 0; $i < $this->depth; $i++) {
+      $content .= '</li></ul>';
+    }
+    return $content;
+  }
+
+}