[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bamarok=5D_tests/core-impl/collections/db/sql=3A_Imp?=
From: Ralf Engels <ralf-engels () gmx ! de>
Date: 2011-01-31 23:21:04
Message-ID: 20110131232104.43DCFA60CD () git ! kde ! org
[Download RAW message or body]
Git commit a9e9b83220418fcdf5aa3df27a1615d58672f63d by Ralf Engels.
Pushed by rengels into branch 'master'.
Improve ScanManager auto tests
M +53 -16 tests/core-impl/collections/db/sql/TestSqlScanManager.cpp
M +6 -0 tests/core-impl/collections/db/sql/TestSqlScanManager.h
http://commits.kde.org/amarok/a9e9b83220418fcdf5aa3df27a1615d58672f63d
diff --git a/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp \
b/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp index 5e1c5f8..ebba86f \
100644
--- a/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp
+++ b/tests/core-impl/collections/db/sql/TestSqlScanManager.cpp
@@ -221,6 +221,39 @@ TestSqlScanManager::testDuplicateUid()
}
void
+TestSqlScanManager::testLongUid()
+{
+ Meta::FieldHash values;
+
+ // create two tracks with different very long
+ values.clear();
+ values.insert( Meta::valUniqueId, \
QVariant("c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9 \
523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f5 \
0279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96 \
c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f4492 \
8bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96bbbbbbbbbbbbbbc6c29f50279ab9523a0f44928bc1e96b1") \
); + values.insert( Meta::valUrl, QVariant("track1.mp3") );
+ values.insert( Meta::valTitle, QVariant("Track 1") );
+ createTrack( values );
+
+ values.clear();
+ values.insert( Meta::valUniqueId, \
QVariant("c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9 \
523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f5 \
0279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96 \
c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f4492 \
8bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96c6c29f50279ab9523a0f44928bc1e96bbbbbbbbbbbbbbc6c29f50279ab9523a0f44928bc1e96b2") \
); + values.insert( Meta::valUrl, QVariant("track2.mp3") );
+ values.insert( Meta::valTitle, QVariant("Track 2") );
+ createTrack( values );
+
+ m_scanManager->requestFullScan();
+ waitScannerFinished();
+
+ // -- check the commit (the database needs to have been updated correctly)
+ m_collection->registry()->emptyCache();
+
+ Meta::AlbumPtr album;
+ album = m_collection->registry()->getAlbum( QString(), QString() );
+
+ QCOMPARE( album->tracks().count(), 1 );
+ QVERIFY( album->tracks().first()->name() == "Track 1" ||
+ album->tracks().first()->name() == "Track 2" );
+}
+
+
+void
TestSqlScanManager::testCompilation()
{
createAlbum();
@@ -298,8 +331,10 @@ TestSqlScanManager::testCompilation()
QCOMPARE( album->tracks().count(), 1 );
QVERIFY( !album->isCompilation() );
- album = m_collection->registry()->getAlbum( "Once", "Glen Hansard & Markéta \
Irglová" );
- QCOMPARE( album->albumArtist()->name(), QString( "Glen Hansard & Markéta \
Irglová" ) ); + // this album is a little tricky because it has some nasty \
special characters in it. + Meta::TrackPtr track = \
m_collection->registry()->getTrackFromUid( m_collection->uidUrlProtocol() + "://" + \
"0969ea61-2844-4e12-8cfc-ac95207bd525" ); + QVERIFY( track );
+ album = track->album();
QCOMPARE( album->tracks().count(), 13 );
QVERIFY( !album->isCompilation() );
}
@@ -397,7 +432,7 @@ TestSqlScanManager::testRemoveDir()
album = m_collection->registry()->getAlbum( "Top Gun", QString() );
foreach( Meta::TrackPtr t, album->tracks() )
QVERIFY( QFile::remove( t->playableUrl().path() ) );
- QVERIFY( QDir( m_tmpCollectionDir->name() ).rmdir( QFileInfo( \
album->tracks().first()->playableUrl().path() ).path() ) ); + QVERIFY( QDir( \
m_tmpCollectionDir->name() ).rmpath( QFileInfo( \
album->tracks().first()->playableUrl().path() ).path() ) );
m_scanManager->requestFullScan();
waitScannerFinished();
@@ -413,11 +448,13 @@ TestSqlScanManager::testRemoveDir()
// -- remove the second album
+ // this time it's a directory inside a directory
album = m_collection->registry()->getAlbum( "Thriller", "Michael Jackson" );
QCOMPARE( album->tracks().count(), 9 );
foreach( Meta::TrackPtr t, album->tracks() )
QVERIFY( QFile::remove( t->playableUrl().path() ) );
- QVERIFY( QDir( m_tmpCollectionDir->name() ).rmdir( QFileInfo( \
album->tracks().first()->playableUrl().path() ).path() ) ); + QVERIFY( QDir( \
m_tmpCollectionDir->name() ).rmpath( QFileInfo( \
album->tracks().first()->playableUrl().path() ).path() ) ); + // QVERIFY( QDir( \
m_tmpCollectionDir->name() ).rmpath( "Pop" ) );
m_scanManager->requestIncrementalScan();
waitScannerFinished();
@@ -466,8 +503,8 @@ TestSqlScanManager::testUidChangeMoveDirectoryIncrementalScan()
// move album directory
const KUrl oldUrl = tracks.first()->playableUrl();
- const QString base = m_tmpCollectionDir->name() + "Thriller";
- QVERIFY( QFile::rename( base, base + "Thriller (Moved)" ) );
+ const QString base = m_tmpCollectionDir->name() + "Pop";
+ QVERIFY( QFile::rename( base, base + "Albums" ) );
// do an incremental scan
m_scanManager->requestIncrementalScan();
@@ -623,7 +660,7 @@ TestSqlScanManager::testAlbumImage()
QString imageSourcePath = QDir::toNativeSeparators( QString( AMAROK_TEST_DIR ) + \
"/data/playlists/no-playlist.png" ); QVERIFY( QFile::exists( imageSourcePath ) );
QString targetPath;
- targetPath = m_tmpCollectionDir->name() + "Thriller/cover.png";
+ targetPath = m_tmpCollectionDir->name() + "Pop/Thriller/cover.png";
QVERIFY( QFile::copy( m_sourcePath, targetPath ) );
// put an image into the compilation directory
@@ -1004,7 +1041,7 @@ TestSqlScanManager::createAlbum()
Meta::FieldHash values;
values.insert( Meta::valUniqueId, QVariant("1dc7022c52a3e4c51b46577da9b3c8ff") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 01 - Michael Jackson \
- Track01.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 01 - Michael Jackson - Track01.mp3") );
values.insert( Meta::valTitle, QVariant("Wanna Be Startin' Somethin'") );
values.insert( Meta::valArtist, QVariant("Michael Jackson") );
values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1014,7 +1051,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("1dc708934a3e4c51b46577da9b3ab11") );
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 02 - Michael Jackson \
- Track02.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 02 - Michael Jackson - Track02.mp3") ); values.insert( Meta::valTitle, \
QVariant("Baby Be Mine") ); values.insert( Meta::valArtist, QVariant("Michael \
Jackson") ); values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1024,7 +1061,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("15a6b1bf79747fdc8e9c6b6f06203017") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 03 - Michael Jackson \
- Track03.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 03 - Michael Jackson - Track03.mp3") ); values.insert( Meta::valTitle, \
QVariant("The Girl Is Mine") ); values.insert( Meta::valArtist, QVariant("Michael \
Jackson") ); values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1034,7 +1071,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("4aba4c8b1d1893c03c112cc3c01221e9") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 04 - Michael Jackson \
- Track04.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 04 - Michael Jackson - Track04.mp3") ); values.insert( Meta::valTitle, \
QVariant("Thriller") ); values.insert( Meta::valArtist, QVariant("Michael Jackson") \
); values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1044,7 +1081,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("cb44d2a3d8053829b04672723bf0bd6e") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 05 - Michael Jackson \
- Track05.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 05 - Michael Jackson - Track05.mp3") ); values.insert( Meta::valTitle, \
QVariant("Beat It") ); values.insert( Meta::valArtist, QVariant("Michael Jackson") \
); values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1054,7 +1091,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("eba1858eeeb3c6d97fe3385200114d86") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 06 - Michael Jackson \
- Track06.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 06 - Michael Jackson - Track06.mp3") ); values.insert( Meta::valTitle, \
QVariant("Billy Jean") ); values.insert( Meta::valArtist, QVariant("Michael \
Jackson") ); values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1064,7 +1101,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("4623850290998486b0f7b39a2719904e") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 07 - Michael Jackson \
- Track07.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 07 - Michael Jackson - Track07.mp3") ); values.insert( Meta::valTitle, \
QVariant("Human Nature") ); values.insert( Meta::valArtist, QVariant("Michael \
Jackson") ); values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1074,7 +1111,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("6d9a7de13af1e16bb13a6208e44b046d") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 08 - Michael Jackson \
- Track08.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 08 - Michael Jackson - Track08.mp3") );
values.insert( Meta::valTitle, QVariant("P.Y.T. (Pretty Young Thing)") );
values.insert( Meta::valArtist, QVariant("Michael Jackson") );
values.insert( Meta::valAlbum, QVariant("Thriller") );
@@ -1084,7 +1121,7 @@ TestSqlScanManager::createAlbum()
values.clear();
values.insert( Meta::valUniqueId, QVariant("91cf9a7c0d255399f9f6babfacae432b") \
);
- values.insert( Meta::valUrl, QVariant("Thriller/Thriller - 09 - Michael Jackson \
- Track09.mp3") ); + values.insert( Meta::valUrl, QVariant("Pop/Thriller/Thriller \
- 09 - Michael Jackson - Track09.mp3") ); values.insert( Meta::valTitle, \
QVariant("The Lady In My Life") ); values.insert( Meta::valArtist, QVariant("Michael \
Jackson") ); values.insert( Meta::valAlbum, QVariant("Thriller") );
diff --git a/tests/core-impl/collections/db/sql/TestSqlScanManager.h \
b/tests/core-impl/collections/db/sql/TestSqlScanManager.h index 057e6a5..9d86416 \
100644
--- a/tests/core-impl/collections/db/sql/TestSqlScanManager.h
+++ b/tests/core-impl/collections/db/sql/TestSqlScanManager.h
@@ -64,6 +64,12 @@ private slots:
void testDuplicateUid();
/**
+ * Check that very long uids don't produce wrong sql queries
+ */
+ void testLongUid();
+
+
+ /**
* Check that detecting compilations works
* Test also compilation/no compilation tags
*/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic