monster_menus-9.0.x-dev/tests/src/Functional/Permissions/PermissionsTestIter.php

tests/src/Functional/Permissions/PermissionsTestIter.php
<?php

namespace Drupal\Tests\monster_menus\Functional\Permissions;

use Drupal\monster_menus\Constants;
use Drupal\monster_menus\GetTreeIterator;

class PermissionsTestIter extends GetTreeIterator {

  private $path, $stats, $pindex;

  /**
   * @param \Drupal\Tests\monster_menus\Functional\Permissions\PermissionsTest $test
   */
  public function __construct($path, $stats, private $test) {
    $this->path = $path;
    $this->stats = $stats;
    $this->pindex = count($path) - 1;
  }

  /**
   * {@inheritdoc}
   */
  public function iterate($item) {
    $this->path = array_slice($this->path, 0, $this->pindex + $item->level);
    $this->path[] = $item->name;
    $print_path = implode('/', $this->path);

    if (isset($this->test->baseline[$this->stats['label']][$print_path])) {
      foreach ([Constants::MM_PERMS_WRITE, Constants::MM_PERMS_SUB, Constants::MM_PERMS_APPLY, Constants::MM_PERMS_READ, Constants::MM_PERMS_IS_USER, Constants::MM_PERMS_IS_GROUP, Constants::MM_PERMS_IS_RECYCLE_BIN, Constants::MM_PERMS_IS_RECYCLED] as $mode) {
        if ($mode != Constants::MM_PERMS_APPLY || $this->path[0] != Constants::MM_ENTRY_NAME_GROUPS) {
          $this->stats['count']++;
          if (!isset($this->test->baseline[$this->stats['label']][$print_path]['page'][$mode])) {
            $this->stats['fail'][] = $this->test->failed("Undefined baseline entry ['" . $this->stats['label'] . "']['$print_path']['page'][$mode]. Re-run this test using PermissionsTest::wantBaseline=TRUE and use the output to rewrite " . PermissionsTest::baselineFilename . '.');
          }
          else {
            $old = $this->test->baseline[$this->stats['label']][$print_path]['page'][$mode];
            if ($item->perms[$mode] !== $old) {
              $this->stats['fail'][] = $this->test->failed("($item->mmtid) $print_path: $mode", $old);
            }
            else {
              $this->test->assertTrue(TRUE, "($item->mmtid) $print_path: $mode");
            }
          }
        }
      }
    }

    return 1;   // continue
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc