logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

[mb-commits] r8784 - in libmusicbrainz/branches/xmlws: src test: msg#00022

Subject: [mb-commits] r8784 - in libmusicbrainz/branches/xmlws: src test
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";


<Prev in Thread] Current Thread [Next in Thread>