void TestTaskManager::fail_registerMachine_command_not_found() { TaskManager *manager = new TaskManager(); QSignalSpy sig_reg(manager, SIGNAL(registerMachineStatus(TaskStatus, QString))); QVariantList response; TaskStatus status; QString reason; // Fail to register with a non-existent tarsnap dir. manager->registerMachine("fake-user", "fake-password", "fake-machine", "fake.key", "/fake/dir", "/tmp/gui-test-tarsnap-cache"); QTest::qWait(TASK_CMDLINE_WAIT_MS); // Get failure message. QVERIFY(sig_reg.count() == 1); response = sig_reg.takeFirst(); status = response.at(0).value<TaskStatus>(); reason = response.at(1).toString(); QVERIFY(status == TaskStatus::Failed); QVERIFY(reason == "Could not find the command-line program"); delete manager; }
void TestTaskManager::fail_registerMachine_empty_key() { TARSNAP_CLI_OR_SKIP; TaskManager *manager = new TaskManager(); QSignalSpy sig_reg(manager, SIGNAL(registerMachineStatus(TaskStatus, QString))); QVariantList response; TaskStatus status; QString reason; // Fail to register with a key that doesn't support --fsck-prune. manager->registerMachine("fake-user", "fake-password", "fake-machine", "empty.key", tarsnapPath, "/tmp/gui-test-tarsnap-cache"); QTest::qWait(TASK_CMDLINE_WAIT_MS); // Get failure message. QVERIFY(sig_reg.count() == 1); response = sig_reg.takeFirst(); status = response.at(0).value<TaskStatus>(); reason = response.at(1).toString(); QVERIFY(status == TaskStatus::Failed); QVERIFY(reason.contains("tarsnap: Key file has unreasonable size")); delete manager; }
int CoreApplication::initialize() { parseArgs(); QSettings settings; if(!settings.value("application/wizardDone", false).toBool()) { // Show the first time setup dialog SetupDialog wizard; connect(&wizard, SIGNAL(registerMachine(QString,QString,QString,QString,QString,QString)) , &_taskManager, SLOT(registerMachine(QString,QString,QString,QString,QString,QString))); connect(&_taskManager, SIGNAL(registerMachineStatus(TaskStatus,QString)) , &wizard ,SLOT(registerMachineStatus(TaskStatus, QString))); connect(&_taskManager, SIGNAL(idle(bool)), &wizard, SLOT(updateLoadingAnimation(bool)), Qt::QueuedConnection); if(QDialog::Rejected == wizard.exec()) { quit(); // if we're running in the loop return FAILURE; // if called from main } }