From 35ba76885958ef43a6735732cbd3ac658f9d937f Mon Sep 17 00:00:00 2001
From: phenaproxima <phenaproxima@205645.no-reply.drupal.org>
Date: Thu, 13 Jan 2022 18:47:43 +0000
Subject: [PATCH] Issue #3258464 by phenaproxima: Remove
 FileSystemOperationsTest

---
 .../Functional/FileSystemOperationsTest.php   | 148 ------------------
 1 file changed, 148 deletions(-)
 delete mode 100644 tests/src/Functional/FileSystemOperationsTest.php

diff --git a/tests/src/Functional/FileSystemOperationsTest.php b/tests/src/Functional/FileSystemOperationsTest.php
deleted file mode 100644
index 4e812a080b..0000000000
--- a/tests/src/Functional/FileSystemOperationsTest.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-
-namespace Drupal\Tests\automatic_updates\Functional;
-
-use Drupal\automatic_updates\Updater;
-use Drupal\Core\Site\Settings;
-use Drupal\package_manager\PathLocator;
-
-/**
- * Tests handling of files and directories during an update.
- *
- * @group automatic_updates
- */
-class FileSystemOperationsTest extends AutomaticUpdatesFunctionalTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = ['automatic_updates_test'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * The updater service under test.
-   *
-   * @var \Drupal\Tests\automatic_updates\Functional\TestUpdater
-   */
-  private $updater;
-
-  /**
-   * The full path of the staging directory.
-   *
-   * @var string
-   */
-  protected $stageDir;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Create a mocked path locator that uses the fake site fixture as its
-    // active directory, and has a staging area within the site directory for
-    // this test.
-    $drupal_root = $this->getDrupalRoot();
-    /** @var \Drupal\package_manager\PathLocator|\Prophecy\Prophecy\ObjectProphecy $locator */
-    $locator = $this->prophesize(PathLocator::class);
-    $locator->getActiveDirectory()->willReturn(__DIR__ . '/../../fixtures/fake-site');
-    $this->stageDir = implode(DIRECTORY_SEPARATOR, [
-      $drupal_root,
-      $this->siteDirectory,
-      'stage',
-    ]);
-    $locator->getProjectRoot()->willReturn($drupal_root);
-    $locator->getWebRoot()->willReturn('');
-
-    $this->updater = new TestUpdater(
-      $locator->reveal(),
-      $this->container->get('package_manager.beginner'),
-      $this->container->get('package_manager.stager'),
-      $this->container->get('package_manager.committer'),
-      $this->container->get('file_system'),
-      $this->container->get('event_dispatcher'),
-      $this->container->get('tempstore.shared')
-    );
-    $this->updater::$stagingRoot = $this->stageDir;
-
-    // Use the public and private files directories in the fake site fixture.
-    $settings = Settings::getAll();
-    $settings['file_public_path'] = 'files/public';
-    $settings['file_private_path'] = 'files/private';
-    new Settings($settings);
-
-    // Updater::begin() will trigger update validators, such as
-    // \Drupal\automatic_updates\Validator\UpdateVersionValidator, that need to
-    // fetch release metadata. We need to ensure that those HTTP request(s)
-    // succeed, so set them up to point to our fake release metadata.
-    $this->setReleaseMetadata(__DIR__ . '/../../fixtures/release-history/drupal.9.8.1-security.xml');
-    $this->setCoreVersion('9.8.0');
-
-    $this->drupalLogin($this->rootUser);
-    $this->checkForUpdates();
-    $this->drupalLogout();
-  }
-
-  /**
-   * Tests that certain files and directories are not staged.
-   *
-   * @covers \Drupal\automatic_updates\Updater::getExclusions
-   */
-  public function testExclusions(): void {
-    $stage_id = $this->updater->begin(['drupal' => '9.8.1']);
-    $this->assertFileDoesNotExist("$this->stageDir/$stage_id/sites/default/settings.php");
-    $this->assertFileDoesNotExist("$this->stageDir/$stage_id/sites/default/settings.local.php");
-    $this->assertFileDoesNotExist("$this->stageDir/$stage_id/sites/default/services.yml");
-    // A file in sites/default, that isn't one of the site-specific settings
-    // files, should be staged.
-    $this->assertFileExists("$this->stageDir/$stage_id/sites/default/staged.txt");
-    $this->assertDirectoryDoesNotExist("$this->stageDir/$stage_id/sites/simpletest");
-    $this->assertDirectoryDoesNotExist("$this->stageDir/$stage_id/files/public");
-    $this->assertDirectoryDoesNotExist("$this->stageDir/$stage_id/files/private");
-    // A file that's in the general files directory, but not in the public or
-    // private directories, should be staged.
-    $this->assertFileExists("$this->stageDir/$stage_id/files/staged.txt");
-  }
-
-  /**
-   * Tests that the staging directory is properly cleaned up.
-   *
-   * @covers \Drupal\automatic_updates\Cleaner
-   */
-  public function testClean(): void {
-    $stage_id = $this->updater->begin(['drupal' => '9.8.1']);
-    // Make the staged site directory read-only, so we can test that it will be
-    // made writable on clean-up.
-    $this->assertTrue(chmod("$this->stageDir/$stage_id/sites/default", 0400));
-    $this->assertIsNotWritable("$this->stageDir/$stage_id/sites/default/staged.txt");
-    // If the site directory is not writable, this will throw an exception.
-    $this->updater->destroy();
-    $this->assertDirectoryDoesNotExist($this->stageDir);
-  }
-
-}
-
-/**
- * A test-only version of the updater.
- */
-class TestUpdater extends Updater {
-
-  /**
-   * The directory where staging areas will be created.
-   *
-   * @var string
-   */
-  public static $stagingRoot;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static function getStagingRoot(): string {
-    return static::$stagingRoot ?: parent::getStagingRoot();
-  }
-
-}
-- 
GitLab