Version 1
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Menu / MenuLinkDefaultTest.php
diff --git a/web/core/tests/Drupal/Tests/Core/Menu/MenuLinkDefaultTest.php b/web/core/tests/Drupal/Tests/Core/Menu/MenuLinkDefaultTest.php
new file mode 100644 (file)
index 0000000..11c0292
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+namespace Drupal\Tests\Core\Menu;
+
+use Drupal\Core\Menu\MenuLinkDefault;
+use Drupal\Core\Menu\StaticMenuLinkOverridesInterface;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\Core\Menu\MenuLinkDefault
+ * @group Menu
+ */
+class MenuLinkDefaultTest extends UnitTestCase {
+
+  /**
+   * @covers ::updateLink
+   */
+  public function testUpdateLink() {
+    $plugin_definition = [
+      'title' => 'Hey jude',
+      'enabled' => 1,
+      'expanded' => 1,
+      'menu_name' => 'admin',
+      'parent' => '',
+      'weight' => 10,
+    ];
+    $expected_plugin_definition = $plugin_definition;
+    $expected_plugin_definition['weight'] = -10;
+
+    $static_override = $this->prophesize(StaticMenuLinkOverridesInterface::class);
+    $static_override->saveOverride('example_menu_link', $expected_plugin_definition);
+    $static_override = $static_override->reveal();
+
+    $menu_link = new MenuLinkDefault([], 'example_menu_link', $plugin_definition, $static_override);
+
+    $this->assertEquals($expected_plugin_definition, $menu_link->updateLink(['weight' => -10], TRUE));
+  }
+
+  /**
+   * @covers ::updateLink
+   */
+  public function testUpdateLinkWithoutPersist() {
+    $plugin_definition = [
+      'title' => 'Hey jude',
+      'enabled' => 1,
+      'expanded' => 1,
+      'menu_name' => 'admin',
+      'parent' => '',
+      'weight' => 10,
+    ];
+    $expected_plugin_definition = $plugin_definition;
+    $expected_plugin_definition['weight'] = -10;
+
+    $static_override = $this->prophesize(StaticMenuLinkOverridesInterface::class);
+    $static_override->saveOverride()->shouldNotBeCalled();
+    $static_override = $static_override->reveal();
+
+    $menu_link = new MenuLinkDefault([], 'example_menu_link', $plugin_definition, $static_override);
+
+    $this->assertEquals($expected_plugin_definition, $menu_link->updateLink(['weight' => -10], FALSE));
+  }
+
+}