Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Tests: Apply refactoring from upstream commit
See commit b76307413e887eb914d69f44a409a9bb6d6f9e30 in telepathy-qt.
  • Loading branch information
Kaffeine committed Sep 24, 2020
1 parent 0ad3eda commit 6298ef9
Showing 1 changed file with 45 additions and 47 deletions.
92 changes: 45 additions & 47 deletions tests/stubs/TelepathyQt/message.cpp
Expand Up @@ -29,69 +29,67 @@
namespace Tp
{

struct Message::Private : public QSharedData
namespace
{
Private(const MessagePartList &parts);
~Private();

MessagePartList parts;

ContactPtr sender;

inline QVariant value(uint index, const char *key) const;
inline uint getUIntOrZero(uint index, const char *key) const;
inline QString getStringOrEmpty(uint index, const char *key) const;
inline bool getBoolean(uint index, const char *key,
bool assumeIfAbsent) const;
inline uint senderHandle() const;
inline uint pendingId() const;
void clearSenderHandle();
};

Message::Private::Private(const MessagePartList &parts)
: parts(parts),
sender(0)
QVariant valueFromPart(const MessagePartList &parts, uint index, const char *key)
{
return parts.at(index).value(QLatin1String(key)).variant();
}

Message::Private::~Private()
uint uintOrZeroFromPart(const MessagePartList &parts, uint index, const char *key)
{
return valueFromPart(parts, index, key).toUInt();
}

inline QVariant Message::Private::value(uint index, const char *key) const
QString stringOrEmptyFromPart(const MessagePartList &parts, uint index, const char *key)
{
return parts.at(index).value(QLatin1String(key)).variant();
}

inline QString Message::Private::getStringOrEmpty(uint index, const char *key)
const
{
QString s = value(index, key).toString();
QString s = valueFromPart(parts, index, key).toString();
if (s.isNull()) {
s = QLatin1String("");
}
return s;
}

inline uint Message::Private::getUIntOrZero(uint index, const char *key)
const
bool booleanFromPart(const MessagePartList &parts, uint index, const char *key,
bool assumeIfAbsent)
{
return value(index, key).toUInt();
}

inline bool Message::Private::getBoolean(uint index, const char *key,
bool assumeIfAbsent) const
{
QVariant v = value(index, key);
QVariant v = valueFromPart(parts, index, key);
if (v.isValid() && v.type() == QVariant::Bool) {
return v.toBool();
}
return assumeIfAbsent;
}

}

struct Message::Private : public QSharedData
{
Private(const MessagePartList &parts);
~Private();

uint senderHandle() const;
uint pendingId() const;
void clearSenderHandle();

MessagePartList parts;

ContactPtr sender;
};

Message::Private::Private(const MessagePartList &parts)
: parts(parts),
sender(0)
{
}

Message::Private::~Private()
{
}

inline uint Message::Private::senderHandle() const
{
return getUIntOrZero(0, "message-sender");
return uintOrZeroFromPart(parts, 0, "message-sender");
}

/**
Expand Down Expand Up @@ -203,7 +201,7 @@ Message::~Message()
QDateTime Message::sent() const
{
// FIXME See http://bugs.freedesktop.org/show_bug.cgi?id=21690
uint stamp = mPriv->value(0, "message-sent").toUInt();
uint stamp = valueFromPart(mPriv->parts, 0, "message-sent").toUInt();
if (stamp != 0) {
return QDateTime::fromTime_t(stamp);
} else {
Expand All @@ -219,7 +217,7 @@ QDateTime Message::sent() const
*/
ChannelTextMessageType Message::messageType() const
{
uint raw = mPriv->value(0, "message-type").toUInt();
uint raw = valueFromPart(mPriv->parts, 0, "message-type").toUInt();

if (raw < static_cast<uint>(NUM_CHANNEL_TEXT_MESSAGE_TYPES)) {
return ChannelTextMessageType(raw);
Expand All @@ -236,7 +234,7 @@ ChannelTextMessageType Message::messageType() const
*/
QString Message::messageToken() const
{
return mPriv->getStringOrEmpty(0, "message-token");
return stringOrEmptyFromPart(mPriv->parts, 0, "message-token");
}

QString Message::text() const
Expand All @@ -246,8 +244,8 @@ QString Message::text() const
QString text;

for (int i = 1; i < size(); i++) {
QString altGroup = mPriv->getStringOrEmpty(i, "alternative");
QString contentType = mPriv->getStringOrEmpty(i, "content-type");
QString altGroup = stringOrEmptyFromPart(mPriv->parts, i, "alternative");
QString contentType = stringOrEmptyFromPart(mPriv->parts, i, "content-type");

if (contentType == QLatin1String("text/plain")) {
if (!altGroup.isEmpty()) {
Expand All @@ -258,7 +256,7 @@ QString Message::text() const
}
}

QVariant content = mPriv->value(i, "content");
QVariant content = valueFromPart(mPriv->parts, i, "content");
if (content.type() == QVariant::String) {
text += content.toString();
} else {
Expand Down Expand Up @@ -386,7 +384,7 @@ ReceivedMessage::~ReceivedMessage()
QDateTime ReceivedMessage::received() const
{
// FIXME See http://bugs.freedesktop.org/show_bug.cgi?id=21690
uint stamp = mPriv->value(0, "message-received").toUInt();
uint stamp = valueFromPart(mPriv->parts, 0, "message-received").toUInt();
if (stamp != 0) {
return QDateTime::fromTime_t(stamp);
} else {
Expand Down Expand Up @@ -417,7 +415,7 @@ ContactPtr ReceivedMessage::sender() const
*/
bool ReceivedMessage::isScrollback() const
{
return mPriv->getBoolean(0, "scrollback", false);
return booleanFromPart(mPriv->parts, 0, "scrollback", false);
}

void ReceivedMessage::ut_setSender(const ContactPtr& sender)
Expand Down

0 comments on commit 6298ef9

Please sign in to comment.