Skip to content

Commit

Permalink
Fix Pantheon, static PHPUnit tests, and PHPUnit output folder
Browse files Browse the repository at this point in the history
  • Loading branch information
justafish committed Aug 9, 2024
1 parent c969ed2 commit 914940c
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 125 deletions.
1 change: 0 additions & 1 deletion .github/workflows/TestGitHubActions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ jobs:
echo "api_version: 1" >> pantheon.yml
echo "web_docroot: true" >> pantheon.yml
echo "php_version: 8.3" >> pantheon.yml
echo "drush_version: 13" >> pantheon.yml
echo "database:" >> pantheon.yml
echo " version: 10.6" >> pantheon.yml
echo "enforce_https: full+subdomains" >> pantheon.yml
Expand Down
4 changes: 2 additions & 2 deletions tasks/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ tasks:
CONFIG="$(pwd)/vendor/lullabot/drainpipe/scaffold/phpunit-testtraits.xml"
fi
if [ "{{.format}}" == "junit" ]; then
mkdir -p test_result
mkdir -p test_result/phpunit
./vendor/bin/phpunit --testsuite=unit -c $CONFIG --log-junit $(pwd)/test_result/phpunit.xml
else
./vendor/bin/phpunit -c $CONFIG --testsuite=unit
Expand All @@ -128,7 +128,7 @@ tasks:
CONFIG="$(pwd)/vendor/lullabot/drainpipe/scaffold/phpunit-testtraits.xml"
fi
if [ "{{.format}}" == "junit" ]; then
mkdir -p test_result
mkdir -p test_result/phpunit
./vendor/bin/phpunit --exclude-testsuite=unit -c $CONFIG --log-junit $(pwd)/test_result/phpunit-functional.xml
else
./vendor/bin/phpunit -c $CONFIG --exclude-testsuite=unit
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php

namespace Drupal\Tests\testsubmodule\Unit;
declare(strict_types=1);

namespace Drupal\Tests\user\Unit;

use Drupal\Core\Access\AccessResult;
use Drupal\Tests\UnitTestCase;
Expand All @@ -16,72 +18,74 @@
*/
class PermissionAccessCheckTest extends UnitTestCase {

/**
* The tested access checker.
*
* @var \Drupal\user\Access\PermissionAccessCheck
*/
public $accessCheck;
/**
* The tested access checker.
*
* @var \Drupal\user\Access\PermissionAccessCheck
*/
public $accessCheck;

/**
* The dependency injection container.
*
* @var \Symfony\Component\DependencyInjection\ContainerBuilder
*/
protected $container;
/**
* The dependency injection container.
*
* @var \Symfony\Component\DependencyInjection\ContainerBuilder
*/
protected $container;

/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();

$this->container = new ContainerBuilder();
$cache_contexts_manager = $this->prophesize(CacheContextsManager::class);
$cache_contexts_manager->assertValidTokens()->willReturn(TRUE);
$cache_contexts_manager->reveal();
$this->container->set('cache_contexts_manager', $cache_contexts_manager);
\Drupal::setContainer($this->container);
$this->container = new ContainerBuilder();
$cache_contexts_manager = $this->prophesize(CacheContextsManager::class);
$cache_contexts_manager->assertValidTokens()->willReturn(TRUE);
$cache_contexts_manager->reveal();
$this->container->set('cache_contexts_manager', $cache_contexts_manager);
\Drupal::setContainer($this->container);

$this->accessCheck = new PermissionAccessCheck();
}
$this->accessCheck = new PermissionAccessCheck();
}

/**
* Provides data for the testAccess method.
*
* @dataProvider providerTestAccess
* @return array
*/
public function providerTestAccess() {
return [
[[], FALSE],
[['_permission' => 'allowed'], TRUE, ['user.permissions']],
[['_permission' => 'denied'], FALSE, ['user.permissions'], "The 'denied' permission is required."],
[['_permission' => 'allowed+denied'], TRUE, ['user.permissions']],
[['_permission' => 'allowed+denied+other'], TRUE, ['user.permissions']],
[['_permission' => 'allowed,denied'], FALSE, ['user.permissions'], "The following permissions are required: 'allowed' AND 'denied'."],
];
}
/**
* Provides data for the testAccess method.
*
* @return array
*/
public static function providerTestAccess() {
return [
[[], FALSE],
[['_permission' => 'allowed'], TRUE, ['user.permissions']],
[['_permission' => 'denied'], FALSE, ['user.permissions'], "The 'denied' permission is required."],
[['_permission' => 'allowed+denied'], TRUE, ['user.permissions']],
[['_permission' => 'allowed+denied+other'], TRUE, ['user.permissions']],
[['_permission' => 'allowed,denied'], FALSE, ['user.permissions'], "The following permissions are required: 'allowed' AND 'denied'."],
];
}

