mirror of
https://github.com/altlinux/admc.git
synced 2025-02-03 05:47:02 +03:00
improve how test arena is selected as search base
remove ctor arg reuse f-n from select base widget test
This commit is contained in:
parent
cbaf93264a
commit
7e9a4ae125
@ -47,7 +47,7 @@ enum SelectColumn {
|
||||
|
||||
void add_select_object_to_model(QStandardItemModel *model, const AdObject &object);
|
||||
|
||||
SelectObjectDialog::SelectObjectDialog(const QList<QString> class_list_arg, const SelectObjectDialogMultiSelection multi_selection_arg, const QString &default_base, QWidget *parent)
|
||||
SelectObjectDialog::SelectObjectDialog(const QList<QString> class_list_arg, const SelectObjectDialogMultiSelection multi_selection_arg, QWidget *parent)
|
||||
: QDialog(parent) {
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
setWindowTitle("Select dialog");
|
||||
@ -59,7 +59,7 @@ SelectObjectDialog::SelectObjectDialog(const QList<QString> class_list_arg, cons
|
||||
|
||||
select_classes = new SelectClassesWidget(class_list);
|
||||
|
||||
select_base_widget = new SelectBaseWidget(default_base);
|
||||
select_base_widget = new SelectBaseWidget();
|
||||
select_base_widget->setObjectName("select_base_widget");
|
||||
|
||||
edit = new QLineEdit();
|
||||
@ -120,11 +120,6 @@ SelectObjectDialog::SelectObjectDialog(const QList<QString> class_list_arg, cons
|
||||
this, &SelectObjectDialog::on_advanced_button);
|
||||
}
|
||||
|
||||
SelectObjectDialog::SelectObjectDialog(const QList<QString> class_list_arg, const SelectObjectDialogMultiSelection multi_selection_arg, QWidget *parent)
|
||||
: SelectObjectDialog(class_list_arg, multi_selection_arg, QString(), parent) {
|
||||
|
||||
}
|
||||
|
||||
QList<QString> SelectObjectDialog::get_selected() const {
|
||||
QList<QString> out;
|
||||
|
||||
|
@ -40,7 +40,6 @@ Q_OBJECT
|
||||
|
||||
public:
|
||||
SelectObjectDialog(const QList<QString> class_list_arg, const SelectObjectDialogMultiSelection multi_selection_arg, QWidget *parent);
|
||||
SelectObjectDialog(const QList<QString> class_list_arg, const SelectObjectDialogMultiSelection multi_selection_arg, const QString &default_base, QWidget *parent);
|
||||
|
||||
QList<QString> get_selected() const;
|
||||
|
||||
|
@ -27,6 +27,8 @@
|
||||
#include "select_object_dialog.h"
|
||||
#include "select_object_advanced_dialog.h"
|
||||
#include "filter_widget/filter_widget_simple_tab.h"
|
||||
#include "filter_widget/select_base_widget.h"
|
||||
#include "select_container_dialog.h"
|
||||
|
||||
#include <QMessageBox>
|
||||
#include <QModelIndex>
|
||||
@ -233,3 +235,26 @@ void ADMCTest::select_in_select_dialog(SelectObjectDialog *select_dialog, const
|
||||
|
||||
find_select_dialog->accept();
|
||||
}
|
||||
|
||||
void select_base_widget_add(SelectBaseWidget *widget, const QString &dn) {
|
||||
auto browse_button = widget->findChild<QPushButton *>();
|
||||
QVERIFY(browse_button != nullptr);
|
||||
|
||||
browse_button->click();
|
||||
|
||||
auto select_container_dialog = widget->findChild<SelectContainerDialog *>();
|
||||
QVERIFY(select_container_dialog != nullptr);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(select_container_dialog, 1000));
|
||||
|
||||
auto select_container_view = select_container_dialog->findChild<QTreeView *>();
|
||||
QVERIFY(select_container_view != nullptr);
|
||||
navigate_until_object(select_container_view, dn, ContainerRole_DN);
|
||||
|
||||
select_container_dialog->accept();
|
||||
QVERIFY(QTest::qWaitForWindowExposed(widget, 1000));
|
||||
|
||||
// NOTE: have to delete manually, dialog deletes itself
|
||||
// on close a bit late which causes consecutive calls
|
||||
// calls to get the dialog that should've been destroyed
|
||||
delete select_container_dialog;
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ class QString;
|
||||
class QTreeView;
|
||||
class QPushButton;
|
||||
class SelectObjectDialog;
|
||||
class SelectBaseWidget;
|
||||
|
||||
#define TEST_USER "test-user"
|
||||
#define TEST_USER_LOGON "test-user-logon"
|
||||
@ -111,4 +112,8 @@ private:
|
||||
|
||||
void navigate_until_object(QTreeView *view, const QString &target_dn, const int dn_role);
|
||||
|
||||
// Add a base to the base combo. Note that it is also
|
||||
// automatically selected.
|
||||
void select_base_widget_add(SelectBaseWidget *widget, const QString &dn);
|
||||
|
||||
#endif /* ADMC_TEST_H */
|
||||
|
@ -45,9 +45,6 @@ void ADMCTestSelectBaseWidget::init() {
|
||||
combo = select_base_widget->findChild<QComboBox *>();
|
||||
QVERIFY(combo != nullptr);
|
||||
|
||||
browse_button = select_base_widget->findChild<QPushButton *>();
|
||||
QVERIFY(browse_button != nullptr);
|
||||
|
||||
// Create test OU's
|
||||
const QList<QString> ou_name_list = {
|
||||
"test-ou-alpha",
|
||||
@ -77,7 +74,7 @@ void ADMCTestSelectBaseWidget::default_to_domain_head() {
|
||||
// the DN of selected search base
|
||||
void ADMCTestSelectBaseWidget::select_base() {
|
||||
const QString select_dn = dn_list[0];
|
||||
add_base(select_dn);
|
||||
select_base_widget_add(select_base_widget, select_dn);
|
||||
|
||||
const QString base = select_base_widget->get_base();
|
||||
QVERIFY(base == select_dn);
|
||||
@ -88,7 +85,7 @@ void ADMCTestSelectBaseWidget::select_base() {
|
||||
// that search base.
|
||||
void ADMCTestSelectBaseWidget::select_base_multiple() {
|
||||
for (const QString &dn : dn_list) {
|
||||
add_base(dn);
|
||||
select_base_widget_add(select_base_widget, dn);
|
||||
}
|
||||
|
||||
// Alpha is at index 1 in the combo (0 is domain)
|
||||
@ -97,29 +94,10 @@ void ADMCTestSelectBaseWidget::select_base_multiple() {
|
||||
QVERIFY(base == dn_list[0]);
|
||||
}
|
||||
|
||||
void ADMCTestSelectBaseWidget::add_base(const QString &dn) {
|
||||
browse_button->click();
|
||||
auto select_container_dialog = select_base_widget->findChild<SelectContainerDialog *>();
|
||||
QVERIFY(select_container_dialog != nullptr);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(select_container_dialog, 1000));
|
||||
|
||||
auto select_container_view = select_container_dialog->findChild<QTreeView *>();
|
||||
QVERIFY(select_container_view != nullptr);
|
||||
navigate_until_object(select_container_view, dn, ContainerRole_DN);
|
||||
|
||||
QTest::keyClick(QApplication::focusWidget(), Qt::Key_Enter);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(select_base_widget, 1000));
|
||||
|
||||
// NOTE: have to delete manually, dialog deletes itself
|
||||
// on close a bit late which causes consecutive add_base()
|
||||
// calls to get the dialog that should've been destroyed
|
||||
delete select_container_dialog;
|
||||
}
|
||||
|
||||
void ADMCTestSelectBaseWidget::save_state() {
|
||||
// Setup some state
|
||||
for (const QString &dn : dn_list) {
|
||||
add_base(dn);
|
||||
select_base_widget_add(select_base_widget, dn);
|
||||
}
|
||||
|
||||
combo->setCurrentIndex(1);
|
||||
|
@ -41,10 +41,7 @@ private slots:
|
||||
private:
|
||||
SelectBaseWidget *select_base_widget;
|
||||
QComboBox *combo;
|
||||
QPushButton *browse_button;
|
||||
QList<QString> dn_list;
|
||||
|
||||
void add_base(const QString &dn);
|
||||
};
|
||||
|
||||
#endif /* ADMC_TEST_SELECT_BASE_WIDGET_H */
|
||||
|
@ -20,8 +20,10 @@
|
||||
|
||||
#include "admc_test_select_object_dialog.h"
|
||||
|
||||
#include "admc_test_select_base_widget.h"
|
||||
#include "select_object_dialog.h"
|
||||
#include "console_types/console_object.h"
|
||||
#include "filter_widget/select_base_widget.h"
|
||||
|
||||
#include <QLineEdit>
|
||||
#include <QPushButton>
|
||||
@ -31,10 +33,13 @@
|
||||
void ADMCTestSelectObjectDialog::init() {
|
||||
ADMCTest::init();
|
||||
|
||||
dialog = new SelectObjectDialog({CLASS_USER}, SelectObjectDialogMultiSelection_Yes, test_arena_dn(), parent_widget);
|
||||
dialog = new SelectObjectDialog({CLASS_USER}, SelectObjectDialogMultiSelection_Yes, parent_widget);
|
||||
dialog->open();
|
||||
QVERIFY(QTest::qWaitForWindowExposed(dialog, 1000));
|
||||
|
||||
auto select_base_widget = dialog->findChild<SelectBaseWidget *>();
|
||||
select_base_widget_add(select_base_widget, test_arena_dn());
|
||||
|
||||
edit = dialog->findChild<QLineEdit *>("edit");
|
||||
QVERIFY(edit != nullptr);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user