summaryrefslogtreecommitdiffstats
path: root/chrome/utility
diff options
context:
space:
mode:
authorvandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-29 11:31:07 +0000
committervandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-29 11:31:07 +0000
commit93f926bec7142144afd35290b968d3dd4f53d1c8 (patch)
tree13ee46ec915375e62f5422f197785247f5f6db77 /chrome/utility
parent7710bfc58c208fdc19828311da15daf07771013e (diff)
downloadchromium_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.cc2
-rw-r--r--chrome/utility/media_galleries/itunes_library_parser_unittest.cc21
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