function ImplementationNameTest::testReviewedDefaultAdminPrefixes

Tests that reviewed Default Admin prefixes are not retained.

File

core/themes/default_admin/tests/src/Unit/ImplementationNameTest.php, line 19

Class

ImplementationNameTest
Tests that inherited implementation names have an explicit rationale.

Namespace

Drupal\Tests\default_admin\Unit

Code

public function testReviewedDefaultAdminPrefixes() : void {
  $theme_path = dirname(__DIR__, 3);
  $superseded_names = [
    'data-default-admin-accent',
    'data-default-admin-focus',
    'data-default-admin-layout-density',
    'data-default-admin-move-focus-to-end-of-form',
    'data-default-admin-move-focus-to-sticky-bar',
    'data-default-admin-sticky-form-selector',
    'data-default-admin-toolbar-escape-admin',
    'default-admin--classic-toolbar',
    'default-admin--core-navigation',
    'default-admin--dark-mode',
    'default-admin--edit-form',
    'default-admin--has-sticky-form-actions',
    'default-admin--high-contrast-mode',
    'default-admin--horizontal-toolbar',
    'default-admin--layout-form',
    'default-admin--navigation',
    'default-admin--sticky-bulk-select',
    'default-admin--sticky-table-header',
    'default-admin--toolbar',
    'default-admin--vertical-toolbar',
    'default-admin-autocomplete',
    'default-admin-back-to-admin',
    'default-admin-beta-flag',
    'default-admin-breadcrumb',
    'default-admin-confirm-form',
    'default-admin-custom-focus',
    'default-admin-details',
    'default-admin-experimental-flag',
    'default-admin-horizontal-scroll-shadow',
    'default-admin-layer-wrapper',
    'default-admin-layout-container',
    'default-admin-messages-dismiss',
    'default-admin-more-actions',
    'default-admin-new-flag',
    'default-admin-node-edit-form',
    'default-admin-pseudo-throbber',
    'default-admin-region-breadcrumb',
    'default-admin-secondary-toolbar',
    'default-admin-sidebar',
    'default-admin-sidebar-draggable',
    'default-admin-status',
    'default-admin-sticky-edit-',
    'default-admin-sticky-${',
    "default-admin-sticky-' .",
    'default-admin-sticky-form-actions',
    'default-admin-sticky-header',
    'default-admin-table-scroll-wrapper',
    'default-admin-throbber',
    'default-admin-toolbar',
    'defaultAdminAccent',
    'defaultAdminAutoCompete',
    'defaultAdminAutoComplete',
    'defaultAdminCoreNavigation',
    'defaultAdminDetails',
    'defaultAdminDropbutton',
    'defaultAdminEditForm',
    'defaultAdminEscapeAdmin',
    'defaultAdminFormActions',
    'defaultAdminMediaLibrary',
    'defaultAdminMessages',
    'defaultAdminMoreActionsToggle',
    'defaultAdminMoveFocusToStickyBar',
    'defaultAdminSettings',
    'defaultAdminSidebar',
    'defaultAdminSticky',
    'defaultAdminSyncActionButtons',
    'defaultAdminTableDrag',
    'defaultAdminTableHeader',
    'defaultAdminTableSelect',
    'defaultAdminTabledrag',
    'defaultAdminToolbarClickHandler',
    'defaultAdminToolbarKeyboardShortcut',
    'dropbutton--default-admin',
    'media-library-selection-info-default-admin-event',
  ];
  $extensions = [
    'css',
    'js',
    'php',
    'twig',
  ];
  $directory = new \RecursiveDirectoryIterator($theme_path, \FilesystemIterator::SKIP_DOTS);
  $files = new \RecursiveIteratorIterator($directory);
  $unexpected = [];
  foreach ($files as $file) {
    if (!$file->isFile() || !in_array($file->getExtension(), $extensions, TRUE)) {
      continue;
    }
    $relative_path = substr($file->getPathname(), strlen($theme_path) + 1);
    if ($relative_path === 'tests/src/Unit/ImplementationNameTest.php') {
      continue;
    }
    foreach (file($file->getPathname()) as $line_number => $line) {
      foreach ($superseded_names as $name) {
        if (str_contains($line, $name)) {
          $unexpected[] = sprintf('%s:%d: %s', $relative_path, $line_number + 1, trim($line));
          break;

        }
      }
    }
  }
  self::assertSame([], $unexpected, implode("\n", $unexpected));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.