|
@@ -47,3 +47,43 @@ func TestJsonExtract(t *testing.T) {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+func TestJsonExtractUnescape(t *testing.T) {
|
|
|
+ if err := Init(); err != nil {
|
|
|
+ log.Fatalf(err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ err := FileInit(TestFolder, "test_data_re.txt", "regex")
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalf(err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ tests := []struct {
|
|
|
+ name string
|
|
|
+ jsonBlob string
|
|
|
+ targetField string
|
|
|
+ expectResult string
|
|
|
+ }{
|
|
|
+ {
|
|
|
+ name: "basic json extract",
|
|
|
+ jsonBlob: `{"log" : "\"GET /JBNwtQ6i.blt HTTP/1.1\" 200 13 \"-\" \"Craftbot\""}`,
|
|
|
+ targetField: "log",
|
|
|
+ expectResult: "\"GET /JBNwtQ6i.blt HTTP/1.1\" 200 13 \"-\" \"Craftbot\"",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "basic json extract with non existing field",
|
|
|
+ jsonBlob: `{"test" : "1234"}`,
|
|
|
+ targetField: "non_existing_field",
|
|
|
+ expectResult: "",
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, test := range tests {
|
|
|
+ result := JsonExtractUnescape(test.jsonBlob, test.targetField)
|
|
|
+ isOk := assert.Equal(t, test.expectResult, result)
|
|
|
+ if !isOk {
|
|
|
+ t.Fatalf("test '%s' failed", test.name)
|
|
|
+ }
|
|
|
+ log.Printf("test '%s' : OK", test.name)
|
|
|
+ }
|
|
|
+
|
|
|
+}
|