roster_test.go
changeset 111 36287f2cf06e
parent 110 7696e6a01709
equal deleted inserted replaced
110:7696e6a01709 111:36287f2cf06e
    11 )
    11 )
    12 
    12 
    13 // This is mostly just tests of the roster data structures.
    13 // This is mostly just tests of the roster data structures.
    14 
    14 
    15 func TestRosterIqMarshal(t *testing.T) {
    15 func TestRosterIqMarshal(t *testing.T) {
    16 	iq := &Iq{Stanza: Stanza{From: "from", Lang: "en",
    16 	iq := &Iq{Header: Header{From: "from", Lang: "en",
    17 		Nested: []interface{}{RosterQuery{}}}}
    17 		Nested: []interface{}{RosterQuery{}}}}
    18 	exp := `<iq from="from" xml:lang="en"><query xmlns="` +
    18 	exp := `<iq from="from" xml:lang="en"><query xmlns="` +
    19 		NsRoster + `"></query></iq>`
    19 		NsRoster + `"></query></iq>`
    20 	assertMarshal(t, exp, iq)
    20 	assertMarshal(t, exp, iq)
    21 }
    21 }
    24 	str := `<iq from="from" xml:lang="en"><query xmlns="` +
    24 	str := `<iq from="from" xml:lang="en"><query xmlns="` +
    25 		NsRoster + `"><item jid="a@b.c"/></query></iq>`
    25 		NsRoster + `"><item jid="a@b.c"/></query></iq>`
    26 	iq := Iq{}
    26 	iq := Iq{}
    27 	xml.Unmarshal([]byte(str), &iq)
    27 	xml.Unmarshal([]byte(str), &iq)
    28 	m := map[string]func(*xml.Name) interface{}{NsRoster: newRosterQuery}
    28 	m := map[string]func(*xml.Name) interface{}{NsRoster: newRosterQuery}
    29 	err := parseExtended(&iq.Stanza, m)
    29 	err := parseExtended(&iq.Header, m)
    30 	if err != nil {
    30 	if err != nil {
    31 		t.Fatalf("parseExtended: %v", err)
    31 		t.Fatalf("parseExtended: %v", err)
    32 	}
    32 	}
    33 	assertEquals(t, "iq", iq.XMLName.Local)
    33 	assertEquals(t, "iq", iq.XMLName.Local)
    34 	assertEquals(t, "from", iq.From)
    34 	assertEquals(t, "from", iq.From)