/**
* Tests the access check method.
*/
public function testAccess($requirements, $access, array $contexts = [], $message = '') {
$access_result = AccessResult::allowedIf($access)->addCacheContexts($contexts);
if (!empty($message)) {
$access_result->setReason($message);
}
$user = $this->createMock('Drupal\Core\Session\AccountInterface');
$user->expects($this->any())
->method('hasPermission')
->willReturnMap([
['allowed', TRUE],
['denied', FALSE],
['other', FALSE],
]);
$route = new Route('', [], $requirements);

$this->assertEquals($access_result, $this->accessCheck->access($route, $user));
/**
* Tests the access check method.
*
* @dataProvider providerTestAccess
* @covers ::access
*/
public function testAccess($requirements, $access, array $contexts = [], $message = ''): void {
$access_result = AccessResult::allowedIf($access)->addCacheContexts($contexts);
if (!empty($message)) {
$access_result->setReason($message);
}
$user = $this->createMock('Drupal\Core\Session\AccountInterface');
$user->expects($this->any())
->method('hasPermission')
->willReturnMap([
['allowed', TRUE],
['denied', FALSE],
['other', FALSE],
]);
$route = new Route('', [], $requirements);

$this->assertEquals($access_result, $this->accessCheck->access($route, $user));
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php

namespace Drupal\Tests\testmodule\Unit;
declare(strict_types=1);

namespace Drupal\Tests\user\Unit;

use Drupal\Core\Access\AccessResult;
use Drupal\Tests\UnitTestCase;
Expand All @@ -16,72 +18,74 @@
*/
class PermissionAccessCheckTest extends UnitTestCase {

/**
* The tested access checker.
*
* @var \Drupal\user\Access\PermissionAccessCheck
*/
public $accessCheck;
/**
* The tested access checker.
*
* @var \Drupal\user\Access\PermissionAccessCheck
*/
public $accessCheck;

/**
* The dependency injection container.
*
* @var \Symfony\Component\DependencyInjection\ContainerBuilder
*/
protected $container;
/**
* The dependency injection container.
*
* @var \Symfony\Component\DependencyInjection\ContainerBuilder
*/
protected $container;

/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();

$this->container = new ContainerBuilder();
$cache_contexts_manager = $this->prophesize(CacheContextsManager::class);
$cache_contexts_manager->assertValidTokens()->willReturn(TRUE);
$cache_contexts_manager->reveal();
$this->container->set('cache_contexts_manager', $cache_contexts_manager);
\Drupal::setContainer($this->container);
$this->container = new ContainerBuilder();
$cache_contexts_manager = $this->prophesize(CacheContextsManager::class);
$cache_contexts_manager->assertValidTokens()->willReturn(TRUE);
$cache_contexts_manager->reveal();
$this->container->set('cache_contexts_manager', $cache_contexts_manager);
\Drupal::setContainer($this->container);

$this->accessCheck = new PermissionAccessCheck();
}
$this->accessCheck = new PermissionAccessCheck();
}

/**
* Provides data for the testAccess method.
*
* @dataProvider providerTestAccess
* @return array
*/
public function providerTestAccess() {
return [
[[], FALSE],
[['_permission' => 'allowed'], TRUE, ['user.permissions']],
[['_permission' => 'denied'], FALSE, ['user.permissions'], "The 'denied' permission is required."],
[['_permission' => 'allowed+denied'], TRUE, ['user.permissions']],
[['_permission' => 'allowed+denied+other'], TRUE, ['user.permissions']],
[['_permission' => 'allowed,denied'], FALSE, ['user.permissions'], "The following permissions are required: 'allowed' AND 'denied'."],
];
}
/**
* Provides data for the testAccess method.
*
* @return array
*/
public static function providerTestAccess() {
return [
[[], FALSE],
[['_permission' => 'allowed'], TRUE, ['user.permissions']],
[['_permission' => 'denied'], FALSE, ['user.permissions'], "The 'denied' permission is required."],
[['_permission' => 'allowed+denied'], TRUE, ['user.permissions']],
[['_permission' => 'allowed+denied+other'], TRUE, ['user.permissions']],
[['_permission' => 'allowed,denied'], FALSE, ['user.permissions'], "The following permissions are required: 'allowed' AND 'denied'."],
];
}

/**
* Tests the access check method.
*/
public function testAccess($requirements, $access, array $contexts = [], $message = '') {
$access_result = AccessResult::allowedIf($access)->addCacheContexts($contexts);
if (!empty($message)) {
$access_result->setReason($message);
}
$user = $this->createMock('Drupal\Core\Session\AccountInterface');
$user->expects($this->any())
->method('hasPermission')
->willReturnMap([
['allowed', TRUE],
['denied', FALSE],
['other', FALSE],
]);
$route = new Route('', [], $requirements);

$this->assertEquals($access_result, $this->accessCheck->access($route, $user));
/**
* Tests the access check method.
*
* @dataProvider providerTestAccess
* @covers ::access
*/
public function testAccess($requirements, $access, array $contexts = [], $message = ''): void {
$access_result = AccessResult::allowedIf($access)->addCacheContexts($contexts);
if (!empty($message)) {
$access_result->setReason($message);
}
$user = $this->createMock('Drupal\Core\Session\AccountInterface');
$user->expects($this->any())
->method('hasPermission')
->willReturnMap([
['allowed', TRUE],
['denied', FALSE],
['other', FALSE],
]);
$route = new Route('', [], $requirements);

$this->assertEquals($access_result, $this->accessCheck->access($route, $user));
}

}

0 comments on commit 914940c

Please sign in to comment.