Commit fa816419 authored by catch's avatar catch
Browse files

Issue #3175112 by alexpott, longwave: hold_test module creates files in...

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

(cherry picked from commit 5e27a9f4)
parent c2a885fa
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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);
}
+1 −0
Original line number Diff line number Diff line
services:
  hold_test.response:
    class: Drupal\hold_test\EventSubscriber\HoldTestSubscriber
    arguments: ['%site.path%']
    tags:
      - { name: event_subscriber }
+18 −1
Original line number Diff line number Diff line
@@ -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 @@ public function onRespond() {
   *   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)));