Skip to content

Commit

Permalink
Cleanup XmlCheckIsValid code and test
Browse files Browse the repository at this point in the history
  • Loading branch information
clbanning committed Feb 4, 2021
1 parent 346fb2d commit 96f9c87
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 6 deletions.
41 changes: 39 additions & 2 deletions isvalid_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,57 @@ import (

func TestXmlCheckIsValid(t *testing.T) {
fmt.Println("================== TestXmlCheckIsValid")
XmlCheckIsValid()
defer XmlCheckIsValid()

data := []byte(`{"":"empty", "$invalid":"hex$", "entities":"<>&", "nil": null}`)
m, err := NewMapJson(data)
if err != nil {
t.Fatal("NewMapJson err;", err)
}
fmt.Printf("%v\n", m)
if _, err = m.Xml(); err == nil {
t.Fatal("Xml err: nil")
}
if _, err = m.XmlIndent("", " "); err == nil {
t.Fatal("XmlIndent err: nil")
}

XmlCheckIsValid()
defer XmlCheckIsValid()
data = []byte(`{"$invalid":"hex$", "entities":"<>&", "nil": null}`)
m, err = NewMapJson(data)
if err != nil {
t.Fatal("NewMapJson err;", err)
}
fmt.Printf("%v\n", m)
if _, err = m.Xml(); err == nil {
t.Fatal("Xml err: nil")
}
if _, err = m.XmlIndent("", " "); err == nil {
t.Fatal("XmlIndent err: nil")
}

data = []byte(`{"entities":"<>&", "nil": null}`)
m, err = NewMapJson(data)
if err != nil {
t.Fatal("NewMapJson err;", err)
}
fmt.Printf("%v\n", m)
if _, err = m.Xml(); err == nil {
t.Fatal("Xml err: nil")
}
if _, err = m.XmlIndent("", " "); err == nil {
t.Fatal("XmlIndent err: nil")
}

data = []byte(`{"nil": null}`)
m, err = NewMapJson(data)
if err != nil {
t.Fatal("NewMapJson err;", err)
}
fmt.Printf("%v\n", m)
if _, err = m.Xml(); err == nil {
t.Fatal("Xml err: nil")
}
if _, err = m.XmlIndent("", " "); err == nil {
t.Fatal("XmlIndent err: nil")
}
Expand Down
4 changes: 2 additions & 2 deletions xml.go
Original file line number Diff line number Diff line change
Expand Up @@ -695,7 +695,7 @@ func (mv Map) Xml(rootTag ...string) ([]byte, error) {
done:
if xmlCheckIsValid {
d := xml.NewDecoder(bytes.NewReader(b.Bytes()))
for _, err = d.Token(); err != io.EOF; {
for {
_, err = d.Token()
if err == io.EOF {
err = nil
Expand Down Expand Up @@ -945,7 +945,7 @@ func (mv Map) XmlIndent(prefix, indent string, rootTag ...string) ([]byte, error
}
if xmlCheckIsValid {
d := xml.NewDecoder(bytes.NewReader(b.Bytes()))
for _, err = d.Token(); err != io.EOF; {
for {
_, err = d.Token()
if err == io.EOF {
err = nil
Expand Down
4 changes: 2 additions & 2 deletions xmlseq.go
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ func (mv MapSeq) Xml(rootTag ...string) ([]byte, error) {
done:
if xmlCheckIsValid {
d := xml.NewDecoder(bytes.NewReader([]byte(*s)))
for _, err = d.Token(); err != io.EOF; {
for {
_, err = d.Token()
if err == io.EOF {
err = nil
Expand Down Expand Up @@ -552,7 +552,7 @@ func (mv MapSeq) XmlIndent(prefix, indent string, rootTag ...string) ([]byte, er
return nil, err
}
d := xml.NewDecoder(bytes.NewReader([]byte(*s)))
for _, err = d.Token(); err != io.EOF; {
for {
_, err = d.Token()
if err == io.EOF {
err = nil
Expand Down

0 comments on commit 96f9c87

Please sign in to comment.