...

Source file src/github.com/clbanning/mxj/v2/isvalid_test.go

Documentation: github.com/clbanning/mxj/v2

     1  package mxj
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  func TestXmlCheckIsValid(t *testing.T) {
     9  	fmt.Println("================== TestXmlCheckIsValid")
    10  	XmlCheckIsValid()
    11  	defer XmlCheckIsValid()
    12  
    13  	data := []byte(`{"":"empty", "$invalid":"hex$", "entities":"<>&", "nil": null}`)
    14  	m, err := NewMapJson(data)
    15  	if err != nil {
    16  		t.Fatal("NewMapJson err;", err)
    17  	}
    18  	fmt.Printf("%v\n", m)
    19  	if _, err = m.Xml(); err == nil {
    20  		t.Fatal("Xml err: nil")
    21  	}
    22  	if _, err = m.XmlIndent("", "   "); err == nil {
    23  		t.Fatal("XmlIndent err: nil")
    24  	}
    25  
    26  	data = []byte(`{"$invalid":"hex$", "entities":"<>&", "nil": null}`)
    27  	m, err = NewMapJson(data)
    28  	if err != nil {
    29  		t.Fatal("NewMapJson err;", err)
    30  	}
    31  	fmt.Printf("%v\n", m)
    32  	if _, err = m.Xml(); err == nil {
    33  		t.Fatal("Xml err: nil")
    34  	}
    35  	if _, err = m.XmlIndent("", "   "); err == nil {
    36  		t.Fatal("XmlIndent err: nil")
    37  	}
    38  
    39  	data = []byte(`{"entities":"<>&", "nil": null}`)
    40  	m, err = NewMapJson(data)
    41  	if err != nil {
    42  		t.Fatal("NewMapJson err;", err)
    43  	}
    44  	fmt.Printf("%v\n", m)
    45  	if _, err = m.Xml(); err == nil {
    46  		t.Fatal("Xml err: nil")
    47  	}
    48  	if _, err = m.XmlIndent("", "   "); err == nil {
    49  		t.Fatal("XmlIndent err: nil")
    50  	}
    51  
    52  	data = []byte(`{"nil": null}`)
    53  	m, err = NewMapJson(data)
    54  	if err != nil {
    55  		t.Fatal("NewMapJson err;", err)
    56  	}
    57  	fmt.Printf("%v\n", m)
    58  	if b, err := m.Xml(); err != nil {
    59  		fmt.Println("m:", string(b))
    60  		t.Fatal("Xml err:", err)
    61  	}
    62  	if _, err = m.XmlIndent("", "   "); err != nil {
    63  		t.Fatal("XmlIndent err:", nil)
    64  	}
    65  
    66  	ms, err := NewMapXmlSeq([]byte(`<doc><elem>element</elem></doc>`))
    67  	fmt.Printf("%v\n", ms)
    68  	if _, err = ms.Xml(); err != nil {
    69  		t.Fatal("Xml err:", err)
    70  	}
    71  
    72  	if _, err = ms.XmlIndent("", "   "); err != nil {
    73  		t.Fatal("XmlIndent err:", err)
    74  	}
    75  }
    76  

View as plain text