Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / permissions_by_term / tests / src / Kernel / AccessStorageTest.php
diff --git a/web/modules/contrib/permissions_by_term/tests/src/Kernel/AccessStorageTest.php b/web/modules/contrib/permissions_by_term/tests/src/Kernel/AccessStorageTest.php
new file mode 100644 (file)
index 0000000..235ad49
--- /dev/null
@@ -0,0 +1,111 @@
+<?php
+
+namespace Drupal\Tests\permissions_by_term\Kernel;
+
+use Drupal\Core\Form\FormStateInterface;
+
+/**
+ * @group permissions_by_term
+ */
+class AccessStorageTest extends PBTKernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+  }
+
+  public function testSaveMultipleLanguageCodes() {
+    $_REQUEST = array (
+      'access' =>
+        array (
+          'user' => 'admin (1), editor (45)',
+          'role' =>
+            array (
+              'authenticated' => 'authenticated',
+            ),
+        ),
+    );
+
+    $formStateStub = $this->mockFormState('en', [
+      'role' =>
+        [
+          'authenticated' => 'authenticated',
+          'anonymous'     => 0,
+          'administrator' => 0,
+        ],
+    ]);
+
+
+    $this->assertEquals(array (
+      'UserIdPermissionsToRemove' =>
+        array (
+        ),
+      'UserIdPermissionsToAdd' =>
+        array(
+          '0' => '1',
+          '1' => '45',
+        ),
+      'UserRolePermissionsToRemove' =>
+        array (
+        ),
+      'aRoleIdPermissionsToAdd' =>
+        array (
+          0 => 'authenticated',
+        ),
+    ), $this->accessStorage->saveTermPermissions($formStateStub, 1));
+
+    $formStateStub = $this->mockFormState('de', [
+      'role' =>
+        [
+          'authenticated' => 'authenticated',
+          'anonymous'     => 0,
+          'administrator' => 0,
+        ],
+    ]);
+
+    $this->assertEquals(array (
+      'UserIdPermissionsToRemove' =>
+        array (
+        ),
+      'UserIdPermissionsToAdd' =>
+        array(
+          '0' => '1',
+          '1' => '45',
+        ),
+      'UserRolePermissionsToRemove' =>
+        array (
+        ),
+      'aRoleIdPermissionsToAdd' =>
+        array (
+          0 => 'authenticated',
+        ),
+    ), $this->accessStorage->saveTermPermissions($formStateStub, 1));
+  }
+
+  private function mockFormState($langcode, $accessOutput) {
+    $formStateStub = $this->getMockBuilder(FormStateInterface::class)
+      ->getMock();
+
+    $map = [
+      [
+        'langcode',
+        NULL,
+        [
+          ['value' => $langcode]
+        ]
+      ],
+      [
+        'access',
+        NULL,
+        $accessOutput
+      ]
+    ];
+    $formStateStub->expects($this->any())
+      ->method('getValue')
+      ->will($this->returnValueMap($map));
+    return $formStateStub;
+  }
+
+}