AdvisoryTestController.php

Same filename in other branches
  1. 9 core/modules/system/tests/modules/advisory_feed_test/src/Controller/AdvisoryTestController.php
  2. 11.x core/modules/system/tests/modules/advisory_feed_test/src/Controller/AdvisoryTestController.php

Namespace

Drupal\advisory_feed_test\Controller

File

core/modules/system/tests/modules/advisory_feed_test/src/Controller/AdvisoryTestController.php

View source
<?php

namespace Drupal\advisory_feed_test\Controller;

use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;

/**
 * Defines a controller to return JSON for security advisory tests.
 */
class AdvisoryTestController {
    
    /**
     * Reads a JSON file and returns the contents as a Response.
     *
     * This method will replace the string '[CORE_VERSION]' with the current core
     * version to allow testing core version matches.
     *
     * @param string $json_name
     *   The name of the JSON file without the file extension.
     *
     * @return \Symfony\Component\HttpFoundation\JsonResponse|\Symfony\Component\HttpFoundation\Response
     *   If a fixture file with the name $json_name + '.json' is found a
     *   JsonResponse will be returned using the contents of the file, otherwise a
     *   Response will be returned with a 404 status code.
     */
    public function getPsaJson(string $json_name) : Response {
        $file = __DIR__ . "/../../../../fixtures/psa_feed/{$json_name}.json";
        $headers = [
            'Content-Type' => 'application/json; charset=utf-8',
        ];
        if (!is_file($file)) {
            // Return an empty response.
            return new Response('', 404, $headers);
        }
        $contents = file_get_contents($file);
        $contents = str_replace('[CORE_VERSION]', \Drupal::VERSION, $contents);
        return new JsonResponse($contents, 200, $headers, TRUE);
    }

}

Classes

Title Deprecated Summary
AdvisoryTestController Defines a controller to return JSON for security advisory tests.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.