minifiers: Add a JSON roundtrip test
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 3 Nov 2019 10:34:22 +0000 (11:34 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 3 Nov 2019 10:34:22 +0000 (11:34 +0100)
See #6472

minifiers/minifiers_test.go

index d88dab88153aba521c0ebb39d6c967f3867d21f3..87e706320f85834798c9a05e9343f8099914b466 100644 (file)
@@ -15,6 +15,7 @@ package minifiers
 
 import (
        "bytes"
+       "encoding/json"
        "strings"
        "testing"
 
@@ -72,6 +73,44 @@ func TestNew(t *testing.T) {
 
 }
 
+func TestJSONRoundTrip(t *testing.T) {
+       c := qt.New(t)
+       m := New(media.DefaultTypes, output.DefaultFormats)
+
+       for _, test := range []string{`{
+    "glossary": {
+        "title": "example glossary",
+               "GlossDiv": {
+            "title": "S",
+                       "GlossList": {
+                "GlossEntry": {
+                    "ID": "SGML",
+                                       "SortAs": "SGML",
+                                       "GlossTerm": "Standard Generalized Markup Language",
+                                       "Acronym": "SGML",
+                                       "Abbrev": "ISO 8879:1986",
+                                       "GlossDef": {
+                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
+                                               "GlossSeeAlso": ["GML", "XML"]
+                    },
+                                       "GlossSee": "markup"
+                }
+            }
+        }
+    }
+}`} {
+
+               var b bytes.Buffer
+               m1 := make(map[string]interface{})
+               m2 := make(map[string]interface{})
+               c.Assert(json.Unmarshal([]byte(test), &m1), qt.IsNil)
+               c.Assert(m.Minify(media.JSONType, &b, strings.NewReader(test)), qt.IsNil)
+               c.Assert(json.Unmarshal(b.Bytes(), &m2), qt.IsNil)
+               c.Assert(m1, qt.DeepEquals, m2)
+       }
+
+}
+
 func TestBugs(t *testing.T) {
        c := qt.New(t)
        m := New(media.DefaultTypes, output.DefaultFormats)