| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 | 47 |
| 48 } // namespace | 48 } // namespace |
| 49 | 49 |
| 50 class TestITunesDataProvider : public ITunesDataProvider { | 50 class TestITunesDataProvider : public ITunesDataProvider { |
| 51 public: | 51 public: |
| 52 TestITunesDataProvider(const base::FilePath& xml_library_path, | 52 TestITunesDataProvider(const base::FilePath& xml_library_path, |
| 53 const base::Closure& callback) | 53 const base::Closure& callback) |
| 54 : ITunesDataProvider(xml_library_path), | 54 : ITunesDataProvider(xml_library_path), |
| 55 callback_(callback) { | 55 callback_(callback) { |
| 56 } | 56 } |
| 57 virtual ~TestITunesDataProvider() {} | 57 ~TestITunesDataProvider() override {} |
| 58 | 58 |
| 59 private: | 59 private: |
| 60 virtual void OnLibraryChanged(const base::FilePath& path, | 60 void OnLibraryChanged(const base::FilePath& path, bool error) override { |
| 61 bool error) override { | |
| 62 ITunesDataProvider::OnLibraryChanged(path, error); | 61 ITunesDataProvider::OnLibraryChanged(path, error); |
| 63 callback_.Run(); | 62 callback_.Run(); |
| 64 } | 63 } |
| 65 | 64 |
| 66 base::Closure callback_; | 65 base::Closure callback_; |
| 67 | 66 |
| 68 DISALLOW_COPY_AND_ASSIGN(TestITunesDataProvider); | 67 DISALLOW_COPY_AND_ASSIGN(TestITunesDataProvider); |
| 69 }; | 68 }; |
| 70 | 69 |
| 71 class ITunesDataProviderTest : public InProcessBrowserTest { | 70 class ITunesDataProviderTest : public InProcessBrowserTest { |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 base::Closure quit_closure_; | 209 base::Closure quit_closure_; |
| 211 | 210 |
| 212 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderTest); | 211 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderTest); |
| 213 }; | 212 }; |
| 214 | 213 |
| 215 class ITunesDataProviderBasicTest : public ITunesDataProviderTest { | 214 class ITunesDataProviderBasicTest : public ITunesDataProviderTest { |
| 216 public: | 215 public: |
| 217 ITunesDataProviderBasicTest() {} | 216 ITunesDataProviderBasicTest() {} |
| 218 virtual ~ITunesDataProviderBasicTest() {} | 217 virtual ~ITunesDataProviderBasicTest() {} |
| 219 | 218 |
| 220 virtual std::vector<LibraryEntry> SetUpLibrary() override { | 219 std::vector<LibraryEntry> SetUpLibrary() override { |
| 221 base::FilePath track = library_dir().AppendASCII("Track.mp3"); | 220 base::FilePath track = library_dir().AppendASCII("Track.mp3"); |
| 222 std::vector<LibraryEntry> entries; | 221 std::vector<LibraryEntry> entries; |
| 223 entries.push_back(LibraryEntry("Artist", "Album", track)); | 222 entries.push_back(LibraryEntry("Artist", "Album", track)); |
| 224 return entries; | 223 return entries; |
| 225 } | 224 } |
| 226 | 225 |
| 227 virtual void StartTest(bool parse_success) override { | 226 void StartTest(bool parse_success) override { |
| 228 EXPECT_TRUE(parse_success); | 227 EXPECT_TRUE(parse_success); |
| 229 | 228 |
| 230 // KnownArtist | 229 // KnownArtist |
| 231 EXPECT_TRUE(data_provider()->KnownArtist("Artist")); | 230 EXPECT_TRUE(data_provider()->KnownArtist("Artist")); |
| 232 EXPECT_FALSE(data_provider()->KnownArtist("Artist2")); | 231 EXPECT_FALSE(data_provider()->KnownArtist("Artist2")); |
| 233 | 232 |
| 234 // KnownAlbum | 233 // KnownAlbum |
| 235 EXPECT_TRUE(data_provider()->KnownAlbum("Artist", "Album")); | 234 EXPECT_TRUE(data_provider()->KnownAlbum("Artist", "Album")); |
| 236 EXPECT_FALSE(data_provider()->KnownAlbum("Artist", "Album2")); | 235 EXPECT_FALSE(data_provider()->KnownAlbum("Artist", "Album2")); |
| 237 EXPECT_FALSE(data_provider()->KnownAlbum("Artist2", "Album")); | 236 EXPECT_FALSE(data_provider()->KnownAlbum("Artist2", "Album")); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 | 277 |
| 279 private: | 278 private: |
| 280 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderBasicTest); | 279 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderBasicTest); |
| 281 }; | 280 }; |
| 282 | 281 |
| 283 class ITunesDataProviderRefreshTest : public ITunesDataProviderTest { | 282 class ITunesDataProviderRefreshTest : public ITunesDataProviderTest { |
| 284 public: | 283 public: |
| 285 ITunesDataProviderRefreshTest() {} | 284 ITunesDataProviderRefreshTest() {} |
| 286 virtual ~ITunesDataProviderRefreshTest() {} | 285 virtual ~ITunesDataProviderRefreshTest() {} |
| 287 | 286 |
| 288 virtual std::vector<LibraryEntry> SetUpLibrary() override { | 287 std::vector<LibraryEntry> SetUpLibrary() override { |
| 289 base::FilePath track = library_dir().AppendASCII("Track.mp3"); | 288 base::FilePath track = library_dir().AppendASCII("Track.mp3"); |
| 290 std::vector<LibraryEntry> entries; | 289 std::vector<LibraryEntry> entries; |
| 291 entries.push_back(LibraryEntry("Artist", "Album", track)); | 290 entries.push_back(LibraryEntry("Artist", "Album", track)); |
| 292 return entries; | 291 return entries; |
| 293 } | 292 } |
| 294 | 293 |
| 295 virtual void StartTest(bool parse_success) override { | 294 void StartTest(bool parse_success) override { |
| 296 EXPECT_TRUE(parse_success); | 295 EXPECT_TRUE(parse_success); |
| 297 | 296 |
| 298 // Initial contents. | 297 // Initial contents. |
| 299 ExpectTrackLocation("Artist", "Album", "Track.mp3"); | 298 ExpectTrackLocation("Artist", "Album", "Track.mp3"); |
| 300 ExpectNoTrack("Artist2", "Album2", "Track2.mp3"); | 299 ExpectNoTrack("Artist2", "Album2", "Track2.mp3"); |
| 301 | 300 |
| 302 // New file. | 301 // New file. |
| 303 base::FilePath track2 = library_dir().AppendASCII("Track2.mp3"); | 302 base::FilePath track2 = library_dir().AppendASCII("Track2.mp3"); |
| 304 std::vector<LibraryEntry> entries; | 303 std::vector<LibraryEntry> entries; |
| 305 entries.push_back(LibraryEntry("Artist2", "Album2", track2)); | 304 entries.push_back(LibraryEntry("Artist2", "Album2", track2)); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 328 | 327 |
| 329 private: | 328 private: |
| 330 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderRefreshTest); | 329 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderRefreshTest); |
| 331 }; | 330 }; |
| 332 | 331 |
| 333 class ITunesDataProviderInvalidTest : public ITunesDataProviderTest { | 332 class ITunesDataProviderInvalidTest : public ITunesDataProviderTest { |
| 334 public: | 333 public: |
| 335 ITunesDataProviderInvalidTest() {} | 334 ITunesDataProviderInvalidTest() {} |
| 336 virtual ~ITunesDataProviderInvalidTest() {} | 335 virtual ~ITunesDataProviderInvalidTest() {} |
| 337 | 336 |
| 338 virtual std::vector<LibraryEntry> SetUpLibrary() override { | 337 std::vector<LibraryEntry> SetUpLibrary() override { |
| 339 base::FilePath track = library_dir().AppendASCII("Track.mp3"); | 338 base::FilePath track = library_dir().AppendASCII("Track.mp3"); |
| 340 std::vector<LibraryEntry> entries; | 339 std::vector<LibraryEntry> entries; |
| 341 entries.push_back(LibraryEntry("Artist", "Album", track)); | 340 entries.push_back(LibraryEntry("Artist", "Album", track)); |
| 342 return entries; | 341 return entries; |
| 343 } | 342 } |
| 344 | 343 |
| 345 virtual void StartTest(bool parse_success) override { | 344 void StartTest(bool parse_success) override { |
| 346 EXPECT_TRUE(parse_success); | 345 EXPECT_TRUE(parse_success); |
| 347 | 346 |
| 348 SetLibraryChangeCallback( | 347 SetLibraryChangeCallback( |
| 349 base::Bind(&ITunesDataProvider::RefreshData, | 348 base::Bind(&ITunesDataProvider::RefreshData, |
| 350 base::Unretained(data_provider()), | 349 base::Unretained(data_provider()), |
| 351 base::Bind(&ITunesDataProviderInvalidTest::CheckInvalid, | 350 base::Bind(&ITunesDataProviderInvalidTest::CheckInvalid, |
| 352 base::Unretained(this)))); | 351 base::Unretained(this)))); |
| 353 ASSERT_EQ(1L, base::WriteFile(XmlFile(), " ", 1)); | 352 ASSERT_EQ(1L, base::WriteFile(XmlFile(), " ", 1)); |
| 354 } | 353 } |
| 355 | 354 |
| 356 void CheckInvalid(bool is_valid) { | 355 void CheckInvalid(bool is_valid) { |
| 357 EXPECT_FALSE(is_valid); | 356 EXPECT_FALSE(is_valid); |
| 358 TestDone(); | 357 TestDone(); |
| 359 } | 358 } |
| 360 | 359 |
| 361 private: | 360 private: |
| 362 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderInvalidTest); | 361 DISALLOW_COPY_AND_ASSIGN(ITunesDataProviderInvalidTest); |
| 363 }; | 362 }; |
| 364 | 363 |
| 365 class ITunesDataProviderUniqueNameTest : public ITunesDataProviderTest { | 364 class ITunesDataProviderUniqueNameTest : public ITunesDataProviderTest { |
| 366 public: | 365 public: |
| 367 ITunesDataProviderUniqueNameTest() {} | 366 ITunesDataProviderUniqueNameTest() {} |
| 368 virtual ~ITunesDataProviderUniqueNameTest() {} | 367 virtual ~ITunesDataProviderUniqueNameTest() {} |
| 369 | 368 |
| 370 virtual std::vector<LibraryEntry> SetUpLibrary() override { | 369 std::vector<LibraryEntry> SetUpLibrary() override { |
| 371 base::FilePath track = library_dir().AppendASCII("Track.mp3"); | 370 base::FilePath track = library_dir().AppendASCII("Track.mp3"); |
| 372 std::vector<LibraryEntry> entries; | 371 std::vector<LibraryEntry> entries; |
| 373 // Dupe album names should get uniquified with the track id, which in the | 372 // Dupe album names should get uniquified with the track id, which in the |
| 374 // test framework is the vector index. | 373 // test framework is the vector index. |
| 375 entries.push_back(LibraryEntry("Artist", "Album", track)); | 374 entries.push_back(LibraryEntry("Artist", "Album", track)); |
| 376 entries.push_back(LibraryEntry("Artist", "Album", track)); | 375 entries.push_back(LibraryEntry("Artist", "Album", track)); |
| 377 entries.push_back(LibraryEntry("Artist", "Album2", track)); | 376 entries.push_back(LibraryEntry("Artist", "Album2", track)); |
| 378 return entries; | 377 return entries; |
| 379 } | 378 } |
| 380 | 379 |
| 381 virtual void StartTest(bool parse_success) override { | 380 void StartTest(bool parse_success) override { |
| 382 EXPECT_TRUE(parse_success); | 381 EXPECT_TRUE(parse_success); |
| 383 | 382 |
| 384 base::FilePath track = | 383 base::FilePath track = |
| 385 library_dir().AppendASCII("Track.mp3").NormalizePathSeparators(); | 384 library_dir().AppendASCII("Track.mp3").NormalizePathSeparators(); |
| 386 EXPECT_EQ(track.value(), | 385 EXPECT_EQ(track.value(), |
| 387 data_provider()->GetTrackLocation( | 386 data_provider()->GetTrackLocation( |
| 388 "Artist", "Album", | 387 "Artist", "Album", |
| 389 "Track (1).mp3").NormalizePathSeparators().value()); | 388 "Track (1).mp3").NormalizePathSeparators().value()); |
| 390 EXPECT_EQ(track.value(), | 389 EXPECT_EQ(track.value(), |
| 391 data_provider()->GetTrackLocation( | 390 data_provider()->GetTrackLocation( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 404 }; | 403 }; |
| 405 | 404 |
| 406 class ITunesDataProviderEscapeTest : public ITunesDataProviderTest { | 405 class ITunesDataProviderEscapeTest : public ITunesDataProviderTest { |
| 407 // Albums and tracks that aren't the same, but become the same after | 406 // Albums and tracks that aren't the same, but become the same after |
| 408 // replacing bad characters are not handled properly, but that case should | 407 // replacing bad characters are not handled properly, but that case should |
| 409 // never happen in practice. | 408 // never happen in practice. |
| 410 public: | 409 public: |
| 411 ITunesDataProviderEscapeTest() {} | 410 ITunesDataProviderEscapeTest() {} |
| 412 virtual ~ITunesDataProviderEscapeTest() {} | 411 virtual ~ITunesDataProviderEscapeTest() {} |
| 413 | 412 |
| 414 virtual std::vector<LibraryEntry> SetUpLibrary() override { | 413 std::vector<LibraryEntry> SetUpLibrary() override { |
| 415 base::FilePath track = library_dir().AppendASCII("Track:1.mp3"); | 414 base::FilePath track = library_dir().AppendASCII("Track:1.mp3"); |
| 416 std::vector<LibraryEntry> entries; | 415 std::vector<LibraryEntry> entries; |
| 417 entries.push_back(LibraryEntry("Artist:/name", "Album:name/", track)); | 416 entries.push_back(LibraryEntry("Artist:/name", "Album:name/", track)); |
| 418 entries.push_back(LibraryEntry("Artist/name", "Album:name", track)); | 417 entries.push_back(LibraryEntry("Artist/name", "Album:name", track)); |
| 419 entries.push_back(LibraryEntry("Artist/name", "Album:name", track)); | 418 entries.push_back(LibraryEntry("Artist/name", "Album:name", track)); |
| 420 entries.push_back(LibraryEntry(kDeNormalizedName, kNormalizedName, track)); | 419 entries.push_back(LibraryEntry(kDeNormalizedName, kNormalizedName, track)); |
| 421 return entries; | 420 return entries; |
| 422 } | 421 } |
| 423 | 422 |
| 424 virtual void StartTest(bool parse_success) override { | 423 void StartTest(bool parse_success) override { |
| 425 EXPECT_TRUE(parse_success); | 424 EXPECT_TRUE(parse_success); |
| 426 | 425 |
| 427 base::FilePath track = | 426 base::FilePath track = |
| 428 library_dir().AppendASCII("Track:1.mp3").NormalizePathSeparators(); | 427 library_dir().AppendASCII("Track:1.mp3").NormalizePathSeparators(); |
| 429 EXPECT_EQ(track.value(), | 428 EXPECT_EQ(track.value(), |
| 430 data_provider()->GetTrackLocation( | 429 data_provider()->GetTrackLocation( |
| 431 "Artist__name", "Album_name_", | 430 "Artist__name", "Album_name_", |
| 432 "Track_1.mp3").NormalizePathSeparators().value()); | 431 "Track_1.mp3").NormalizePathSeparators().value()); |
| 433 EXPECT_EQ(track.value(), | 432 EXPECT_EQ(track.value(), |
| 434 data_provider()->GetTrackLocation( | 433 data_provider()->GetTrackLocation( |
| (...skipping 29 matching lines...) Expand all Loading... |
| 464 | 463 |
| 465 IN_PROC_BROWSER_TEST_F(ITunesDataProviderUniqueNameTest, UniqueNameTest) { | 464 IN_PROC_BROWSER_TEST_F(ITunesDataProviderUniqueNameTest, UniqueNameTest) { |
| 466 RunTest(); | 465 RunTest(); |
| 467 } | 466 } |
| 468 | 467 |
| 469 IN_PROC_BROWSER_TEST_F(ITunesDataProviderEscapeTest, EscapeTest) { | 468 IN_PROC_BROWSER_TEST_F(ITunesDataProviderEscapeTest, EscapeTest) { |
| 470 RunTest(); | 469 RunTest(); |
| 471 } | 470 } |
| 472 | 471 |
| 473 } // namespace itunes | 472 } // namespace itunes |
| OLD | NEW |