Files @ 0729d364ca25
Branch filter:

Location: libtransport.git/tests/libpurple_jabber/avatar.py

Vladimír Matěna
Fix double free in DummyConnectionServer

Do not create shared ptr from this as this lead to double free in
UserRegistryTest::login test. Shared ptr was needed to set event
owner in acceptConnection, actually it is never needed as events
are never filtered by owner. Thus it was removed and there is no
need to create shared ptr from this.
import optparse
import sys
import time
import subprocess
import os

import sleekxmpp

import struct
import zlib
def chunk(t, data):
	return struct.pack('>I', len(data)) + t + data
#+ struct.pack('>I', zlib.crc32(t + data))
png = b'\x89PNG\r\n\x1A\n' + chunk(b'IHDR', struct.pack('>IIBBBBB', 1, 1, 1, 0, 0, 0, 0)) + chunk(b'IDAT', zlib.compress(struct.pack('>BB', 0, 0))) + chunk(b'IEND', b'')


class Responder(sleekxmpp.ClientXMPP):
	def __init__(self, jid, password, room, room_password, nick):
		sleekxmpp.ClientXMPP.__init__(self, jid, password)
		self.room = room
		self.room_password = room_password
		self.nick = nick
		self.finished = False
		self.add_event_handler("session_start", self.start)
		self.add_event_handler("vcard_avatar_update", self.vcard_avatar_update)

		self.tests = {}
		self.tests["photohash"] = ["libpurple: Photo hash received in Presence", False]

	def vcard_avatar_update(self, presence):
		self.tests["photohash"][1] = True
		self.finished = True

	def start(self, event):
		self.getRoster()
		self.sendPresence()

class Client(sleekxmpp.ClientXMPP):
	def __init__(self, jid, password, room, nick):
		sleekxmpp.ClientXMPP.__init__(self, jid, password)
		self.room = room
		self.nick = nick
		self.add_event_handler("session_start", self.start)
		self.finished = False

		self.tests = {}

	def start(self, event):
		self.getRoster()
		self.sendPresence()
		self['xep_0153'].set_avatar(avatar=png, mtype='image/png')