add configuration for cron

This commit is contained in:
Evgenii Alekseev 2017-05-03 00:27:09 +03:00
parent 1b4d1d6944
commit 6e99e262d4
22 changed files with 180 additions and 48 deletions

View File

@ -21,7 +21,6 @@ arch:
- cd awesome-widgets/build; make - cd awesome-widgets/build; make
- cd awesome-widgets/build; make cppcheck - cd awesome-widgets/build; make cppcheck
- cd awesome-widgets/build; make clangformat && ( [ `git status -s | wc -l` -eq 0 ] || exit 1 ) - cd awesome-widgets/build; make clangformat && ( [ `git status -s | wc -l` -eq 0 ] || exit 1 )
- cd awesome-widgets/build; ./test/awesomewidgets-test-extweather || true
- cd awesome-widgets/build; xvfb-run make test - cd awesome-widgets/build; xvfb-run make test
- sleep 3 - sleep 3

View File

@ -307,15 +307,10 @@ void AbstractExtItem::readConfiguration()
setActive( setActive(
settings.value(QString("X-AW-Active"), QVariant(isActive())).toString() settings.value(QString("X-AW-Active"), QVariant(isActive())).toString()
== QString("true")); == QString("true"));
setInterval(settings.value(QString("X-AW-Interval"), interval()).toInt());
setNumber(settings.value(QString("X-AW-Number"), number()).toInt()); setNumber(settings.value(QString("X-AW-Number"), number()).toInt());
setCron(settings.value(QString("X-AW-Schedule"), cron()).toString());
setSocket(settings.value(QString("X-AW-Socket"), socket()).toString()); setSocket(settings.value(QString("X-AW-Socket"), socket()).toString());
// interval definition
QVariant value = settings.value(QString("X-AW-Interval"), interval());
if (value.type() == QVariant::Int)
setInterval(value.toInt());
else
setCron(value.toString());
settings.endGroup(); settings.endGroup();
} }
@ -344,6 +339,7 @@ void AbstractExtItem::writeConfiguration() const
cron().isEmpty() ? QVariant(interval()) cron().isEmpty() ? QVariant(interval())
: QVariant(cron())); : QVariant(cron()));
settings.setValue(QString("X-AW-Number"), number()); settings.setValue(QString("X-AW-Number"), number());
settings.setValue(QString("X-AW-Schedule"), cron());
settings.setValue(QString("X-AW-Socket"), socket()); settings.setValue(QString("X-AW-Socket"), socket());
settings.endGroup(); settings.endGroup();

View File

@ -137,6 +137,7 @@ int ExtNetworkRequest::showConfiguration(const QVariant args)
ui->lineEdit_url->setText(stringUrl()); ui->lineEdit_url->setText(stringUrl());
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked); : Qt::Unchecked);
ui->lineEdit_schedule->setText(cron());
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
@ -149,6 +150,7 @@ int ExtNetworkRequest::showConfiguration(const QVariant args)
setApiVersion(AW_EXTNETREQUEST_API); setApiVersion(AW_EXTNETREQUEST_API);
setStringUrl(ui->lineEdit_url->text()); setStringUrl(ui->lineEdit_url->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setCron(ui->lineEdit_schedule->text());
setSocket(ui->lineEdit_socket->text()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value()); setInterval(ui->spinBox_interval->value());
@ -208,6 +210,7 @@ void ExtNetworkRequest::translate()
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));
ui->label_url->setText(i18n("URL")); ui->label_url->setText(i18n("URL"));
ui->checkBox_active->setText(i18n("Active")); ui->checkBox_active->setText(i18n("Active"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket")); ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval")); ui->label_interval->setText(i18n("Interval"));
} }

View File

@ -134,6 +134,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_schedule">
<item>
<widget class="QLabel" name="label_schedule">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Schedule</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_schedule"/>
</item>
</layout>
</item>
<item> <item>
<layout class="QHBoxLayout" name="layout_socket"> <layout class="QHBoxLayout" name="layout_socket">
<item> <item>

View File

