Skip to content

Commit

Permalink
Parse md5Sum attribute in appcast enclosure.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredhanson committed Apr 24, 2013
1 parent 0c4c7a9 commit 3ede5ff
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/update/appcastenclosure.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class AppcastEnclosurePrivate
QString version;
QUrl url;
QString type;
QString md5;
};


Expand Down Expand Up @@ -51,13 +52,19 @@ QString AppcastEnclosure::mimeType() const
return d_ptr->type;
}

QString AppcastEnclosure::md5Sum() const
{
return d_ptr->md5;
}

void AppcastEnclosure::deserializeXmlAttributes(XmlDeserializer *deserializer, const QXmlStreamAttributes & attributes)
{
Q_UNUSED(deserializer)

d_ptr->version = attributes.value(kSparkleXmlNamespaceUri, kSparkleEnclosureVersionXmlAttr).toString();
d_ptr->url = QUrl(attributes.value(kRssEnclosureUrlXmlAttr).toString());
d_ptr->type = attributes.value(kRssEnclosureTypeXmlAttr).toString();
d_ptr->md5 = attributes.value(kSparkleXmlNamespaceUri, kSparkleEnclosureMd5SumXmlAttr).toString();
}


Expand Down
1 change: 1 addition & 0 deletions src/update/appcastenclosure.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class AppcastEnclosure : public QObject,
QString version() const;
QUrl url() const;
QString mimeType() const;
QString md5Sum() const;


void deserializeXmlAttributes(XmlDeserializer *deserializer, const QXmlStreamAttributes & attributes);
Expand Down
1 change: 1 addition & 0 deletions src/update/appcastxmlns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const char *kSparkleXmlNamespaceUri = "http://www.andymatuschak.org/
const char *kSparkleReleaseNotesLinkXmlName = "releaseNotesLink";
const char *kSparkleMinimumSystemVersionXmlName = "minimumSystemVersion";
const char *kSparkleEnclosureVersionXmlAttr = "version";
const char *kSparkleEnclosureMd5SumXmlAttr = "md5Sum";

}

Expand Down
1 change: 1 addition & 0 deletions src/update/appcastxmlns.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ extern const char *kSparkleXmlNamespaceUri;
extern const char *kSparkleReleaseNotesLinkXmlName;
extern const char *kSparkleMinimumSystemVersionXmlName;
extern const char *kSparkleEnclosureVersionXmlAttr;
extern const char *kSparkleEnclosureMd5SumXmlAttr;

}

Expand Down
1 change: 1 addition & 0 deletions tests/auto/appcastenclosure/data/md5Sum.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<enclosure sparkle:md5Sum="16309a78add9dc7695ccc14079baae10" sparkle:version="1.3.10" url="http://adiumx.cachefly.net/Adium_1.3.10.dmg" length="22369877" type="application/octet-stream" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle"/>
16 changes: 16 additions & 0 deletions tests/auto/appcastenclosure/tst_appcastenclosure.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,22 @@ void tst_AppcastEnclosure::readElement()
QCOMPARE(mEnclosure->version(), QString("2.0"));
QCOMPARE(mEnclosure->url(), QUrl("http://you.com/app/Your Great App 2.0.zip"));
QCOMPARE(mEnclosure->mimeType(), QString("application/octet-stream"));
QCOMPARE(mEnclosure->md5Sum(), QString(""));
}

void tst_AppcastEnclosure::readElementWithMd5Sum()
{
QFile file("data/md5Sum.xml");
file.open(QIODevice::ReadOnly);

mDeserializer->addData(file.readAll());
mDeserializer->parse();

QVERIFY(mEnclosure);
QCOMPARE(mEnclosure->version(), QString("1.3.10"));
QCOMPARE(mEnclosure->url(), QUrl("http://adiumx.cachefly.net/Adium_1.3.10.dmg"));
QCOMPARE(mEnclosure->mimeType(), QString("application/octet-stream"));
QCOMPARE(mEnclosure->md5Sum(), QString("16309a78add9dc7695ccc14079baae10"));
}

IXmlDeserializing* tst_AppcastEnclosure::deserializeXmlStart(XmlDeserializer *deserializer, const QStringRef & namespaceUri, const QStringRef & name, const QXmlStreamAttributes & attributes)
Expand Down
1 change: 1 addition & 0 deletions tests/auto/appcastenclosure/tst_appcastenclosure.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ private slots:
void cleanup();

void readElement();
void readElementWithMd5Sum();

protected:
virtual IXmlDeserializing* deserializeXmlStart(XmlDeserializer *deserializer, const QStringRef & namespaceUri, const QStringRef & name, const QXmlStreamAttributes & attributes);
Expand Down

0 comments on commit 3ede5ff

Please sign in to comment.