fuzzer: Don't hide hidden dock widgets and don't show visible ones

This commit is contained in:
Sergio Martins
2019-10-12 10:13:12 +01:00
parent 954fb271d3
commit 09b2d749fa

View File

@@ -78,11 +78,13 @@ 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())
Testing::waitForDeleted(fw);
if (dw->isVisible()) {
m_dockWidgetName = dw->uniqueName();
auto fw = qobject_cast<FloatingWindow*>(dw->window());
dw->close();
if (fw && fw->beingDeleted())
Testing::waitForDeleted(fw);
}
}
}
@@ -102,11 +104,13 @@ 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())
Testing::waitForDeleted(fw);
if (dw->isVisible()) {
m_dockWidgetName = dw->uniqueName();
auto fw = qobject_cast<FloatingWindow*>(dw->window());
dw->hide();
if (fw && fw->beingDeleted())
Testing::waitForDeleted(fw);
}
}
}
@@ -126,8 +130,10 @@ ShowViaDockWidgetAPI::ShowViaDockWidgetAPI(Fuzzer *fuzzer)
void ShowViaDockWidgetAPI::execute_impl()
{
if (DockWidgetBase *dw = m_fuzzer->getRandomDockWidget()) {
m_dockWidgetName = dw->uniqueName();
dw->show();
if (!dw->isVisible()) {
m_dockWidgetName = dw->uniqueName();
dw->show();
}
}
}