@ -146,6 +146,7 @@ int ExtQuotes::showConfiguration(const QVariant args)
ui->lineEdit_ticker->setText(ticker()); ui->lineEdit_ticker->setText(ticker());
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked); : Qt::Unchecked);
ui->lineEdit_schedule->setText(cron());
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
@ -158,6 +159,7 @@ int ExtQuotes::showConfiguration(const QVariant args)
setApiVersion(AW_EXTQUOTES_API); setApiVersion(AW_EXTQUOTES_API);
setTicker(ui->lineEdit_ticker->text()); setTicker(ui->lineEdit_ticker->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setCron(ui->lineEdit_schedule->text());
setSocket(ui->lineEdit_socket->text()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value()); setInterval(ui->spinBox_interval->value());
@ -273,6 +275,7 @@ get quotes for the instrument. Refer to <a href=\"http://finance.yahoo.com/\">\
</span></a></p></body></html>")); </span></a></p></body></html>"));
ui->label_ticker->setText(i18n("Ticker")); ui->label_ticker->setText(i18n("Ticker"));
ui->checkBox_active->setText(i18n("Active")); ui->checkBox_active->setText(i18n("Active"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket")); ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval")); ui->label_interval->setText(i18n("Interval"));
} }

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>420</width> <width>420</width>
<height>301</height> <height>339</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -150,6 +150,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_schedule">
<item>
<widget class="QLabel" name="label_schedule">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Schedule</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_schedule"/>
</item>
</layout>
</item>
<item> <item>
<layout class="QHBoxLayout" name="layout_socket"> <layout class="QHBoxLayout" name="layout_socket">
<item> <item>

View File

@ -295,6 +295,7 @@ int ExtScript::showConfiguration(const QVariant args)
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked); : Qt::Unchecked);
ui->comboBox_redirect->setCurrentIndex(static_cast<int>(redirect())); ui->comboBox_redirect->setCurrentIndex(static_cast<int>(redirect()));
ui->lineEdit_schedule->setText(cron());
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
// filters // filters
@ -316,6 +317,7 @@ int ExtScript::showConfiguration(const QVariant args)
setPrefix(ui->lineEdit_prefix->text()); setPrefix(ui->lineEdit_prefix->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setRedirect(static_cast<Redirect>(ui->comboBox_redirect->currentIndex())); setRedirect(static_cast<Redirect>(ui->comboBox_redirect->currentIndex()));
setCron(ui->lineEdit_schedule->text());
setSocket(ui->lineEdit_socket->text()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value()); setInterval(ui->spinBox_interval->value());
// filters // filters
@ -402,6 +404,7 @@ void ExtScript::translate()
ui->label_prefix->setText(i18n("Prefix")); ui->label_prefix->setText(i18n("Prefix"));
ui->checkBox_active->setText(i18n("Active")); ui->checkBox_active->setText(i18n("Active"));
ui->label_redirect->setText(i18n("Redirect")); ui->label_redirect->setText(i18n("Redirect"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket")); ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval")); ui->label_interval->setText(i18n("Interval"));
ui->groupBox_filters->setTitle(i18n("Additional filters")); ui->groupBox_filters->setTitle(i18n("Additional filters"));

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>420</width> <width>420</width>
<height>442</height> <height>473</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -195,6 +195,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_schedule">
<item>
<widget class="QLabel" name="label_schedule">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Schedule</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_schedule"/>
</item>
</layout>
</item>
<item> <item>
<layout class="QHBoxLayout" name="layout_socket"> <layout class="QHBoxLayout" name="layout_socket">
<item> <item>

View File

@ -165,6 +165,7 @@ int ExtUpgrade::showConfiguration(const QVariant args)
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked); : Qt::Unchecked);
ui->spinBox_null->setValue(null()); ui->spinBox_null->setValue(null());
ui->lineEdit_schedule->setText(cron());
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
@ -179,6 +180,7 @@ int ExtUpgrade::showConfiguration(const QVariant args)
setFilter(ui->lineEdit_filter->text()); setFilter(ui->lineEdit_filter->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setNull(ui->spinBox_null->value()); setNull(ui->spinBox_null->value());
setCron(ui->lineEdit_schedule->text());
setSocket(ui->lineEdit_socket->text()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value()); setInterval(ui->spinBox_interval->value());
@ -242,6 +244,7 @@ void ExtUpgrade::translate()
ui->label_filter->setText(i18n("Filter")); ui->label_filter->setText(i18n("Filter"));
ui->checkBox_active->setText(i18n("Active")); ui->checkBox_active->setText(i18n("Active"));
ui->label_null->setText(i18n("Null")); ui->label_null->setText(i18n("Null"));
ui->label_interval->setText(i18n("Interval"));
ui->label_socket->setText(i18n("Socket")); ui->label_socket->setText(i18n("Socket"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_interval->setText(i18n("Interval"));
} }

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>420</width> <width>420</width>
<height>321</height> <height>349</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -181,6 +181,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_schedule">
<item>
<widget class="QLabel" name="label_schedule">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Schedule</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_schedule"/>
</item>
</layout>
</item>
<item> <item>
<layout class="QHBoxLayout" name="layout_socket"> <layout class="QHBoxLayout" name="layout_socket">
<item> <item>

View File

@ -292,6 +292,7 @@ int ExtWeather::showConfiguration(const QVariant args)
ui->checkBox_image->setCheckState(image() ? Qt::Checked : Qt::Unchecked); ui->checkBox_image->setCheckState(image() ? Qt::Checked : Qt::Unchecked);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked); : Qt::Unchecked);
ui->lineEdit_schedule->setText(cron());
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
@ -308,6 +309,7 @@ int ExtWeather::showConfiguration(const QVariant args)
setTs(ui->spinBox_timestamp->value()); setTs(ui->spinBox_timestamp->value());
setImage(ui->checkBox_image->checkState() == Qt::Checked); setImage(ui->checkBox_image->checkState() == Qt::Checked);
setActive(ui->checkBox_active->checkState() == Qt::Checked); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setCron(ui->lineEdit_schedule->text());
setSocket(ui->lineEdit_socket->text()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value()); setInterval(ui->spinBox_interval->value());
@ -400,6 +402,7 @@ void ExtWeather::translate()
ui->label_timestamp->setText(i18n("Timestamp")); ui->label_timestamp->setText(i18n("Timestamp"));
ui->checkBox_image->setText(i18n("Use images")); ui->checkBox_image->setText(i18n("Use images"));
ui->checkBox_active->setText(i18n("Active")); ui->checkBox_active->setText(i18n("Active"));
ui->label_schedule->setText(i18n("Schedule"));
ui->label_socket->setText(i18n("Socket")); ui->label_socket->setText(i18n("Socket"));
ui->label_interval->setText(i18n("Interval")); ui->label_interval->setText(i18n("Interval"));
} }

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>420</width> <width>420</width>
<height>382</height> <height>413</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -248,6 +248,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_schedule">
<item>
<widget class="QLabel" name="label_schedule">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Schedule</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_schedule"/>
</item>
</layout>
</item>
<item> <item>
<layout class="QHBoxLayout" name="layout_socket"> <layout class="QHBoxLayout" name="layout_socket">
<item> <item>

