diff --git a/akonadi/tests/itemcopytest.cpp b/akonadi/tests/itemcopytest.cpp index 2ed5052f0..32005a39b 100644 --- a/akonadi/tests/itemcopytest.cpp +++ b/akonadi/tests/itemcopytest.cpp @@ -1,75 +1,91 @@ /* 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( 8 ); - Item item( 1 ); + const Collection target( collectionIdFromPath( "res3" ) ); + QVERIFY( target.isValid() ); - ItemCopyJob *copy = new ItemCopyJob( item, target ); + ItemCopyJob *copy = new ItemCopyJob( Item( 1 ), target ); QVERIFY( copy->exec() ); + QTest::qWait( 1000 ); + 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() ); + 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"