Test for broken query responses with BAD REQUEST status

Change-Id: Iba7b544f8cd5d8eaa403d3de0b5dc259a81a8766
diff --git a/lib/Kalamar/Apps/test_backend.pl b/lib/Kalamar/Apps/test_backend.pl
index c00ab6b..ce8af5f 100644
--- a/lib/Kalamar/Apps/test_backend.pl
+++ b/lib/Kalamar/Apps/test_backend.pl
@@ -128,12 +128,67 @@
     });
   };
 
-  if ($v->param('q') && $v->param('q') eq 'server_fail') {
-    return $c->render(
-      status => 500,
-      inline => 'Oooops'
-    );
-
+  if ($v->param('q')) {
+    if ($v->param('q') eq 'server_fail') {
+      return $c->render(
+        status => 500,
+        inline => 'Oooops'
+      );
+    }
+    elsif ($v->param('q') eq '[orth=das') {
+      return $c->render(
+        status => 400,
+        json => {
+          "meta" => {
+            "count" => 13
+          },
+          "collection" => {
+            '@type' => "koral:docGroup",
+            "operation" => "operation:and",
+            "operands" => [
+              {
+                '@type' => "koral:doc",
+                "match" => "match:eq",
+                "type" => "type:regex",
+                "value" => "CC-BY.*",
+                "key" => "availability"
+              },
+              {
+                "operands" => [
+                  {
+                    '@type' => "koral:doc",
+                    "match" => "match:eq",
+                    "value" => "WPD",
+                    "key" => "corpusSigle"
+                  },
+                  {
+                    '@type' => "koral:doc",
+                    "match" => "match:eq",
+                    "value" => "GOE",
+                    "key" => "corpusSigle"
+                  }
+                ],
+                '@type' => "koral:docGroup",
+                "operation" => "operation:or"
+              }
+            ],
+            "rewrites" => [
+              {
+                '@type' => "koral:rewrite",
+                "src" => "Kustvakt",
+                "operation" => "operation:insertion",
+                "scope" => "availability(FREE)"
+              }
+            ]
+          },
+          '@context' => "http://korap.ids-mannheim.de/ns/koral/0.3/context.jsonld",
+          "errors" => [
+            [302,"Parantheses/brackets unbalanced.",0],
+            [302,"Could not parse query >>> [orth=der <<<."]
+          ]
+        }
+      );
+    }
   };
 
   if (my $auth = $c->req->headers->header('Authorization')) {
diff --git a/t/remote.t b/t/remote.t
index 4828b85..e86783e 100644
--- a/t/remote.t
+++ b/t/remote.t
@@ -54,5 +54,12 @@
   ->text_is('.notify-error', '500: Internal Server Error (remote)')
   ;
 
+
+# Check for query error
+$t->get_ok('/?q=[orth=das&ql=poliqarp')
+  ->element_exists('.notify-error')
+  ->text_is('.notify-error', '302: Parantheses/brackets unbalanced.')
+  ;
+
 done_testing;
 __END__