MCPcopy Create free account
hub / github.com/KDE/kdevelop / testReplace

Method testReplace

plugins/grepview/tests/test_findreplace.cpp:406–458  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

404
405
406void FindReplaceTest::testReplace()
407{
408 QFETCH(FileList, subject);
409 QFETCH(QString, searchPattern);
410 QFETCH(QString, searchTemplate);
411 QFETCH(QString, replace);
412 QFETCH(QString, replaceTemplate);
413 QFETCH(FileList, result);
414
415 QTemporaryDir tempDir;
416 QDir dir(tempDir.path()); // we need some convenience functions that are not in QTemporaryDir
417
418 for (const File& fileData : std::as_const(subject)) {
419 QFile file(dir.filePath(fileData.first));
420 QVERIFY(file.open(QIODevice::WriteOnly));
421 QVERIFY(file.write(fileData.second.toUtf8()) != -1);
422 file.close();
423 }
424
425 auto *job = new GrepJob(this);
426 auto *model = new GrepOutputModel(job);
427 GrepJobSettings settings;
428
429 job->setOutputModel(model);
430 job->setDirectoryChoice(QList<QUrl>() << QUrl::fromLocalFile(dir.path()));
431
432 settings.projectFilesOnly = false;
433 settings.caseSensitive = true;
434 settings.regexp = true;
435 settings.depth = -1; // fully recursive
436 settings.pattern = searchPattern;
437 settings.searchTemplate = searchTemplate;
438 settings.replacementTemplate = replaceTemplate;
439 settings.files = QStringLiteral("*");
440 settings.exclude = QString();
441
442 job->setSettings(settings);
443
444 QVERIFY(job->exec());
445
446 QVERIFY(model->hasResults());
447 model->setReplacement(replace);
448 model->makeItemsCheckable(true);
449 model->doReplacements();
450
451 for (const File& fileData : std::as_const(result)) {
452 QFile file(dir.filePath(fileData.first));
453 QVERIFY(file.open(QIODevice::ReadOnly));
454 QCOMPARE(QString(file.readAll()), fileData.second);
455 file.close();
456 }
457 tempDir.remove();
458}
459
460void FindReplaceTest::addTestProjectFromFileSystem(const QString& path)
461{

Callers

nothing calls this directly

Calls 15

setOutputModelMethod · 0.80
setDirectoryChoiceMethod · 0.80
setSettingsMethod · 0.80
execMethod · 0.80
hasResultsMethod · 0.80
setReplacementMethod · 0.80
makeItemsCheckableMethod · 0.80
doReplacementsMethod · 0.80
QStringClass · 0.50
pathMethod · 0.45
filePathMethod · 0.45
openMethod · 0.45

Tested by

no test coverage detected