Issue #3175112 by alexpott, longwave: hold_test module creates files in incorrect place leading to possible random errors

merge-requests/25/head
catch 2020-10-09 11:30:59 +01:00
parent 3272d42ab7
commit 5e27a9f44c
3 changed files with 23 additions and 3 deletions

View File

@ -12,7 +12,8 @@
* TRUE - enable hold, FALSE - disable hold.
*/
function hold_test_request($status) {
file_put_contents(\Drupal::root() . '/sites/default/files/simpletest/hold_test_request.txt', $status);
$site_path = \Drupal::getContainer()->getParameter('site.path');
file_put_contents($site_path . '/hold_test_request.txt', $status);
}
/**
@ -22,5 +23,6 @@ function hold_test_request($status) {
* TRUE - enable hold, FALSE - disable hold.
*/
function hold_test_response($status) {
file_put_contents(\Drupal::root() . '/sites/default/files/simpletest/hold_test_response.txt', $status);
$site_path = \Drupal::getContainer()->getParameter('site.path');
file_put_contents($site_path . '/hold_test_response.txt', $status);
}

View File

@ -1,5 +1,6 @@
services:
hold_test.response:
class: Drupal\hold_test\EventSubscriber\HoldTestSubscriber
arguments: ['%site.path%']
tags:
- { name: event_subscriber }

View File

@ -13,6 +13,23 @@ class HoldTestSubscriber implements EventSubscriberInterface {
const HOLD_REQUEST = 'request';
const HOLD_RESPONSE = 'response';
/**
* The site path.
*
* @var string
*/
protected $sitePath;
/**
* HoldTestSubscriber constructor.
*
* @param string $site_path
* The site path.
*/
public function __construct(string $site_path) {
$this->sitePath = $site_path;
}
/**
* Request hold.
*/
@ -34,7 +51,7 @@ class HoldTestSubscriber implements EventSubscriberInterface {
* Type of hold.
*/
protected function hold($type) {
$path = \Drupal::root() . "/sites/default/files/simpletest/hold_test_$type.txt";
$path = "{$this->sitePath}/hold_test_$type.txt";
do {
$status = (bool) file_get_contents($path);
} while ($status && (NULL === usleep(100000)));