parent
1bd913aea5
commit
09d66587ce
@ -298,10 +298,17 @@ DeviceManager::DeviceError DeviceManager::setPluginConfig(const PluginId &plugin
|
|||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
return DeviceErrorPluginNotFound;
|
return DeviceErrorPluginNotFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DeviceError verify = verifyParams(plugin->configurationDescription(), pluginConfig);
|
||||||
|
if (verify != DeviceErrorNoError) {
|
||||||
|
return verify;
|
||||||
|
}
|
||||||
|
|
||||||
DeviceError result = plugin->setConfiguration(pluginConfig);
|
DeviceError result = plugin->setConfiguration(pluginConfig);
|
||||||
if (result != DeviceErrorNoError) {
|
if (result != DeviceErrorNoError) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
GuhSettings settings(GuhSettings::SettingsRolePlugins);
|
GuhSettings settings(GuhSettings::SettingsRolePlugins);
|
||||||
settings.beginGroup("PluginConfig");
|
settings.beginGroup("PluginConfig");
|
||||||
settings.beginGroup(plugin->pluginId().toString());
|
settings.beginGroup(plugin->pluginId().toString());
|
||||||
|
|||||||
@ -74,6 +74,9 @@ private slots:
|
|||||||
void enableDisableRule();
|
void enableDisableRule();
|
||||||
|
|
||||||
void testEventBasedAction();
|
void testEventBasedAction();
|
||||||
|
|
||||||
|
void testRuleActionParams_data();
|
||||||
|
void testRuleActionParams();
|
||||||
};
|
};
|
||||||
|
|
||||||
void TestRules::cleanupMockHistory() {
|
void TestRules::cleanupMockHistory() {
|
||||||
@ -150,6 +153,15 @@ void TestRules::addRemoveRules_data()
|
|||||||
validActionNoParams.insert("deviceId", m_mockDeviceId);
|
validActionNoParams.insert("deviceId", m_mockDeviceId);
|
||||||
validActionNoParams.insert("ruleActionParams", QVariantList());
|
validActionNoParams.insert("ruleActionParams", QVariantList());
|
||||||
|
|
||||||
|
QVariantMap validActionWithParams;
|
||||||
|
validActionWithParams.insert("actionTypeId", mockActionIdNoParams);
|
||||||
|
validActionWithParams.insert("deviceId", m_mockDeviceId);
|
||||||
|
QVariantList actionParams;
|
||||||
|
|
||||||
|
|
||||||
|
validActionWithParams.insert("ruleActionParams", QVariantList());
|
||||||
|
|
||||||
|
|
||||||
QVariantMap invalidAction;
|
QVariantMap invalidAction;
|
||||||
invalidAction.insert("actionTypeId", ActionTypeId());
|
invalidAction.insert("actionTypeId", ActionTypeId());
|
||||||
invalidAction.insert("deviceId", m_mockDeviceId);
|
invalidAction.insert("deviceId", m_mockDeviceId);
|
||||||
@ -1375,5 +1387,69 @@ void TestRules::testEventBasedAction()
|
|||||||
// TODO: check if this action was realy executed with the int state value 42
|
// TODO: check if this action was realy executed with the int state value 42
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TestRules::testRuleActionParams_data()
|
||||||
|
{
|
||||||
|
QVariantMap action;
|
||||||
|
QVariantList ruleActionParams;
|
||||||
|
QVariantMap param1;
|
||||||
|
param1.insert("name", "mockActionParam1");
|
||||||
|
param1.insert("value", 4);
|
||||||
|
QVariantMap param2;
|
||||||
|
param2.insert("name", "mockActionParam2");
|
||||||
|
param2.insert("value", true);
|
||||||
|
ruleActionParams.append(param1);
|
||||||
|
ruleActionParams.append(param2);
|
||||||
|
action.insert("actionTypeId", mockActionIdWithParams);
|
||||||
|
action.insert("deviceId", m_mockDeviceId);
|
||||||
|
action.insert("ruleActionParams", ruleActionParams);
|
||||||
|
|
||||||
|
QVariantMap invalidAction1;
|
||||||
|
invalidAction1.insert("actionTypeId", mockActionIdWithParams);
|
||||||
|
invalidAction1.insert("deviceId", m_mockDeviceId);
|
||||||
|
invalidAction1.insert("ruleActionParams", QVariantList() << param2);
|
||||||
|
|
||||||
|
QVariantMap invalidAction2;
|
||||||
|
invalidAction2.insert("actionTypeId", mockActionIdWithParams);
|
||||||
|
invalidAction2.insert("deviceId", m_mockDeviceId);
|
||||||
|
invalidAction2.insert("ruleActionParams", QVariantList() << param1);
|
||||||
|
|
||||||
|
|
||||||
|
QTest::addColumn<QVariantMap>("action");
|
||||||
|
QTest::addColumn<QVariantMap>("exitAction");
|
||||||
|
QTest::addColumn<RuleEngine::RuleError>("error");
|
||||||
|
|
||||||
|
QTest::newRow("valid action params") << action << QVariantMap() << RuleEngine::RuleErrorNoError;
|
||||||
|
QTest::newRow("valid action and exit action params") << action << action << RuleEngine::RuleErrorNoError;
|
||||||
|
QTest::newRow("invalid action params1") << invalidAction1 << QVariantMap() << RuleEngine::RuleErrorInvalidRuleActionParameter;
|
||||||
|
QTest::newRow("invalid action params2") << invalidAction2 << QVariantMap() << RuleEngine::RuleErrorInvalidRuleActionParameter;
|
||||||
|
QTest::newRow("valid action and invalid exit action params1") << action << invalidAction1 << RuleEngine::RuleErrorInvalidRuleActionParameter;
|
||||||
|
QTest::newRow("valid action and invalid exit action params2") << action << invalidAction2 << RuleEngine::RuleErrorInvalidRuleActionParameter;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestRules::testRuleActionParams()
|
||||||
|
{
|
||||||
|
|
||||||
|
QFETCH(QVariantMap, action);
|
||||||
|
QFETCH(QVariantMap, exitAction);
|
||||||
|
QFETCH(RuleEngine::RuleError, error);
|
||||||
|
|
||||||
|
|
||||||
|
// Add a rule
|
||||||
|
QVariantMap addRuleParams;
|
||||||
|
addRuleParams.insert("name", "TestRule");
|
||||||
|
addRuleParams.insert("enabled", true);
|
||||||
|
if (!action.isEmpty())
|
||||||
|
addRuleParams.insert("actions", QVariantList() << action);
|
||||||
|
if (!exitAction.isEmpty())
|
||||||
|
addRuleParams.insert("exitActions", QVariantList() << exitAction);
|
||||||
|
|
||||||
|
QVariant response = injectAndWait("Rules.AddRule", addRuleParams);
|
||||||
|
verifyRuleError(response, error);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#include "testrules.moc"
|
#include "testrules.moc"
|
||||||
QTEST_MAIN(TestRules)
|
QTEST_MAIN(TestRules)
|
||||||
|
|||||||
Reference in New Issue
Block a user