View File

@ -56,11 +56,11 @@ void QCronScheduler::parse(const QString &timer)
if (fields.count() != 5) if (fields.count() != 5)
return; return;
m_schedule.minutes = parseField(fields.at(1), 0, 59); m_schedule.minutes = parseField(fields.at(0), 0, 59);
m_schedule.hours = parseField(fields.at(2), 0, 23); m_schedule.hours = parseField(fields.at(1), 0, 23);
m_schedule.days = parseField(fields.at(3), 1, 31); m_schedule.days = parseField(fields.at(2), 1, 31);
m_schedule.months = parseField(fields.at(4), 1, 12); m_schedule.months = parseField(fields.at(3), 1, 12);
m_schedule.weekdays = parseField(fields.at(5), 1, 7); m_schedule.weekdays = parseField(fields.at(4), 1, 7);
} }
@ -111,31 +111,31 @@ void QCronScheduler::QCronField::fromRange(const QString &range, const int min,
<< "with corner values" << min << max; << "with corner values" << min << max;
if (range == '*') { if (range == '*') {
this->min = min; minValue = min;
this->max = max; maxValue = max;
} else if (range.contains('-')) { } else if (range.contains('-')) {
auto interval = range.split('-', QString::SkipEmptyParts); auto interval = range.split('-', QString::SkipEmptyParts);
if (interval.count() != 2) if (interval.count() != 2)
return; return;
bool status; bool status;
// minimal value // minimal value
this->min = std::max(min, interval.at(0).toInt(&status)); minValue = std::max(min, interval.at(0).toInt(&status));
if (!status) if (!status)
this->min = -1; minValue = -1;
// maximal value // maximal value
this->max = std::min(max, interval.at(1).toInt(&status)); maxValue = std::min(max, interval.at(1).toInt(&status));
if (!status) if (!status)
this->max = -1; maxValue = -1;
// error check // error check
if (this->min > this->max) if (minValue > maxValue)
std::swap(this->min, this->max); std::swap(minValue, maxValue);
} else { } else {
bool status; bool status;
int value = range.toInt(&status); int value = range.toInt(&status);
if (!status || (value < min) || (value > max)) if (!status || (value < min) || (value > max))
value = -1; value = -1;
this->min = value; minValue = value;
this->max = value; maxValue = value;
} }
} }
@ -143,11 +143,11 @@ void QCronScheduler::QCronField::fromRange(const QString &range, const int min,
QList<int> QCronScheduler::QCronField::toList() QList<int> QCronScheduler::QCronField::toList()
{ {
// error checking // error checking
if ((min == -1) || (max == -1)) if ((minValue == -1) || (maxValue == -1))
return QList<int>(); return QList<int>();
QList<int> output; QList<int> output;
for (auto i = min; i <= max; ++i) { for (auto i = minValue; i <= maxValue; ++i) {
if (i % div != 0) if (i % div != 0)
continue; continue;
output.append(i); output.append(i);

View File

@ -36,8 +36,8 @@ public:
QList<int> weekdays; QList<int> weekdays;
} QCronRunSchedule; } QCronRunSchedule;
typedef struct { typedef struct {
int min = -1; int minValue = -1;
int max = -1; int maxValue = -1;
int div = 1; int div = 1;
void fromRange(const QString &range, const int min, const int max); void fromRange(const QString &range, const int min, const int max);
QList<int> toList(); QList<int> toList();

View File

@ -65,7 +65,7 @@ QPair<QString, QString> AWTestLibrary::randomFilenames()
.arg(QStandardPaths::writableLocation( .arg(QStandardPaths::writableLocation(
QStandardPaths::GenericDataLocation)); QStandardPaths::GenericDataLocation));
QString name = randomString(20); QString name = randomString(1, 20);
fileName += name; fileName += name;
writeFileName += name; writeFileName += name;
@ -79,11 +79,11 @@ int AWTestLibrary::randomInt(const int max)
} }
QString AWTestLibrary::randomString(const int max) QString AWTestLibrary::randomString(const int min, const int max)
{ {
QString output; QString output;
int count = 1 + randomInt(max); int count = min + randomInt(max - min);
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
output += QChar(randomChar()); output += QChar(randomChar());

View File

@ -31,7 +31,7 @@ char randomChar();
double randomDouble(); double randomDouble();
QPair<QString, QString> randomFilenames(); QPair<QString, QString> randomFilenames();
int randomInt(const int max = 100); int randomInt(const int max = 100);
QString randomString(const int max = 100); QString randomString(const int min = 1, const int max = 100);
QStringList randomStringList(const int max = 100); QStringList randomStringList(const int max = 100);
QStringList randomSelect(const QStringList available); QStringList randomSelect(const QStringList available);
}; };

View File

@ -39,6 +39,7 @@ void TestAbstractExtItem::initTestCase()
extItem->setActive(false); extItem->setActive(false);
extItem->setApiVersion(1); extItem->setApiVersion(1);
extItem->setComment(comment); extItem->setComment(comment);
extItem->setCron(cron);
extItem->setName(name); extItem->setName(name);
extItem->setNumber(-1); extItem->setNumber(-1);
extItem->setSocket(socket); extItem->setSocket(socket);
@ -81,6 +82,7 @@ void TestAbstractExtItem::test_configuration()
QCOMPARE(newExtItem->name(), extItem->name()); QCOMPARE(newExtItem->name(), extItem->name());
QCOMPARE(newExtItem->number(), extItem->number()); QCOMPARE(newExtItem->number(), extItem->number());
QCOMPARE(newExtItem->socket(), extItem->socket()); QCOMPARE(newExtItem->socket(), extItem->socket());
QCOMPARE(newExtItem->cron(), extItem->cron());
delete newExtItem; delete newExtItem;
} }
@ -114,6 +116,7 @@ void TestAbstractExtItem::test_copy()
QCOMPARE(newExtItem->comment(), extItem->comment()); QCOMPARE(newExtItem->comment(), extItem->comment());
QCOMPARE(newExtItem->name(), extItem->name()); QCOMPARE(newExtItem->name(), extItem->name());
QCOMPARE(newExtItem->socket(), extItem->socket()); QCOMPARE(newExtItem->socket(), extItem->socket());
QCOMPARE(newExtItem->cron(), extItem->cron());
delete newExtItem; delete newExtItem;
} }

View File

@ -43,6 +43,7 @@ private slots:
private: private:
ExtUpgrade *extItem = nullptr; ExtUpgrade *extItem = nullptr;
QString comment; QString comment;
QString cron = "* * * * *";
QString name; QString name;
QString socket; QString socket;
QString fileName; QString fileName;

View File

@ -37,8 +37,8 @@ void TestAWPatternFunctions::cleanupTestCase()
void TestAWPatternFunctions::test_findFunctionCalls() void TestAWPatternFunctions::test_findFunctionCalls()
{ {
QString name = QString("aw_%1").arg(AWTestLibrary::randomString(10)); QString name = QString("aw_%1").arg(AWTestLibrary::randomString(1, 10));
QString code = AWTestLibrary::randomString(20); QString code = AWTestLibrary::randomString(1, 20);
QStringList args = AWTestLibrary::randomStringList(20); QStringList args = AWTestLibrary::randomStringList(20);
QString function = QString("$%1<%2>{{%3}}") QString function = QString("$%1<%2>{{%3}}")
.arg(name) .arg(name)
@ -63,9 +63,9 @@ void TestAWPatternFunctions::test_findKeys()
int count = AWTestLibrary::randomInt(200); int count = AWTestLibrary::randomInt(200);
QStringList allKeys; QStringList allKeys;
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
auto key = AWTestLibrary::randomString(20); auto key = AWTestLibrary::randomString(1, 20);
while (allKeys.indexOf(QRegExp(QString("^%1.*").arg(key))) != -1) while (allKeys.indexOf(QRegExp(QString("^%1.*").arg(key))) != -1)
key = AWTestLibrary::randomString(20); key = AWTestLibrary::randomString(1, 20);
allKeys.append(key); allKeys.append(key);
} }

