/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file LICENSE.rst or https://cmake.org/licensing for details.  */
#pragma once

#include <QObject>

class CMakeSetupDialog;

class CMakeGUITest : public QObject
{
  Q_OBJECT
public:
  CMakeGUITest(CMakeSetupDialog* window, QObject* parent = nullptr);

private:
  CMakeSetupDialog* m_window = nullptr;

  void tryConfigure(int expectedResult = 0, int timeout = 60000);
  void tryGenerate(int expectedResult = 0, int timeout = 60000);

private slots:
  void sourceBinaryArgs();
  void sourceBinaryArgs_data();
  void simpleConfigure();
  void simpleConfigure_data();
  void instrumentation();
  void environment();
  void presetArg();
  void presetArg_data();
  void changingPresets();
};
