forked from jshiffer/go-xmpp
Added tests for new Owner namespace function
This commit is contained in:
parent
1d1adb0c48
commit
e9bda893d6
@ -816,6 +816,58 @@ func TestGetFormFieldsCmd(t *testing.T) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNewFormSubmissionOwner(t *testing.T) {
|
||||||
|
expectedReq := "<iq type=\"set\" id=\"config2\" to=\"pubsub.shakespeare.lit\">" +
|
||||||
|
"<pubsub xmlns=\"http://jabber.org/protocol/pubsub#owner\"> <configure node=\"princely_musings\"> " +
|
||||||
|
"<x xmlns=\"jabber:x:data\" type=\"submit\" > <field var=\"FORM_TYPE\" type=\"hidden\"> " +
|
||||||
|
"<value>http://jabber.org/protocol/pubsub#node_config</value> </field> <field var=\"pubsub#item_expire\"> " +
|
||||||
|
"<value>604800</value> </field> <field var=\"pubsub#access_model\"> <value>roster</value> </field> " +
|
||||||
|
"<field var=\"pubsub#roster_groups_allowed\"> <value>friends</value> <value>servants</value> " +
|
||||||
|
"<value>courtiers</value> </field> </x> </configure> </pubsub> </iq>"
|
||||||
|
|
||||||
|
subR, err := stanza.NewFormSubmissionOwner("pubsub.shakespeare.lit",
|
||||||
|
"princely_musings",
|
||||||
|
[]*stanza.Field{
|
||||||
|
{Var: "FORM_TYPE", Type: stanza.FieldTypeHidden, ValuesList: []string{"http://jabber.org/protocol/pubsub#node_config"}},
|
||||||
|
{Var: "pubsub#item_expire", ValuesList: []string{"604800"}},
|
||||||
|
{Var: "pubsub#access_model", ValuesList: []string{"roster"}},
|
||||||
|
{Var: "pubsub#roster_groups_allowed", ValuesList: []string{"friends", "servants", "courtiers"}},
|
||||||
|
})
|
||||||
|
subR.Id = "config2"
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Could not create request : %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, e := checkMarshalling(t, subR); e != nil {
|
||||||
|
t.Fatalf("Failed to check marshalling for generated sub request : %s", e)
|
||||||
|
}
|
||||||
|
|
||||||
|
pubsub, ok := subR.Payload.(*stanza.PubSubOwner)
|
||||||
|
if !ok {
|
||||||
|
t.Fatalf("payload is not a pubsub in namespace owner !")
|
||||||
|
}
|
||||||
|
|
||||||
|
conf, ok := pubsub.OwnerUseCase.(*stanza.ConfigureOwner)
|
||||||
|
if !ok {
|
||||||
|
t.Fatalf("pubsub does not contain a configure node !")
|
||||||
|
}
|
||||||
|
|
||||||
|
if conf.Form == nil {
|
||||||
|
t.Fatalf("the form is absent from the configuration submission !")
|
||||||
|
}
|
||||||
|
if len(conf.Form.Fields) != 4 {
|
||||||
|
t.Fatalf("expected 4 fields, found %d", len(conf.Form.Fields))
|
||||||
|
}
|
||||||
|
if len(conf.Form.Fields[3].ValuesList) != 3 {
|
||||||
|
t.Fatalf("expected 3 values in fourth field, found %d", len(conf.Form.Fields[3].ValuesList))
|
||||||
|
}
|
||||||
|
|
||||||
|
data, err := xml.Marshal(subR)
|
||||||
|
if err := compareMarshal(expectedReq, string(data)); err != nil {
|
||||||
|
t.Fatalf(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func getPubSubOwnerPayload(response string) (*stanza.PubSubOwner, error) {
|
func getPubSubOwnerPayload(response string) (*stanza.PubSubOwner, error) {
|
||||||
var respIQ stanza.IQ
|
var respIQ stanza.IQ
|
||||||
err := xml.Unmarshal([]byte(response), &respIQ)
|
err := xml.Unmarshal([]byte(response), &respIQ)
|
||||||
|
Loading…
Reference in New Issue
Block a user