Skip to content
Snippets Groups Projects
Commit 065f06b1 authored by Adam G-H's avatar Adam G-H
Browse files

Add tests

parent a9d8ac97
No related branches found
No related tags found
No related merge requests found
Showing
with 118 additions and 16 deletions
......@@ -123,23 +123,11 @@ class ExcludedPathsSubscriber implements EventSubscriberInterface {
'settings.local.php',
'services.yml',
];
$default_site = 'sites' . DIRECTORY_SEPARATOR . 'default';
foreach ($settings_files as $settings_file) {
$file_path = implode(DIRECTORY_SEPARATOR, [
$this->appRoot,
$this->sitePath,
$settings_file,
]);
$file_path = $this->fileSystem->realpath($file_path);
if (file_exists($file_path)) {
$event->excludePath($file_path);
}
$default_file_path = implode(DIRECTORY_SEPARATOR, [
'sites',
'default',
$settings_file,
]);
$event->excludePath($default_file_path);
$event->excludePath($this->sitePath . DIRECTORY_SEPARATOR . $settings_file);
$event->excludePath($default_site . DIRECTORY_SEPARATOR . $settings_file);
}
}
......
This file should never be staged.
# This file should never be staged.
<?php
/**
* @file
* This file should never be staged.
*/
<?php
/**
* @file
* This file should never be staged.
*/
This file should never be staged.
# This file should never be staged.
<?php
/**
* @file
* This file should never be staged.
*/
<?php
/**
* @file
* This file should never be staged.
*/
This file should never be staged.
This file should never be staged.
<?php
namespace Drupal\Tests\package_manager\Functional;
use Drupal\Core\Site\Settings;
use Drupal\package_manager\PathLocator;
use Drupal\package_manager\Stage;
use Drupal\Tests\BrowserTestBase;
/**
* @covers \Drupal\package_manager\EventSubscriber\ExcludedPathsSubscriber
*
* @group package_manager
*/
class ExcludedPathsTest extends BrowserTestBase {
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected static $modules = ['package_manager'];
public function testExcludedPaths(): void {
$active_dir = __DIR__ . '/../../fixtures/fake_site';
$stage_dir = $this->siteDirectory . '/stage';
$path_locator = $this->prophesize(PathLocator::class);
$path_locator->getActiveDirectory()->willReturn($active_dir);
$path_locator->getStageDirectory()->willReturn($stage_dir);
$settings = Settings::getAll();
$settings['file_public_path'] = 'sites/example.com/files';
$settings['file_private_path'] = 'private';
new Settings($settings);
/** @var \Drupal\package_manager\EventSubscriber\ExcludedPathsSubscriber $subscriber */
$subscriber = $this->container->get('package_manager.excluded_paths_subscriber');
$reflector = new \ReflectionObject($subscriber);
$property = $reflector->getProperty('sitePath');
$property->setAccessible(TRUE);
$property->setValue($subscriber, 'sites/example.com');
$stage = new Stage(
$path_locator->reveal(),
$this->container->get('package_manager.beginner'),
$this->container->get('package_manager.stager'),
$this->container->get('package_manager.committer'),
$this->container->get('package_manager.cleaner'),
$this->container->get('event_dispatcher')
);
$stage->create();
$this->assertDirectoryExists($stage_dir);
$this->assertDirectoryNotExists("$stage_dir/sites/simpletest");
$this->assertFileNotExists("$stage_dir/vendor/web.config");
$this->assertDirectoryNotExists("$stage_dir/sites/example.com/files");
$this->assertDirectoryNotExists("$stage_dir/private");
$this->assertFileNotExists("$stage_dir/sites/example.com/settings.php");
$this->assertFileNotExists("$stage_dir/sites/example.com/settings.local.php");
$this->assertFileNotExists("$stage_dir/sites/example.com/services.yml");
$this->assertFileNotExists("$stage_dir/sites/default/settings.php");
$this->assertFileNotExists("$stage_dir/sites/default/settings.local.php");
$this->assertFileNotExists("$stage_dir/sites/default/services.yml");
$files = [
'sites/default/no-copy.txt',
'web.config',
];
foreach ($files as $file) {
$file = "$stage_dir/$file";
touch($file);
$this->assertFileExists($file);
}
$stage->apply();
foreach ($files as $file) {
$this->assertFileNotExists("$active_dir/$file");
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment