forked from qt-creator/qt-creator
Squish: Move some helper functions
Allow to reuse them. Change-Id: Ia13f7f6c7a40066fd7ae46389adc7c9228161a4a Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "opensquishsuitesdialog.h"
|
||||
#include "squishconstants.h"
|
||||
#include "squishplugin.h"
|
||||
#include "squishsettings.h"
|
||||
#include "squishtesttreemodel.h"
|
||||
#include "squishtools.h"
|
||||
|
@@ -86,6 +86,20 @@ SquishSettings::SquishSettings()
|
||||
});
|
||||
}
|
||||
|
||||
Utils::FilePath SquishSettings::scriptsPath(Language language) const
|
||||
{
|
||||
Utils::FilePath scripts = squishPath.filePath().pathAppended("scriptmodules");
|
||||
switch (language) {
|
||||
case Language::Python: scripts = scripts.pathAppended("python"); break;
|
||||
case Language::Perl: scripts = scripts.pathAppended("perl"); break;
|
||||
case Language::JavaScript: scripts = scripts.pathAppended("javascript"); break;
|
||||
case Language::Ruby: scripts = scripts.pathAppended("ruby"); break;
|
||||
case Language::Tcl: scripts = scripts.pathAppended("tcl"); break;
|
||||
}
|
||||
|
||||
return scripts.isReadableDir() ? scripts : Utils::FilePath();
|
||||
}
|
||||
|
||||
SquishSettingsPage::SquishSettingsPage(SquishSettings *settings)
|
||||
{
|
||||
setId("A.Squish.General");
|
||||
|
@@ -17,6 +17,8 @@ QT_END_NAMESPACE
|
||||
namespace Squish {
|
||||
namespace Internal {
|
||||
|
||||
enum class Language;
|
||||
|
||||
class SquishServerSettings : public Utils::AspectContainer
|
||||
{
|
||||
public:
|
||||
@@ -39,6 +41,8 @@ class SquishSettings : public Utils::AspectContainer
|
||||
public:
|
||||
SquishSettings();
|
||||
|
||||
Utils::FilePath scriptsPath(Language language) const;
|
||||
|
||||
Utils::StringAspect squishPath;
|
||||
Utils::StringAspect licensePath;
|
||||
Utils::StringAspect serverHost;
|
||||
|
@@ -161,28 +161,12 @@ void SquishTestTreeItemDelegate::setEditorData(QWidget *editor, const QModelInde
|
||||
static_cast<Utils::FancyLineEdit *>(editor)->setText(index.data().toString());
|
||||
}
|
||||
|
||||
static Utils::FilePath scriptsPath(const Utils::FilePath &squishPath, Language language)
|
||||
{
|
||||
Utils::FilePath scripts = squishPath.pathAppended("scriptmodules");
|
||||
switch (language) {
|
||||
case Language::Python: scripts = scripts.pathAppended("python"); break;
|
||||
case Language::Perl: scripts = scripts.pathAppended("perl"); break;
|
||||
case Language::JavaScript: scripts = scripts.pathAppended("javascript"); break;
|
||||
case Language::Ruby: scripts = scripts.pathAppended("ruby"); break;
|
||||
case Language::Tcl: scripts = scripts.pathAppended("tcl"); break;
|
||||
}
|
||||
|
||||
return scripts;
|
||||
}
|
||||
|
||||
static bool copyScriptTemplates(const SuiteConf &suiteConf,
|
||||
const Utils::FilePath &destination)
|
||||
static bool copyScriptTemplates(const SuiteConf &suiteConf, const Utils::FilePath &destination)
|
||||
{
|
||||
const SquishSettings *s = SquishPlugin::squishSettings();
|
||||
QTC_ASSERT(s, return false);
|
||||
// copy template files
|
||||
Utils::FilePath squishPath = s->squishPath.filePath();
|
||||
Utils::FilePath scripts = scriptsPath(squishPath, suiteConf.language());
|
||||
const Utils::FilePath squishPath = s->squishPath.filePath();
|
||||
|
||||
bool ok = destination.ensureWritableDir();
|
||||
QTC_ASSERT(ok, return false);
|
||||
@@ -191,24 +175,16 @@ static bool copyScriptTemplates(const SuiteConf &suiteConf,
|
||||
const QString extension = suiteConf.scriptExtension();
|
||||
const QString testStr = scripted ? QString("script_som_template") : QString("script_template");
|
||||
|
||||
const Utils::FilePath scripts = s->scriptsPath(suiteConf.language());
|
||||
const Utils::FilePath test = scripts.pathAppended(testStr + extension);
|
||||
const Utils::FilePath testFile = destination.pathAppended("test" + extension);
|
||||
QTC_ASSERT(testFile.exists(), return false);
|
||||
ok = test.copyFile(testFile);
|
||||
QTC_ASSERT(ok, return false);
|
||||
|
||||
if (scripted) {
|
||||
const Utils::FilePath destinationObjectMap = destination.parentDir()
|
||||
.pathAppended("shared/scripts/names" + extension);
|
||||
if (destinationObjectMap.exists())
|
||||
return true;
|
||||
|
||||
const Utils::FilePath objectMap = scripts.pathAppended("objectmap_template" + extension);
|
||||
ok = destinationObjectMap.parentDir().ensureWritableDir();
|
||||
QTC_ASSERT(ok, return false);
|
||||
ok = objectMap.copyFile(destinationObjectMap);
|
||||
QTC_ASSERT(ok, return false);
|
||||
}
|
||||
return true;
|
||||
if (scripted)
|
||||
ok = suiteConf.ensureObjectMapExists();
|
||||
return ok;
|
||||
}
|
||||
|
||||
void SquishTestTreeItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
|
||||
|
@@ -3,6 +3,9 @@
|
||||
|
||||
#include "suiteconf.h"
|
||||
|
||||
#include "squishplugin.h"
|
||||
#include "squishsettings.h"
|
||||
|
||||
#include <coreplugin/documentmanager.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
@@ -284,5 +287,31 @@ SuiteConf SuiteConf::readSuiteConf(const Utils::FilePath &suiteConfPath)
|
||||
return suiteConf;
|
||||
}
|
||||
|
||||
bool SuiteConf::ensureObjectMapExists() const
|
||||
{
|
||||
if (m_objectMapStyle != "script") {
|
||||
const Utils::FilePath objectMap = objectMapPath();
|
||||
bool ok = objectMap.parentDir().ensureWritableDir();
|
||||
ok |= objectMap.ensureExistingFile();
|
||||
return ok;
|
||||
}
|
||||
|
||||
const Utils::FilePath scripts = SquishPlugin::squishSettings()->scriptsPath(language());
|
||||
QTC_ASSERT(scripts.exists(), return false);
|
||||
|
||||
const QString extension = scriptExtension();
|
||||
const Utils::FilePath destinationObjectMap = m_filePath.parentDir()
|
||||
.pathAppended("shared/scripts/names" + extension);
|
||||
if (destinationObjectMap.exists()) // do not overwrite existing
|
||||
return true;
|
||||
|
||||
const Utils::FilePath objectMap = scripts.pathAppended("objectmap_template" + extension);
|
||||
bool ok = destinationObjectMap.parentDir().ensureWritableDir();
|
||||
QTC_ASSERT(ok, return false);
|
||||
ok = objectMap.copyFile(destinationObjectMap);
|
||||
QTC_ASSERT(ok, return false);
|
||||
return ok;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Squish
|
||||
|
@@ -36,6 +36,8 @@ public:
|
||||
void addTestCase(const QString &testCase);
|
||||
|
||||
QStringList usedTestCases() const;
|
||||
|
||||
bool ensureObjectMapExists() const;
|
||||
private:
|
||||
void setLanguage(const QString &language);
|
||||
|
||||
|
Reference in New Issue
Block a user