| Index: chrome/utility/media_galleries/iphoto_library_parser_unittest.cc
|
| diff --git a/chrome/utility/media_galleries/iphoto_library_parser_unittest.cc b/chrome/utility/media_galleries/iphoto_library_parser_unittest.cc
|
| index 68ad6b8f79ab66ab2375ccc51e778a1c981c7b1e..29e6d42bcd3d6ae5189a700b1bf0393d709ecdc4 100644
|
| --- a/chrome/utility/media_galleries/iphoto_library_parser_unittest.cc
|
| +++ b/chrome/utility/media_galleries/iphoto_library_parser_unittest.cc
|
| @@ -41,7 +41,7 @@
|
| #define IMAGE_LIST_FOOTER() \
|
| " </dict>"
|
|
|
| -#define SIMPLE_PHOTO(id, guid, path, caption) \
|
| +#define SIMPLE_PHOTO(id, guid, path, caption, date) \
|
| " <key>" #id "</key>" \
|
| " <dict>" \
|
| " <key>MediaType</key>" \
|
| @@ -50,8 +50,16 @@
|
| " <string>" caption "</string>" \
|
| " <key>GUID</key>" \
|
| " <string>" #guid "</string>" \
|
| + " <key>ModDateAsTimerInterval</key>" \
|
| + " <string>386221543.0000</string>" \
|
| + " <key>DateAsTimerInterval</key>" \
|
| + " <string>386221543.0000</string>" \
|
| + " <key>DateAsTimerIntervalGMT</key>" \
|
| + " <string>" date "</string>" \
|
| " <key>ImagePath</key>" \
|
| " <string>" path "</string>" \
|
| + " <key>OriginalPath</key>" \
|
| + " <string>/original" path "</string>" \
|
| " <key>ThumbPath</key>" \
|
| " <string>" path "</string>" \
|
| " </dict>"
|
| @@ -60,6 +68,8 @@
|
| " </dict>" \
|
| "</plist>"
|
|
|
| +#define TIMESTAMP "385123456.00"
|
| +
|
| namespace iphoto {
|
|
|
| namespace {
|
| @@ -67,6 +77,8 @@ namespace {
|
| void ComparePhoto(const parser::Photo& a, const parser::Photo& b) {
|
| EXPECT_EQ(a.id, b.id);
|
| EXPECT_EQ(a.location.value(), b.location.value());
|
| + EXPECT_EQ(a.original_location.value(), b.original_location.value());
|
| + EXPECT_EQ(a.photo_time.ToInternalValue(), b.photo_time.ToInternalValue());
|
| }
|
|
|
| void CompareAlbum(const parser::Album& a, const parser::Album& b) {
|
| @@ -106,6 +118,8 @@ void CompareLibrary(const parser::Library& a, const parser::Library& b) {
|
| }
|
| }
|
|
|
| +static const int64 kTimestampInt = 385123456;
|
| +
|
| class IPhotoLibraryParserTest : public testing::Test {
|
| public:
|
| IPhotoLibraryParserTest() {}
|
| @@ -120,14 +134,33 @@ class IPhotoLibraryParserTest : public testing::Test {
|
| CompareLibrary(expected_library_, parser.library());
|
| }
|
|
|
| - void AddExpectedPhoto(uint32 id, const std::string& location,
|
| + void AddExpectedPhoto(uint32 id,
|
| + const std::string& location,
|
| + const base::Time& time,
|
| const std::string& album) {
|
| - parser::Photo photo(id, base::FilePath::FromUTF8Unsafe(location));
|
| + parser::Photo photo(id, base::FilePath::FromUTF8Unsafe(location),
|
| + base::FilePath::FromUTF8Unsafe("/original" + location),
|
| + time);
|
| if (!album.empty())
|
| expected_library_.albums[album].insert(id);
|
| expected_library_.all_photos.insert(photo);
|
| }
|
|
|
| + base::Time GetTime(int64 time_2001) {
|
| + // Apple epoch
|
| + base::Time::Exploded e;
|
| + e.year = 2001;
|
| + e.month = 1;
|
| + e.day_of_month = 1;
|
| + e.hour = 0;
|
| + e.minute = 0;
|
| + e.second = 0;
|
| + e.millisecond = 0;
|
| + base::Time t = base::Time::FromUTCExploded(e);
|
| + t += base::TimeDelta::FromSeconds(time_2001);
|
| + return t;
|
| + }
|
| +
|
| private:
|
| parser::Library expected_library_;
|
|
|
| @@ -139,47 +172,47 @@ TEST_F(IPhotoLibraryParserTest, EmptyLibrary) {
|
| }
|
|
|
| TEST_F(IPhotoLibraryParserTest, MinimalXML) {
|
| - AddExpectedPhoto(1, "/dir/Photo With Space.jpg", "");
|
| + AddExpectedPhoto(1, "/dir/Photo With Space.jpg", GetTime(kTimestampInt), "");
|
| TestParser(
|
| true,
|
| SIMPLE_HEADER()
|
| IMAGE_LIST_HEADER()
|
| - SIMPLE_PHOTO(1, 1, "/dir/Photo With Space.jpg", "Photo 1")
|
| + SIMPLE_PHOTO(1, 1, "/dir/Photo With Space.jpg", "Photo 1", TIMESTAMP)
|
| IMAGE_LIST_FOOTER()
|
| SIMPLE_FOOTER());
|
| }
|
|
|
| TEST_F(IPhotoLibraryParserTest, MultiplePhotos) {
|
| - AddExpectedPhoto(1, "/dir/SongA1.jpg", "");
|
| - AddExpectedPhoto(2, "/dir/SongA2.jpg", "");
|
| - AddExpectedPhoto(3, "/dir/SongA3.jpg", "");
|
| - AddExpectedPhoto(4, "/dir/SongB1.jpg", "");
|
| - AddExpectedPhoto(5, "/dir/SongB2.jpg", "");
|
| - AddExpectedPhoto(6, "/dir2/SongB1.jpg", "");
|
| - AddExpectedPhoto(7, "/dir2/SongB2.jpg", "");
|
| + AddExpectedPhoto(1, "/dir/SongA1.jpg", GetTime(kTimestampInt), "");
|
| + AddExpectedPhoto(2, "/dir/SongA2.jpg", GetTime(kTimestampInt), "");
|
| + AddExpectedPhoto(3, "/dir/SongA3.jpg", GetTime(kTimestampInt), "");
|
| + AddExpectedPhoto(4, "/dir/SongB1.jpg", GetTime(kTimestampInt), "");
|
| + AddExpectedPhoto(5, "/dir/SongB2.jpg", GetTime(kTimestampInt), "");
|
| + AddExpectedPhoto(6, "/dir2/SongB1.jpg", GetTime(kTimestampInt), "");
|
| + AddExpectedPhoto(7, "/dir2/SongB2.jpg", GetTime(kTimestampInt), "");
|
| TestParser(
|
| true,
|
| SIMPLE_HEADER()
|
| IMAGE_LIST_HEADER()
|
| - SIMPLE_PHOTO(1, 1, "/dir/SongA1.jpg", "Photo 1")
|
| - SIMPLE_PHOTO(2, 2, "/dir/SongA2.jpg", "Photo 2")
|
| - SIMPLE_PHOTO(3, 3, "/dir/SongA3.jpg", "Photo 3")
|
| - SIMPLE_PHOTO(4, 4, "/dir/SongB1.jpg", "Photo 4")
|
| - SIMPLE_PHOTO(5, 5, "/dir/SongB2.jpg", "Photo 5")
|
| - SIMPLE_PHOTO(6, 6, "/dir2/SongB1.jpg", "Photo 6")
|
| - SIMPLE_PHOTO(7, 7, "/dir2/SongB2.jpg", "Photo 7")
|
| + SIMPLE_PHOTO(1, 1, "/dir/SongA1.jpg", "Photo 1", TIMESTAMP)
|
| + SIMPLE_PHOTO(2, 2, "/dir/SongA2.jpg", "Photo 2", TIMESTAMP)
|
| + SIMPLE_PHOTO(3, 3, "/dir/SongA3.jpg", "Photo 3", TIMESTAMP)
|
| + SIMPLE_PHOTO(4, 4, "/dir/SongB1.jpg", "Photo 4", TIMESTAMP)
|
| + SIMPLE_PHOTO(5, 5, "/dir/SongB2.jpg", "Photo 5", TIMESTAMP)
|
| + SIMPLE_PHOTO(6, 6, "/dir2/SongB1.jpg", "Photo 6", TIMESTAMP)
|
| + SIMPLE_PHOTO(7, 7, "/dir2/SongB2.jpg", "Photo 7", TIMESTAMP)
|
| IMAGE_LIST_FOOTER()
|
| SIMPLE_FOOTER());
|
| }
|
|
|
| TEST_F(IPhotoLibraryParserTest, Albums) {
|
| - AddExpectedPhoto(1, "/dir/PhotoA1.jpg", "Album 1");
|
| - AddExpectedPhoto(2, "/dir/PhotoA2.jpg", "Album 1");
|
| - AddExpectedPhoto(3, "/dir/PhotoA3.jpg", "Album 2");
|
| - AddExpectedPhoto(4, "/dir/PhotoB1.jpg", "Album 2");
|
| - AddExpectedPhoto(5, "/dir/PhotoB2.jpg", "Album 3");
|
| - AddExpectedPhoto(6, "/dir2/PhotoB1.jpg", "Album 3");
|
| - AddExpectedPhoto(7, "/dir2/PhotoB2.jpg", "");
|
| + AddExpectedPhoto(1, "/dir/PhotoA1.jpg", GetTime(kTimestampInt), "Album 1");
|
| + AddExpectedPhoto(2, "/dir/PhotoA2.jpg", GetTime(kTimestampInt), "Album 1");
|
| + AddExpectedPhoto(3, "/dir/PhotoA3.jpg", GetTime(kTimestampInt), "Album 2");
|
| + AddExpectedPhoto(4, "/dir/PhotoB1.jpg", GetTime(kTimestampInt), "Album 2");
|
| + AddExpectedPhoto(5, "/dir/PhotoB2.jpg", GetTime(kTimestampInt), "Album 3");
|
| + AddExpectedPhoto(6, "/dir2/PhotoB1.jpg", GetTime(kTimestampInt), "Album 3");
|
| + AddExpectedPhoto(7, "/dir2/PhotoB2.jpg", GetTime(kTimestampInt), "");
|
| TestParser(
|
| true,
|
| SIMPLE_HEADER()
|
| @@ -189,13 +222,36 @@ TEST_F(IPhotoLibraryParserTest, Albums) {
|
| SIMPLE_ALBUM(11, "Album/3", 5, 6)
|
| ALBUMS_FOOTER()
|
| IMAGE_LIST_HEADER()
|
| - SIMPLE_PHOTO(1, 1, "/dir/PhotoA1.jpg", "Photo 1")
|
| - SIMPLE_PHOTO(2, 2, "/dir/PhotoA2.jpg", "Photo 2")
|
| - SIMPLE_PHOTO(3, 3, "/dir/PhotoA3.jpg", "Photo 3")
|
| - SIMPLE_PHOTO(4, 4, "/dir/PhotoB1.jpg", "Photo 4")
|
| - SIMPLE_PHOTO(5, 5, "/dir/PhotoB2.jpg", "Photo 5")
|
| - SIMPLE_PHOTO(6, 6, "/dir2/PhotoB1.jpg", "Photo 6")
|
| - SIMPLE_PHOTO(7, 7, "/dir2/PhotoB2.jpg", "Photo 7")
|
| + SIMPLE_PHOTO(1, 1, "/dir/PhotoA1.jpg", "Photo 1", TIMESTAMP)
|
| + SIMPLE_PHOTO(2, 2, "/dir/PhotoA2.jpg", "Photo 2", TIMESTAMP)
|
| + SIMPLE_PHOTO(3, 3, "/dir/PhotoA3.jpg", "Photo 3", TIMESTAMP)
|
| + SIMPLE_PHOTO(4, 4, "/dir/PhotoB1.jpg", "Photo 4", TIMESTAMP)
|
| + SIMPLE_PHOTO(5, 5, "/dir/PhotoB2.jpg", "Photo 5", TIMESTAMP)
|
| + SIMPLE_PHOTO(6, 6, "/dir2/PhotoB1.jpg", "Photo 6", TIMESTAMP)
|
| + SIMPLE_PHOTO(7, 7, "/dir2/PhotoB2.jpg", "Photo 7", TIMESTAMP)
|
| + IMAGE_LIST_FOOTER()
|
| + SIMPLE_FOOTER());
|
| +}
|
| +
|
| +TEST_F(IPhotoLibraryParserTest, DuplicateAlbumNames) {
|
| + AddExpectedPhoto(1, "/dir/PhotoA1.jpg", GetTime(kTimestampInt), "Album 1");
|
| + AddExpectedPhoto(2, "/dir/PhotoA2.jpg", GetTime(kTimestampInt), "Album 1");
|
| + AddExpectedPhoto(3, "/dir/PhotoA3.jpg", GetTime(kTimestampInt),
|
| + "Album 1(11)");
|
| + AddExpectedPhoto(4, "/dir/PhotoB1.jpg", GetTime(kTimestampInt),
|
| + "Album 1(11)");
|
| + TestParser(
|
| + true,
|
| + SIMPLE_HEADER()
|
| + ALBUMS_HEADER()
|
| + SIMPLE_ALBUM(10, "Album 1", 1, 2)
|
| + SIMPLE_ALBUM(11, "Album 1", 3, 4)
|
| + ALBUMS_FOOTER()
|
| + IMAGE_LIST_HEADER()
|
| + SIMPLE_PHOTO(1, 1, "/dir/PhotoA1.jpg", "Photo 1", TIMESTAMP)
|
| + SIMPLE_PHOTO(2, 2, "/dir/PhotoA2.jpg", "Photo 2", TIMESTAMP)
|
| + SIMPLE_PHOTO(3, 3, "/dir/PhotoA3.jpg", "Photo 3", TIMESTAMP)
|
| + SIMPLE_PHOTO(4, 4, "/dir/PhotoB1.jpg", "Photo 4", TIMESTAMP)
|
| IMAGE_LIST_FOOTER()
|
| SIMPLE_FOOTER());
|
| }
|
|
|