...

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

Documentation: github.com/clbanning/mxj/v2

     1  package mxj
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  var s = `"'<>&`
     9  
    10  func TestEscapeChars(t *testing.T) {
    11  	fmt.Println("\n================== TestEscapeChars")
    12  
    13  	ss := escapeChars(s)
    14  
    15  	if ss != `&quot;&apos;&lt;&gt;&amp;` {
    16  		t.Fatal(s, ":", ss)
    17  	}
    18  
    19  	fmt.Println(" s:", s)
    20  	fmt.Println("ss:", ss)
    21  }
    22  
    23  func TestXMLEscapeChars(t *testing.T) {
    24  	fmt.Println("================== TestXMLEscapeChars")
    25  
    26  	XMLEscapeChars(true)
    27  	defer XMLEscapeChars(false)
    28  
    29  	m := map[string]interface{}{"mychars":s}
    30  
    31  	x, err := AnyXmlIndent(s, "", "  ")
    32  	if err != nil {
    33  		t.Fatal(err)
    34  	}
    35  	fmt.Println("s:", string(x))
    36  
    37  	x, err = AnyXmlIndent(m, "", "  ")
    38  	if err != nil {
    39  		t.Fatal(err)
    40  	}
    41  	fmt.Println("m:", string(x))
    42  }
    43  
    44  func TestXMLEscapeChars2(t *testing.T) {
    45  	fmt.Println("================== TestXMLEscapeChars2")
    46  
    47  	XMLEscapeChars(true)
    48  	defer XMLEscapeChars(false)
    49  
    50  	ss := []byte(`<doc><simple attr1="an attribute">&quot;&apos;&lt;&gt;&amp;</simple></doc>`)
    51  	fmt.Println(string(ss))
    52  
    53  	mv, err := NewMapXml(ss)
    54  	if err != nil {
    55  		t.Fatal(err)
    56  	}
    57  	fmt.Printf("%v\n", mv)
    58  
    59  	x, err := mv.XmlIndent("", "  ")
    60  	if err != nil {
    61  		t.Fatal(err)
    62  	}
    63  	fmt.Println("mv:", string(x))
    64  }
    65  
    66  func TestXMLSeqEscapeChars(t *testing.T) {
    67  	fmt.Println("================== TestXMLSeqEscapeChars")
    68  	data := []byte(`
    69  		<doc>
    70  			<shortDescription>&gt;0-2y</shortDescription>
    71  		</doc>`)
    72  	fmt.Println("data:", string(data))
    73  
    74  	m, err := NewMapXmlSeq(data)
    75  	if err != nil {
    76  		t.Fatal(err)
    77  	}
    78  	fmt.Printf("m: %v\n", m)
    79  
    80  	XMLEscapeChars(true)
    81  	defer XMLEscapeChars(false)
    82  
    83  	x, err := m.XmlIndent("", "  ")
    84  	if err != nil {
    85  		t.Fatal(err)
    86  	}
    87  	fmt.Println("m:", string(x))
    88  }
    89  
    90  func TestXMLSeqEscapeChars2(t *testing.T) {
    91  	fmt.Println("================== TestXMLSeqEscapeChars2")
    92  	data := []byte(`
    93  		<doc>
    94  			<shortDescription test="&amp;something here">&gt;0-2y</shortDescription>
    95  			<shortDescription test="something there" quote="&quot;">&lt;10-15</shortDescription>
    96  		</doc>`)
    97  	fmt.Println("data:", string(data))
    98  
    99  	m, err := NewMapXmlSeq(data)
   100  	if err != nil {
   101  		t.Fatal(err)
   102  	}
   103  	fmt.Printf("m: %v\n", m)
   104  
   105  	XMLEscapeChars(true)
   106  	defer XMLEscapeChars(false)
   107  
   108  	x, err := m.XmlIndent("", "  ")
   109  	if err != nil {
   110  		t.Fatal(err)
   111  	}
   112  	fmt.Println("m:", string(x))
   113  }
   114  

View as plain text