From 64d71d587eb618cb4490e51d4af48e9f374f7f8d Mon Sep 17 00:00:00 2001 From: xengineering Date: Wed, 28 Jun 2023 17:43:38 +0200 Subject: xmpp: Add indent level test for elementBuffer This tests if the indent level is correctly detected. This basic test can be extended to support invalid XML elements which should be refused to add to the element buffer. --- xmpp/element_buffer_test.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 xmpp/element_buffer_test.go diff --git a/xmpp/element_buffer_test.go b/xmpp/element_buffer_test.go new file mode 100644 index 0000000..3d03f0b --- /dev/null +++ b/xmpp/element_buffer_test.go @@ -0,0 +1,40 @@ +package xmpp + +import ( + "encoding/xml" + "strings" + "testing" +) + +type bufTest struct { + xml string + levels []int +} + +func TestElementBuffer(t *testing.T) { + var tests = []bufTest{ + bufTest{``, []int{1, 0}}, + bufTest{`testing`, []int{1, 2, 2, 1, 0}}, + bufTest{`testing`, []int{1, 1, 2, 2, 1, 0}}, + } + + for _, v := range tests { + r := strings.NewReader(v.xml) + d := xml.NewDecoder(r) + b := newElementBuffer() + + for i, _ := range v.levels { + token, err := d.Token() + if err != nil { + break + } + err = b.add(token) + if err != nil { + t.Fatalf("xmpp.elementBuffer.add() returned error: `%v`!\n", err) + } + if b.level != v.levels[i] { + t.Fatalf("Indent level of xmpp.elementBuffer %d does not match value given by test data %d!\n", b.level, v.levels[i]) + } + } + } +} -- cgit v1.2.3-70-g09d2