Added matchinfo tests
Change-Id: Idfbc7ebf3a1dd8524425999b4ab15cbe64bb68c8
diff --git a/t/fixtures/fake_backend.pl b/t/fixtures/fake_backend.pl
index 9573f3f..a49b05f 100644
--- a/t/fixtures/fake_backend.pl
+++ b/t/fixtures/fake_backend.pl
@@ -117,8 +117,10 @@
$c->stash('matchId')
));
+ my $slug = slugify($file);
+
# Get response based on query parameter
- my $response = $c->load_response(slugify($file));
+ my $response = $c->load_response($slug);
return $c->render(%$response);
};
diff --git a/t/fixtures/response_matchinfo_fail_x_x_p0-1.json b/t/fixtures/response_matchinfo_fail_x_x_p0-1.json
new file mode 100644
index 0000000..13f9ef4
--- /dev/null
+++ b/t/fixtures/response_matchinfo_fail_x_x_p0-1.json
@@ -0,0 +1,7 @@
+{
+ "status":200,
+ "json" : {
+ "@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+ "met
+ }
+}
diff --git a/t/fixtures/response_matchinfo_goe_agf_02286_p-2-0.json b/t/fixtures/response_matchinfo_goe_agf_02286_p-2-0.json
new file mode 100644
index 0000000..d743984
--- /dev/null
+++ b/t/fixtures/response_matchinfo_goe_agf_02286_p-2-0.json
@@ -0,0 +1,14 @@
+{
+ "status":200,
+ "json" : {
+ "errors":[
+ [730,"Invalid match identifier","match-GOE/AGF/02286-p-2-0"]
+ ],
+ "@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+ "meta":{
+ "version":"Krill-0.58.0"
+ },
+ "startMore":true,
+ "endMore":true
+ }
+}
diff --git a/t/fixtures/response_matchinfo_goe_agf_02286_p75682-75683.json b/t/fixtures/response_matchinfo_goe_agf_02286_p75682-75683.json
new file mode 100644
index 0000000..9f91d10
--- /dev/null
+++ b/t/fixtures/response_matchinfo_goe_agf_02286_p75682-75683.json
@@ -0,0 +1,28 @@
+{
+ "status":200,
+ "json" : {
+ "@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+ "meta":{
+ "version":"Krill-0.58.0"
+ },
+ "field":"tokens",
+ "pubPlace":"München",
+ "textSigle":"GOE/AGF/02286",
+ "docSigle":"GOE/AGF",
+ "corpusSigle":"GOE",
+ "title":"Materialien zur Geschichte der Farbenlehre",
+ "author":"Goethe, Johann Wolfgang von",
+ "availability":"QAO-NC",
+ "layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+ "startMore":true,
+ "endMore":true,
+ "license":"QAO-NC",
+ "snippet":"<span class=\"context-left\"><span class=\"more\"></span></span><span class=\"match\"><mark>Baum</mark></span><span class=\"context-right\"><span class=\"more\"></span></span>",
+ "matchID":"match-GOE/AGF/02286-p75682-75683",
+ "pubDate":"1982",
+ "context":{
+ "left":["token",0],
+ "right":["token",0]
+ }
+ }
+}
diff --git a/t/fixtures/response_matchinfo_notfound2_x_x_p0-1.json b/t/fixtures/response_matchinfo_notfound2_x_x_p0-1.json
new file mode 100644
index 0000000..4a7e430
--- /dev/null
+++ b/t/fixtures/response_matchinfo_notfound2_x_x_p0-1.json
@@ -0,0 +1,4 @@
+{
+ "status":404,
+ "inline" : ""
+}
diff --git a/t/fixtures/response_matchinfo_notfound_x_x_p0-1.json b/t/fixtures/response_matchinfo_notfound_x_x_p0-1.json
new file mode 100644
index 0000000..b3cdf57
--- /dev/null
+++ b/t/fixtures/response_matchinfo_notfound_x_x_p0-1.json
@@ -0,0 +1,13 @@
+{
+ "status":200,
+ "json" : {
+ "@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+ "meta":{
+ "version":"Krill-0.58.0"
+ },
+ "textSigle":"NOTFOUND/X/X",
+ "startMore":true,
+ "endMore":true,
+ "matchID":"match-NOTFOUND/X/X-p0-1"
+ }
+}
diff --git a/t/match_info.t b/t/match_info.t
index 42a1aa7..3e4b72c 100644
--- a/t/match_info.t
+++ b/t/match_info.t
@@ -28,6 +28,46 @@
$t->get_ok('/corpus2/WPD15/232/39681/p2133-2134?spans=false&foundry=*')
->status_is(200)
->json_is('/textSigle', 'WPD15/232/39681')
+ ->json_like('/snippet', qr!<span class=\"context-left\">!)
;
+$t->get_ok('/corpus2/GOE/AGF/02286/p75682-75683')
+ ->status_is(200)
+ ->json_is('/textSigle', 'GOE/AGF/02286')
+ ->json_is('/title','Materialien zur Geschichte der Farbenlehre')
+ ;
+
+# TODO:
+# It's surprising, that it doesn't return a 404!
+$t->get_ok('/corpus2/notfound/X/X/p0-1')
+ ->status_is(200)
+ ->json_is('/textSigle', 'NOTFOUND/X/X')
+ ->json_is('/corpusID', undef)
+ ;
+
+# TODO:
+# Should probably return a 500!
+$t->get_ok('/corpus2/fail/x/x/p0-0')
+ ->status_is(200)
+ ->json_is('/notifications/0/0', 'error')
+ ->json_is('/notifications/0/1', '500: Internal Server Error')
+ ;
+
+# TODO:
+# Should probably return a 4xx!
+$t->get_ok('/corpus2/GOE/AGF/02286/p-2-0')
+ ->status_is(200)
+ ->json_is('/notifications/0/0', 'error')
+ ->json_is('/notifications/0/1', '730: Invalid match identifier')
+ ;
+
+# TODO:
+# It's surprising, that it doesn't return a 404!
+$t->get_ok('/corpus2/notfound2/X/X/p0-1')
+ ->status_is(200)
+ ->json_is('/notifications/0/0', 'error')
+ ->json_is('/notifications/0/1', '404: Not Found')
+ ;
+
+
done_testing;