|
@@ -0,0 +1,78 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "io/ioutil"
|
|
|
+ "log"
|
|
|
+ "net/http"
|
|
|
+ "net/http/httptest"
|
|
|
+ "os"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func TestSegmentCleanup(t *testing.T) {
|
|
|
+ sourceSegment := "<seg>This is test</seg>"
|
|
|
+ targetSegment := "<seg>This is test for target</seg>"
|
|
|
+
|
|
|
+ cleanedSourceSegment := "This is test"
|
|
|
+ cleanedTargetSegment := "This is test for target"
|
|
|
+
|
|
|
+ segment := Segment{sourceSegment, targetSegment}
|
|
|
+ segment.Clean()
|
|
|
+
|
|
|
+ t.Log("Testing if <seg> tags will be removed from segments.")
|
|
|
+ if segment.Source == cleanedSourceSegment && segment.Target == cleanedTargetSegment {
|
|
|
+ t.Log("Segments have been cleaned!")
|
|
|
+ } else {
|
|
|
+ t.Fatalf("Segments still have tags!\nSource: %v\nTarget: %v", segment.Source, segment.Target)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func ServeSearchResults() *httptest.Server {
|
|
|
+ searchResults, err := ioutil.ReadFile("./testFiles/searchResults.json")
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalf("Error reading file: %v\n", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ f := func(w http.ResponseWriter, r *http.Request) {
|
|
|
+ w.WriteHeader(200)
|
|
|
+ w.Header().Set("Content-Type", "application/json")
|
|
|
+ fmt.Fprintln(w, string(searchResults))
|
|
|
+ }
|
|
|
+
|
|
|
+ return httptest.NewServer(http.HandlerFunc(f))
|
|
|
+}
|
|
|
+
|
|
|
+func TestSearch(t *testing.T) {
|
|
|
+ server := ServeSearchResults()
|
|
|
+ defer server.Close()
|
|
|
+
|
|
|
+ var app Application
|
|
|
+ app.SetBaseURL(server.URL)
|
|
|
+
|
|
|
+ tmsJSON, err := os.Open("./testFiles/tms.json")
|
|
|
+ defer tmsJSON.Close()
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("error reading tms: %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var tms []TM
|
|
|
+ JsonDecoder(tmsJSON, &tms)
|
|
|
+
|
|
|
+ testSourceSegment1 := "<bpt i='1' type='bold'>{}</bpt>Something Test/ Whatever<ept i='1'>{}</ept>"
|
|
|
+ testSourceSegment2 := "<bpt i='1' type='bold'>{}</bpt>Another Test/ Anything<ept i='1'>{}</ept>"
|
|
|
+
|
|
|
+ t.Log("Testing search method.")
|
|
|
+ searchResults := app.Search(tms, "something")
|
|
|
+ if searchResults.TotalResults != 4 {
|
|
|
+ t.Fatalf("Not all results returned! (%v)", searchResults.TotalResults)
|
|
|
+ }
|
|
|
+
|
|
|
+ segment := searchResults.Results[0].Segments[0]
|
|
|
+ if segment.Source == testSourceSegment1 || segment.Source == testSourceSegment2 {
|
|
|
+ t.Log("Search results fine!")
|
|
|
+ } else {
|
|
|
+ t.Fatalf("Something is wrong with returned segment!\n%v", segment)
|
|
|
+ }
|
|
|
+}
|