diff --git a/akonadi/tests/itemcopytest.cpp b/akonadi/tests/itemcopytest.cpp index 5a7956d85..385c71389 100644 --- a/akonadi/tests/itemcopytest.cpp +++ b/akonadi/tests/itemcopytest.cpp @@ -1,89 +1,100 @@ /* Copyright (c) 2008 Volker Krause This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include #include #include #include #include #include #include "test_utils.h" #include using namespace Akonadi; class ItemCopyTest : public QObject { Q_OBJECT private slots: void initTestCase() { Control::start(); // switch target resources offline to reduce interference from them foreach ( Akonadi::AgentInstance agent, Akonadi::AgentManager::self()->instances() ) { if ( agent.identifier() == "akonadi_knut_resource_2" ) agent.setIsOnline( false ); } } void testCopy() { const Collection target( collectionIdFromPath( "res3" ) ); QVERIFY( target.isValid() ); ItemCopyJob *copy = new ItemCopyJob( Item( 1 ), target ); QVERIFY( copy->exec() ); + Item source( 1 ); + ItemFetchJob *sourceFetch = new ItemFetchJob( source ); + QVERIFY( sourceFetch->exec() ); + ItemFetchJob *fetch = new ItemFetchJob( target ); fetch->fetchScope().fetchFullPayload(); fetch->fetchScope().fetchAllAttributes(); fetch->fetchScope().setCacheOnly( true ); QVERIFY( fetch->exec() ); QCOMPARE( fetch->items().count(), 1 ); Item item = fetch->items().first(); QVERIFY( item.hasPayload() ); + QEXPECT_FAIL( "", "For some reason the size is not set correctly after " + "the fetch", Continue); + QVERIFY( source.size() > 0 ); + QEXPECT_FAIL( "", "For some reason the size is not set correctly after " + "the fetch", Continue); + QVERIFY( item.size() > 0 ); + QCOMPARE( item.size(), source.size() ); QCOMPARE( item.attributes().count(), 1 ); QVERIFY( item.remoteId().isEmpty() ); } void testIlleagalCopy() { // empty item list ItemCopyJob *copy = new ItemCopyJob( Item::List(), Collection::root() ); QVERIFY( !copy->exec() ); // non-existing target copy = new ItemCopyJob( Item( 1 ), Collection( INT_MAX ) ); QVERIFY( !copy->exec() ); // non-existing source copy = new ItemCopyJob( Item( INT_MAX ), Collection::root() ); QVERIFY( !copy->exec() ); } }; QTEST_AKONADIMAIN( ItemCopyTest, NoGUI ) #include "itemcopytest.moc"