27 if se.Text != nil { |
27 if se.Text != nil { |
28 t.Errorf("text not nil: %v", se.Text) |
28 t.Errorf("text not nil: %v", se.Text) |
29 } |
29 } |
30 |
30 |
31 r = strings.NewReader(`<stream:error><bad-foo/>` + |
31 r = strings.NewReader(`<stream:error><bad-foo/>` + |
32 `<text xml:lang="en" xmlns="` + nsStreams + |
32 `<text xml:lang="en" xmlns="` + NsStreams + |
33 `">Error text</text></stream:error>`) |
33 `">Error text</text></stream:error>`) |
34 ch = make(chan interface{}) |
34 ch = make(chan interface{}) |
35 go readXml(r, ch) |
35 go readXml(r, ch) |
36 x = <- ch |
36 x = <- ch |
37 se, ok = x.(*streamError) |
37 se, ok = x.(*streamError) |
45 } |
45 } |
46 |
46 |
47 func TestReadStream(t *testing.T) { |
47 func TestReadStream(t *testing.T) { |
48 r := strings.NewReader(`<stream:stream to="foo.com" ` + |
48 r := strings.NewReader(`<stream:stream to="foo.com" ` + |
49 `from="bar.org" id="42"` + |
49 `from="bar.org" id="42"` + |
50 `xmlns="jabber:client" xmlns:stream="` + nsStream + |
50 `xmlns="jabber:client" xmlns:stream="` + NsStream + |
51 `" version="1.0">`) |
51 `" version="1.0">`) |
52 ch := make(chan interface{}) |
52 ch := make(chan interface{}) |
53 go readXml(r, ch) |
53 go readXml(r, ch) |
54 x := <- ch |
54 x := <- ch |
55 ss, ok := x.(*stream) |
55 ss, ok := x.(*stream) |
83 str := testWrite(se) |
83 str := testWrite(se) |
84 exp := `<stream:error><blah></blah></stream:error>` |
84 exp := `<stream:error><blah></blah></stream:error>` |
85 assertEquals(t, exp, str) |
85 assertEquals(t, exp, str) |
86 |
86 |
87 se = &streamError{Any: Generic{XMLName: xml.Name{Space: |
87 se = &streamError{Any: Generic{XMLName: xml.Name{Space: |
88 nsStreams, Local: "foo"}}, Text: |
88 NsStreams, Local: "foo"}}, Text: |
89 &errText{Lang: "ru", Text: "Пошёл ты"}} |
89 &errText{Lang: "ru", Text: "Пошёл ты"}} |
90 str = testWrite(se) |
90 str = testWrite(se) |
91 exp = `<stream:error><foo xmlns="` + nsStreams + |
91 exp = `<stream:error><foo xmlns="` + NsStreams + |
92 `"></foo><text xmlns="` + nsStreams + |
92 `"></foo><text xmlns="` + NsStreams + |
93 `" xml:lang="ru">Пошёл ты</text></stream:error>` |
93 `" xml:lang="ru">Пошёл ты</text></stream:error>` |
94 assertEquals(t, exp, str) |
94 assertEquals(t, exp, str) |
95 } |
95 } |
96 |
96 |
97 func TestWriteStream(t *testing.T) { |
97 func TestWriteStream(t *testing.T) { |
98 ss := &stream{To: "foo.org", From: "bar.com", Id: "42", Lang: |
98 ss := &stream{To: "foo.org", From: "bar.com", Id: "42", Lang: |
99 "en", Version: "1.0"} |
99 "en", Version: "1.0"} |
100 str := testWrite(ss) |
100 str := testWrite(ss) |
101 exp := `<stream:stream xmlns="jabber:client"` + |
101 exp := `<stream:stream xmlns="jabber:client"` + |
102 ` xmlns:stream="` + nsStream + `" to="foo.org"` + |
102 ` xmlns:stream="` + NsStream + `" to="foo.org"` + |
103 ` from="bar.com" id="42" xml:lang="en" version="1.0">` |
103 ` from="bar.com" id="42" xml:lang="en" version="1.0">` |
104 assertEquals(t, exp, str) |
104 assertEquals(t, exp, str) |
105 } |
105 } |