fuzzer: Also serialize the AddDockWidget operation
This commit is contained in:
@@ -47,6 +47,19 @@ void OperationBase::execute()
|
||||
execute_impl();
|
||||
}
|
||||
|
||||
QVariantMap OperationBase::toVariantMap() const
|
||||
{
|
||||
const QVariantMap params = paramsToVariantMap();
|
||||
if (params.isEmpty())
|
||||
return {};
|
||||
|
||||
QVariantMap map;
|
||||
map["type"] = m_operationType;
|
||||
map["params"] = params;
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
DockWidgetBase *OperationBase::dockByName(const QString &name) const
|
||||
{
|
||||
return DockRegistry::self()->dockByName(name);
|
||||
@@ -65,6 +78,7 @@ CloseViaDockWidgetAPI::CloseViaDockWidgetAPI(Fuzzer *fuzzer)
|
||||
void CloseViaDockWidgetAPI::execute_impl()
|
||||
{
|
||||
if (DockWidgetBase *dw = m_fuzzer->getRandomDockWidget()) {
|
||||
m_dockWidgetName = dw->uniqueName();
|
||||
auto fw = qobject_cast<FloatingWindow*>(dw->window());
|
||||
dw->close();
|
||||
if (fw && fw->beingDeleted())
|
||||
@@ -72,6 +86,14 @@ void CloseViaDockWidgetAPI::execute_impl()
|
||||
}
|
||||
}
|
||||
|
||||
QVariantMap CloseViaDockWidgetAPI::paramsToVariantMap() const
|
||||
{
|
||||
QVariantMap map;
|
||||
if (!m_dockWidgetName.isEmpty())
|
||||
map["dockWidgetName"] = m_dockWidgetName;
|
||||
return map;
|
||||
}
|
||||
|
||||
HideViaDockWidgetAPI::HideViaDockWidgetAPI(Fuzzer *fuzzer)
|
||||
: OperationBase(OperationType_HideViaDockWidgetAPI, fuzzer)
|
||||
{
|
||||
@@ -80,6 +102,7 @@ HideViaDockWidgetAPI::HideViaDockWidgetAPI(Fuzzer *fuzzer)
|
||||
void HideViaDockWidgetAPI::execute_impl()
|
||||
{
|
||||
if (DockWidgetBase *dw = m_fuzzer->getRandomDockWidget()) {
|
||||
m_dockWidgetName = dw->uniqueName();
|
||||
auto fw = qobject_cast<FloatingWindow*>(dw->window());
|
||||
dw->hide();
|
||||
if (fw && fw->beingDeleted())
|
||||
@@ -87,6 +110,14 @@ void HideViaDockWidgetAPI::execute_impl()
|
||||
}
|
||||
}
|
||||
|
||||
QVariantMap HideViaDockWidgetAPI::paramsToVariantMap() const
|
||||
{
|
||||
QVariantMap map;
|
||||
if (!m_dockWidgetName.isEmpty())
|
||||
map["dockWidgetName"] = m_dockWidgetName;
|
||||
return map;
|
||||
}
|
||||
|
||||
ShowViaDockWidgetAPI::ShowViaDockWidgetAPI(Fuzzer *fuzzer)
|
||||
: OperationBase(OperationType_ShowViaDockWidgetAPI, fuzzer)
|
||||
{
|
||||
@@ -94,8 +125,18 @@ ShowViaDockWidgetAPI::ShowViaDockWidgetAPI(Fuzzer *fuzzer)
|
||||
|
||||
void ShowViaDockWidgetAPI::execute_impl()
|
||||
{
|
||||
if (DockWidgetBase *dw = m_fuzzer->getRandomDockWidget())
|
||||
if (DockWidgetBase *dw = m_fuzzer->getRandomDockWidget()) {
|
||||
m_dockWidgetName = dw->uniqueName();
|
||||
dw->show();
|
||||
}
|
||||
}
|
||||
|
||||
QVariantMap ShowViaDockWidgetAPI::paramsToVariantMap() const
|
||||
{
|
||||
QVariantMap map;
|
||||
if (!m_dockWidgetName.isEmpty())
|
||||
map["dockWidgetName"] = m_dockWidgetName;
|
||||
return map;
|
||||
}
|
||||
|
||||
AddDockWidget::AddDockWidget(Fuzzer *fuzzer)
|
||||
@@ -105,10 +146,16 @@ AddDockWidget::AddDockWidget(Fuzzer *fuzzer)
|
||||
|
||||
void AddDockWidget::execute_impl()
|
||||
{
|
||||
const Fuzzer::AddDockWidgetParams params = m_fuzzer->getRandomAddDockWidgetParams();
|
||||
m_params = m_fuzzer->getRandomAddDockWidgetParams();
|
||||
|
||||
auto fw = qobject_cast<FloatingWindow*>(params.dockWidget->window());
|
||||
params.mainWindow->addDockWidget(params.dockWidget, params.location, params.relativeTo, params.addingOption);
|
||||
auto fw = qobject_cast<FloatingWindow*>(m_params->dockWidget->window());
|
||||
m_params->mainWindow->addDockWidget(m_params->dockWidget, m_params->location, m_params->relativeTo, m_params->addingOption);
|
||||
if (fw && fw->beingDeleted())
|
||||
Testing::waitForDeleted(fw);
|
||||
}
|
||||
|
||||
QVariantMap AddDockWidget::paramsToVariantMap() const
|
||||
{
|
||||
return m_params ? m_params->toVariantMap()
|
||||
: QVariantMap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user