View File

@ -27,7 +27,7 @@
void TestAWListFormatter::initTestCase() void TestAWListFormatter::initTestCase()
{ {
AWTestLibrary::init(); AWTestLibrary::init();
separator = AWTestLibrary::randomString(10); separator = AWTestLibrary::randomString(9, 10);
formatter = new AWListFormatter(nullptr); formatter = new AWListFormatter(nullptr);
formatter->setSeparator(separator); formatter->setSeparator(separator);

View File

@ -43,15 +43,15 @@ void TestPlayerSource::_test_sources(const PlayerSource *source)
void TestPlayerSource::test_buildString() void TestPlayerSource::test_buildString()
{ {
QString randomString = AWTestLibrary::randomString(40); QString randomString = AWTestLibrary::randomString(1, 40);
QString str = PlayerSource::buildString(QString(), randomString, 20); QString str = PlayerSource::buildString(QString(), randomString, 20);
QCOMPARE(str.count(), 20); QCOMPARE(str.count(), 20);
str = PlayerSource::buildString(str, randomString, 20); str = PlayerSource::buildString(str, randomString, 20);
QCOMPARE(str.count(), 20); QCOMPARE(str.count(), 20);
str = PlayerSource::buildString(QString(), AWTestLibrary::randomString(10), str = PlayerSource::buildString(QString(),
20); AWTestLibrary::randomString(1, 10), 20);
QCOMPARE(str.count(), 20); QCOMPARE(str.count(), 20);
} }
@ -59,11 +59,11 @@ void TestPlayerSource::test_buildString()
void TestPlayerSource::test_stripString() void TestPlayerSource::test_stripString()
{ {
QString str = PlayerSource::buildString( QString str = PlayerSource::buildString(
QString(), AWTestLibrary::randomString(40), 20); QString(), AWTestLibrary::randomString(1, 40), 20);
QCOMPARE(str.count(), 20); QCOMPARE(str.count(), 20);
str = PlayerSource::buildString(QString(), AWTestLibrary::randomString(10), str = PlayerSource::buildString(QString(),
20); AWTestLibrary::randomString(1, 10), 20);
QCOMPARE(str.count(), 20); QCOMPARE(str.count(), 20);
} }

View File

@ -50,7 +50,10 @@ void TestAWStringFormatter::test_count()
QCOMPARE(formatter->count(), count); QCOMPARE(formatter->count(), count);
// test // test
QString output = formatter->convert(AWTestLibrary::randomString()); auto testString = AWTestLibrary::randomString();
while (testString.count() > count)
testString = AWTestLibrary::randomString();
QString output = formatter->convert(testString);
QCOMPARE(output.count(), count); QCOMPARE(output.count(), count);
// reset // reset