...

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

Documentation: github.com/clbanning/mxj/v2

     1  // bomxml.go - test handling Byte-Order-Mark headers
     2  
     3  package mxj
     4  
     5  import (
     6  	"bytes"
     7  	"fmt"
     8  	"io"
     9  	"testing"
    10  )
    11  
    12  // Check for Byte-Order-Mark header.
    13  var boms = [][]byte{
    14  	{'\xef', '\xbb', '\xbf'},
    15  	{'\xfe', '\xff'},
    16  	{'\xff', '\xfe'},
    17  	{'\x00', '\x00', '\xfe', '\xff'},
    18  	{'\xff', '\xfe', '\x00', '\x00'},
    19  }
    20  
    21  func TestBom(t *testing.T) {
    22  	fmt.Println("\n--------------- bom_test.go")
    23  	fmt.Println("TestBom ...")
    24  
    25  	// use just UTF-8 BOM ... no alternative CharSetReader
    26  	if _, err := NewMapXml(boms[0]); err != io.EOF {
    27  		t.Fatalf("NewMapXml err; %v\n", err)
    28  	}
    29  
    30  	if _, err := NewMapXmlSeq(boms[0]); err != io.EOF {
    31  		t.Fatalf("NewMapXmlSeq err: %v\n", err)
    32  	}
    33  }
    34  
    35  var bomdata = append(boms[0], []byte(`<Allitems>
    36  	<Item>
    37  	</Item>
    38     <Item>
    39          <link>http://www.something.com</link>
    40          <description>Some description goes here.</description>
    41     </Item>
    42  </Allitems>`)...)
    43  
    44  func TestBomData(t *testing.T) {
    45  	fmt.Println("TestBomData ...")
    46  	m, err := NewMapXml(bomdata)
    47  	if err != nil {
    48  		t.Fatalf("err: didn't find xml.StartElement")
    49  	}
    50  	fmt.Printf("m: %v\n", m)
    51  	j, _ := m.Xml()
    52  	fmt.Println("m:", string(j))
    53  }
    54  
    55  func TestBomDataSeq(t *testing.T) {
    56  	fmt.Println("TestBomDataSeq ...")
    57  	m, err := NewMapXmlSeq(bomdata)
    58  	if err != nil {
    59  		t.Fatalf("err: didn't find xml.StartElement")
    60  	}
    61  	fmt.Printf("m: %v\n", m)
    62  	j, _ := m.Xml()
    63  	fmt.Println("m:", string(j))
    64  }
    65  
    66  func TestBomDataReader(t *testing.T) {
    67  	fmt.Println("TestBomDataReader ...")
    68  	r := bytes.NewReader(bomdata)
    69  	m, err := NewMapXmlReader(r)
    70  	if err != nil {
    71  		t.Fatalf("err: didn't find xml.StartElement")
    72  	}
    73  	fmt.Printf("m: %v\n", m)
    74  	j, _ := m.Xml()
    75  	fmt.Println("m:", string(j))
    76  }
    77  
    78  func TestBomDataSeqReader(t *testing.T) {
    79  	fmt.Println("TestBomDataSeqReader ...")
    80  	r := bytes.NewReader(bomdata)
    81  	m, err := NewMapXmlSeqReader(r)
    82  	if err != nil {
    83  		t.Fatalf("err: didn't find xml.StartElement")
    84  	}
    85  	fmt.Printf("m: %v\n", m)
    86  	j, _ := m.Xml()
    87  	fmt.Println("m:", string(j))
    88  }
    89  

View as plain text