Version 1
[yaffs-website] / web / core / modules / system / tests / modules / conneg_test / src / Controller / TestController.php
diff --git a/web/core/modules/system/tests/modules/conneg_test/src/Controller/TestController.php b/web/core/modules/system/tests/modules/conneg_test/src/Controller/TestController.php
new file mode 100644 (file)
index 0000000..4638b09
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+
+namespace Drupal\conneg_test\Controller;
+
+use Symfony\Component\HttpFoundation\JsonResponse;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+
+/**
+ * Test controller for content negotation tests.
+ */
+class TestController {
+
+  /**
+   * Returns a json response.
+   *
+   * @return \Symfony\Component\HttpFoundation\JsonResponse
+   */
+  public function simple() {
+    return new JsonResponse(['some' => 'data']);
+  }
+
+  /**
+   * Returns a simple render array.
+   *
+   * @return array
+   */
+  public function html() {
+    return [
+      '#markup' => 'here',
+    ];
+  }
+
+  /**
+   * Returns different responses dependening on the request format.
+   *
+   * @param \Symfony\Component\HttpFoundation\Request $request
+   *   The request
+   *
+   * @return \Symfony\Component\HttpFoundation\Response
+   *   The response.
+   */
+  public function format(Request $request) {
+    switch ($request->getRequestFormat()) {
+      case 'json':
+        return new JsonResponse(['some' => 'data']);
+
+      case 'xml':
+        return new Response('<xml></xml>', Response::HTTP_OK, ['Content-Type' => 'application/xml']);
+
+      default:
+        return new Response($request->getRequestFormat());
+    }
+  }
+
+  /**
+   * Returns a render array depending on some passed in value.
+   *
+   * @param string $plugin_id
+   *   The plugin ID.
+   *
+   * @return array
+   *   The render array
+   */
+  public function variable($plugin_id) {
+    return [
+      '#markup' => $plugin_id,
+    ];
+  }
+
+}