Example #1
0
void DupeTest::initTestCase()
{
    QVERIFY(Control::start());
    QTest::qWait(1000);   // give the MDA time to start

    qRegisterMetaType<Akonadi::Item>();
    qRegisterMetaType<Akonadi::Collection>();

    // we need a default Akonadi transport
    int tid = TransportManager::self()->defaultTransportId();
    Transport *t = TransportManager::self()->transportById(tid);
    QVERIFY(t);
    QCOMPARE(t->type(), int(Transport::EnumType::Akonadi));

    // set the sink collection
    const QString rid = t->host();
    const AgentInstance agent = AgentManager::self()->instance(rid);
    QVERIFY(agent.isValid());
    CollectionPathResolver *resolver = new CollectionPathResolver(QStringLiteral("sink"), this);
    QVERIFY(resolver->exec());
    sink = Collection(resolver->collection());
    QVERIFY(sink.isValid());
    QDBusInterface conf(QLatin1String("org.freedesktop.Akonadi.Resource.") + rid,
                        QStringLiteral("/Settings"), QStringLiteral("org.kde.Akonadi.MailTransportDummy.Settings"));
    QVERIFY(conf.isValid());
    QDBusReply<void> reply = conf.call(QStringLiteral("setSink"), sink.id());
    QVERIFY(reply.isValid());
    agent.reconfigure();

    // set up monitor
    monitor = new Monitor(this);
    monitor->setCollectionMonitored(sink);
    monitor->itemFetchScope().fetchFullPayload();
}
AgentInstance DispatcherInterface::dispatcherInstance() const
{
  AgentInstance a =
    AgentManager::self()->instance( QLatin1String( "akonadi_maildispatcher_agent" ) );
  if ( !a.isValid() ) {
    kWarning() << "Could not get MDA instance.";
  }
  return a;
}
Example #3
0
    void testResourceManagement()
    {
      qRegisterMetaType<Akonadi::AgentInstance>();
      QSignalSpy spyAddInstance( AgentManager::self(), SIGNAL(instanceAdded(Akonadi::AgentInstance)) );
      QVERIFY( spyAddInstance.isValid() );
      QSignalSpy spyRemoveInstance( AgentManager::self(), SIGNAL(instanceRemoved(Akonadi::AgentInstance)) );
      QVERIFY( spyRemoveInstance.isValid() );

      AgentType type = AgentManager::self()->type( "akonadi_knut_resource" );
      QVERIFY( type.isValid() );

      QCOMPARE( type.capabilities(), QStringList( "Resource" ) );

      AgentInstanceCreateJob *job = new AgentInstanceCreateJob( type );
      AKVERIFYEXEC( job );

      AgentInstance instance = job->instance();
      QVERIFY( instance.isValid() );

      QCOMPARE( spyAddInstance.count(), 1 );
      QCOMPARE( spyAddInstance.first().at( 0 ).value<AgentInstance>(), instance );
      QVERIFY( AgentManager::self()->instance( instance.identifier() ).isValid() );

      job = new AgentInstanceCreateJob( type );
      AKVERIFYEXEC( job );
      AgentInstance instance2 = job->instance();
      QVERIFY( !( instance == instance2 ) );
      QCOMPARE( spyAddInstance.count(), 2 );

      AgentManager::self()->removeInstance( instance );
      AgentManager::self()->removeInstance( instance2 );
      QTest::qWait( 2000 );
      QCOMPARE( spyRemoveInstance.count(), 2 );
      QVERIFY( !AgentManager::self()->instances().contains( instance ) );
      QVERIFY( !AgentManager::self()->instances().contains( instance2 ) );
    }