roster_test.go
changeset 72 53f15893a1a7
parent 61 16513974d273
child 74 e619e18dcec3
child 98 c9cc4eda6dce
equal deleted inserted replaced
71:578c2a83dc18 72:53f15893a1a7
    12 )
    12 )
    13 
    13 
    14 // This is mostly just tests of the roster data structures.
    14 // This is mostly just tests of the roster data structures.
    15 
    15 
    16 func TestRosterIqMarshal(t *testing.T) {
    16 func TestRosterIqMarshal(t *testing.T) {
    17 	iq := &Iq{From: "from", Lang: "en", Nested:
    17 	iq := &Iq{From: "from", Lang: "en", Nested: []interface{}{RosterQuery{}}}
    18 		[]interface{}{RosterQuery{}}}
       
    19 	exp := `<iq from="from" xml:lang="en"><query xmlns="` +
    18 	exp := `<iq from="from" xml:lang="en"><query xmlns="` +
    20 		NsRoster + `"></query></iq>`
    19 		NsRoster + `"></query></iq>`
    21 	assertMarshal(t, exp, iq)
    20 	assertMarshal(t, exp, iq)
    22 }
    21 }
    23 
    22 
    25 	str := `<iq from="from" xml:lang="en"><query xmlns="` +
    24 	str := `<iq from="from" xml:lang="en"><query xmlns="` +
    26 		NsRoster + `"><item jid="a@b.c"/></query></iq>`
    25 		NsRoster + `"><item jid="a@b.c"/></query></iq>`
    27 	r := strings.NewReader(str)
    26 	r := strings.NewReader(str)
    28 	var st Stanza = &Iq{}
    27 	var st Stanza = &Iq{}
    29 	xml.Unmarshal(r, st)
    28 	xml.Unmarshal(r, st)
    30 	m := map[string] func(*xml.Name) interface{}{NsRoster: newRosterQuery}
    29 	m := map[string]func(*xml.Name) interface{}{NsRoster: newRosterQuery}
    31 	err := parseExtended(st, m)
    30 	err := parseExtended(st, m)
    32 	if err != nil {
    31 	if err != nil {
    33 		t.Fatalf("parseExtended: %v", err)
    32 		t.Fatalf("parseExtended: %v", err)
    34 	}
    33 	}
    35 	assertEquals(t, "iq", st.GetName())
    34 	assertEquals(t, "iq", st.GetName())