about summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-05-20 16:42:44 -0400
committerDrew DeVault <sir@cmpwn.com>2019-05-20 16:43:08 -0400
commit511fea39449b6db551151da86d914bf7ab3b3713 (patch)
tree12171a8d34d850265f6bd96d8d3ead372b8dbdbc /lib
parent3376f926ed2ed7184d2710c85c327b9357e2bea4 (diff)
downloadaerc-511fea39449b6db551151da86d914bf7ab3b3713.tar.gz
Flesh out multipart switcher
Diffstat (limited to 'lib')
-rw-r--r--lib/msgstore.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go
index 827d7cb..6ab7fc2 100644
--- a/lib/msgstore.go
+++ b/lib/msgstore.go
@@ -90,7 +90,7 @@ func (store *MessageStore) FetchFull(uids []uint32, cb func(io.Reader)) {
 }
 
 func (store *MessageStore) FetchBodyPart(
-	uid uint32, part int, cb func(io.Reader)) {
+	uid uint32, part []int, cb func(io.Reader)) {
 
 	store.worker.PostAction(&types.FetchMessageBodyPart{
 		Uid:  uid,
'>118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
#include <glib.h>
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include <stdlib.h>
#include <string.h>

#include <stabber.h>
#include <expect.h>

#include "proftest.h"

void
ping_server(void **state)
{
    stbbr_for_id("prof_disco_info_onconnect_2",
        "<iq id='prof_disco_info_onconnect_2' to='stabber@localhost/profanity' type='result' from='localhost'>"
            "<query xmlns='http://jabber.org/protocol/disco#info'>"
                "<identity category='server' type='im' name='Prosody'/>"
                "<feature var='urn:xmpp:ping'/>"
            "</query>"
        "</iq>"
    );

    stbbr_for_id("prof_ping_4",
        "<iq id='prof_ping_4' type='result' to='stabber@localhost/profanity'/>"
    );
    stbbr_for_id("prof_ping_5",
        "<iq id='prof_ping_5' type='result' to='stabber@localhost/profanity'/>"
    );

    prof_connect();

    prof_input("/ping");
    assert_true(stbbr_received(
        "<iq id='prof_ping_4' type='get'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    ));
    assert_true(prof_output_exact("Ping response from server"));

    prof_input("/ping");
    assert_true(stbbr_received(
        "<iq id='prof_ping_5' type='get'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    ));
    assert_true(prof_output_exact("Ping response from server"));
}

void
ping_server_not_supported(void **state)
{
    stbbr_for_id("prof_disco_info_onconnect_2",
        "<iq id='prof_disco_info_onconnect_2' to='stabber@localhost/profanity' type='result' from='localhost'>"
            "<query xmlns='http://jabber.org/protocol/disco#info'>"
                "<identity category='server' type='im' name='Stabber'/>"
            "</query>"
        "</iq>"
    );

    prof_connect();

    prof_input("/ping");
    assert_true(prof_output_exact("Server does not support ping requests."));
}

void
ping_responds_to_server_request(void **state)
{
    prof_connect();

    stbbr_send(
        "<iq id='pingtest1' type='get' to='stabber@localhost/profanity' from='localhost'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    );

    assert_true(stbbr_received(
        "<iq id='pingtest1' type='result' from='stabber@localhost/profanity' to='localhost'/>"
    ));
}

void ping_jid(void **state)
{
    stbbr_for_id("prof_caps_4",
        "<iq id='prof_caps_4' to='stabber@localhost/profanity' type='result' from='buddy1@localhost/mobile'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='>"
                "<identity category='client' type='console' name='Profanity0.6.0'/>"
                "<feature var='urn:xmpp:ping'/>"
                "<feature var='http://jabber.org/protocol/disco#info'/>"
                "<feature var='http://jabber.org/protocol/caps'/>"
            "</query>"
        "</iq>"
    );

    prof_connect();

    stbbr_send(
        "<presence to='stabber@localhost' from='buddy1@localhost/mobile'>"
            "<priority>10</priority>"
            "<status>I'm here</status>"
            "<c "
                "hash='sha-1' "
                "xmlns='http://jabber.org/protocol/caps' "
                "node='http://profanity-im.github.io' "
                "ver='LpT2xs3nun7jC2sq4gg3WRDQFZ4='"
            "/>"
        "</presence>"
    );
    assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\""));

    assert_true(stbbr_received(
        "<iq id='prof_caps_4' to='buddy1@localhost/mobile' type='get'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='/>"
        "</iq>"
    ));

    stbbr_for_id("prof_ping_5",
        "<iq from='buddy1@localhost/mobile' to='stabber@localhost' id='prof_ping_5' type='result'/>"
    );

    prof_input("/ping buddy1@localhost/mobile");

    assert_true(stbbr_received(
        "<iq id='prof_ping_5' type='get' to='buddy1@localhost/mobile'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    ));
    assert_true(prof_output_exact("Ping response from buddy1@localhost/mobile"));
}

void ping_jid_not_supported(void **state)
{
    stbbr_for_id("prof_caps_4",
        "<iq id='prof_caps_4' to='stabber@localhost/profanity' type='result' from='buddy1@localhost/mobile'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='>"
                "<identity category='client' type='console' name='Profanity0.6.0'/>"
                "<feature var='http://jabber.org/protocol/disco#info'/>"
                "<feature var='http://jabber.org/protocol/caps'/>"
            "</query>"
        "</iq>"
    );

    prof_connect();

    stbbr_send(
        "<presence to='stabber@localhost' from='buddy1@localhost/mobile'>"
            "<priority>10</priority>"
            "<status>I'm here</status>"
            "<c "
                "hash='sha-1' "
                "xmlns='http://jabber.org/protocol/caps' "
                "node='http://profanity-im.github.io' "
                "ver='LpT2xs3nun7jC2sq4gg3WRDQFZ4='"
            "/>"
        "</presence>"
    );
    assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\""));

    assert_true(stbbr_received(
        "<iq id='prof_caps_4' to='buddy1@localhost/mobile' type='get'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='/>"
        "</iq>"
    ));

    prof_input("/ping buddy1@localhost/mobile");
    assert_true(prof_output_exact("buddy1@localhost/mobile does not support ping requests."));
}