Author: luks
Date: 2007-01-11 14:06:47 +0000 (Thu, 11 Jan 2007)
New Revision: 8784
Modified:
libmusicbrainz/branches/xmlws/src/utils.cpp
libmusicbrainz/branches/xmlws/test/test_utils.cpp
Log:
Fix MusicBrainz::extractUuid for releases and tracks.
Modified: libmusicbrainz/branches/xmlws/src/utils.cpp
===================================================================
--- libmusicbrainz/branches/xmlws/src/utils.cpp 2007-01-09 00:29:32 UTC (rev
8783)
+++ libmusicbrainz/branches/xmlws/src/utils.cpp 2007-01-11 14:06:47 UTC (rev
8784)
@@ -45,10 +45,10 @@
return uri;
string types[] = {"artist/", "release/", "track/"};
for (int i = 0; i < 3; i++) {
- string::size_type pos = uri.find(types[0]);
+ string::size_type pos = uri.find(types[i]);
if (pos != string::npos) {
- pos += types[i].size() + 1;
- if (pos + 36 <= uri.size()) {
+ pos += types[i].size();
+ if (pos + 36 == uri.size()) {
return uri.substr(pos, 36);
}
}
Modified: libmusicbrainz/branches/xmlws/test/test_utils.cpp
===================================================================
--- libmusicbrainz/branches/xmlws/test/test_utils.cpp 2007-01-09 00:29:32 UTC
(rev 8783)
+++ libmusicbrainz/branches/xmlws/test/test_utils.cpp 2007-01-11 14:06:47 UTC
(rev 8784)
@@ -9,7 +9,9 @@
class UtilsTest : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE(UtilsTest);
- CPPUNIT_TEST(testExtractUuid);
+ CPPUNIT_TEST(testExtractUuidArtist);
+ CPPUNIT_TEST(testExtractUuidRelease);
+ CPPUNIT_TEST(testExtractUuidTrack);
CPPUNIT_TEST(testExtractFragment);
CPPUNIT_TEST(testGetCountryName);
CPPUNIT_TEST(testGetLanguageName);
@@ -19,7 +21,7 @@
protected:
- void testExtractUuid()
+ void testExtractUuidArtist()
{
string artistPrefix = "http://musicbrainz.org/artist/";
string uuid = "c0b2500e-0cef-4130-869d-732b23ed9df5";
@@ -28,7 +30,27 @@
CPPUNIT_ASSERT_EQUAL(uuid, extractUuid(uuid));
CPPUNIT_ASSERT_EQUAL(uuid, extractUuid(mbid));
}
-
+
+ void testExtractUuidRelease()
+ {
+ string artistPrefix = "http://musicbrainz.org/release/";
+ string uuid = "c0b2500e-0cef-4130-869d-732b23ed9df5";
+ string mbid = artistPrefix + uuid;
+ CPPUNIT_ASSERT_EQUAL(string(), extractUuid(string()));
+ CPPUNIT_ASSERT_EQUAL(uuid, extractUuid(uuid));
+ CPPUNIT_ASSERT_EQUAL(uuid, extractUuid(mbid));
+ }
+
+ void testExtractUuidTrack()
+ {
+ string artistPrefix = "http://musicbrainz.org/track/";
+ string uuid = "c0b2500e-0cef-4130-869d-732b23ed9df5";
+ string mbid = artistPrefix + uuid;
+ CPPUNIT_ASSERT_EQUAL(string(), extractUuid(string()));
+ CPPUNIT_ASSERT_EQUAL(uuid, extractUuid(uuid));
+ CPPUNIT_ASSERT_EQUAL(uuid, extractUuid(mbid));
+ }
+
void testExtractFragment()
{
string fragment = "Album";
|