diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-29 11:31:07 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-29 11:31:07 +0000 |
commit | 93f926bec7142144afd35290b968d3dd4f53d1c8 (patch) | |
tree | 13ee46ec915375e62f5422f197785247f5f6db77 /chrome/utility | |
parent | 7710bfc58c208fdc19828311da15daf07771013e (diff) | |
download | chromium_src-93f926bec7142144afd35290b968d3dd4f53d1c8.zip chromium_src-93f926bec7142144afd35290b968d3dd4f53d1c8.tar.gz chromium_src-93f926bec7142144afd35290b968d3dd4f53d1c8.tar.bz2 |
Fix location of tracks detected by itunes - they should be absolute.
BUG=280329
Review URL: https://chromiumcodereview.appspot.com/23437016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220264 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/utility')
-rw-r--r-- | chrome/utility/media_galleries/itunes_library_parser.cc | 2 | ||||
-rw-r--r-- | chrome/utility/media_galleries/itunes_library_parser_unittest.cc | 21 |
2 files changed, 20 insertions, 3 deletions
diff --git a/chrome/utility/media_galleries/itunes_library_parser.cc b/chrome/utility/media_galleries/itunes_library_parser.cc index 5f14a0e..a7d49d0 100644 --- a/chrome/utility/media_galleries/itunes_library_parser.cc +++ b/chrome/utility/media_galleries/itunes_library_parser.cc @@ -102,7 +102,7 @@ bool GetTrackInfoFromDict(XmlReader* reader, TrackInfo* result) { string16 location(decoded_location.data(), decoded_location.length()); #else string16 location16(decoded_location.data(), decoded_location.length()); - std::string location = UTF16ToUTF8(location16); + std::string location = "/" + UTF16ToUTF8(location16); #endif result->location = base::FilePath(location); found_location = true; diff --git a/chrome/utility/media_galleries/itunes_library_parser_unittest.cc b/chrome/utility/media_galleries/itunes_library_parser_unittest.cc index ccdeb94..cb772f4 100644 --- a/chrome/utility/media_galleries/itunes_library_parser_unittest.cc +++ b/chrome/utility/media_galleries/itunes_library_parser_unittest.cc @@ -33,7 +33,7 @@ namespace { void CompareTrack(const parser::Track& a, const parser::Track& b) { EXPECT_EQ(a.id, b.id); - EXPECT_EQ(a.location, b.location); + EXPECT_EQ(a.location.value(), b.location.value()); } void CompareAlbum(const parser::Album& a, const parser::Album& b) { @@ -90,7 +90,13 @@ class ITunesLibraryParserTest : public testing::Test { void AddExpectedTrack(uint32 id, const std::string& location, const std::string& artist, const std::string& album) { - parser::Track track(id, base::FilePath::FromUTF8Unsafe(location)); + // On Mac this pretends that C: is a directory. +#if defined(OS_MACOSX) + std::string os_location = "/" + location; +#else + const std::string& os_location = location; +#endif + parser::Track track(id, base::FilePath::FromUTF8Unsafe(os_location)); expected_library_[artist][album].insert(track); } @@ -264,6 +270,17 @@ TEST_F(ITunesLibraryParserTest, AlbumArtist) { SIMPLE_FOOTER()); } +TEST_F(ITunesLibraryParserTest, MacPath) { + AddExpectedTrack(1, "dir/Song With Space.mp3", "Artist A", "Album A"); + TestParser( + true, + SIMPLE_HEADER() + // This path is concatenated with "http://localhost/", so no leading + // slash should be used. + SIMPLE_TRACK(1, 1, "dir/Song%20With%20Space.mp3", "Artist A", "Album A") + SIMPLE_FOOTER()); +} + } // namespace } // namespace itunes |