1 /*
2 SPDX-FileCopyrightText: 2018 Ralf Habacker <ralf.habacker@freenet.de>
3
4 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5 */
6
7 #include "testlistpopupmenu.h"
8
9 #include "associationwidgetpopupmenu.h"
10 #include "dialogspopupmenu.h"
11 #include "widgetbasepopupmenu.h"
12 #include "umllistviewpopupmenu.h"
13 #include "umlscenepopupmenu.h"
14
15 #include "category.h"
16 #include "entity.h"
17 #include "classifier.h"
18 #include "instance.h"
19
20 #include "associationwidget.h"
21 #include "categorywidget.h"
22 #include "classifierwidget.h"
23 #include "entitywidget.h"
24
25 #include "folder.h"
26 #include "umllistview.h"
27 #include "umlscene.h"
28 #include "umlview.h"
29
test_createWidgetsSingleSelect()30 void TestListPopupMenu::test_createWidgetsSingleSelect()
31 {
32 UMLFolder folder(QLatin1String("test"));
33 UMLView view(&folder);
34 UMLScene scene(&folder, &view);
35 QWidget qWidget;
36 for(int i = WidgetBase::wt_Min+1; i < WidgetBase::wt_Max; i++) {
37 WidgetBase::WidgetType type = static_cast<WidgetBase::WidgetType>(i);
38 WidgetBase *widget = 0;
39 if (type == WidgetBase::wt_Entity) {
40 widget = new EntityWidget(&scene, new UMLEntity("entity"));
41 } else if (type == WidgetBase::wt_Category) {
42 widget = new CategoryWidget(&scene, new UMLCategory("category"));
43 } else if (type == WidgetBase::wt_Class) {
44 widget = new ClassifierWidget(&scene, new UMLClassifier("classifier"));
45 } else if (type == WidgetBase::wt_Interface) {
46 widget = new ClassifierWidget(&scene, new UMLClassifier("instance"));
47 widget->setBaseType(type);
48 } else
49 widget = new WidgetBase(&scene, type);
50 WidgetBasePopupMenu popup(&qWidget, widget, false);
51 popup.dumpActions(WidgetBase::toString(type));
52 }
53 }
54
test_createWidgetsMultiSelect()55 void TestListPopupMenu::test_createWidgetsMultiSelect()
56 {
57 UMLFolder folder(QLatin1String("test"));
58 UMLView view(&folder);
59 UMLScene scene(&folder, &view);
60 QWidget qWidget;
61 for(int i = WidgetBase::wt_Min+1; i < WidgetBase::wt_Max; i++) {
62 WidgetBase::WidgetType type = static_cast<WidgetBase::WidgetType>(i);
63 WidgetBase *widget = 0;
64 if (type == WidgetBase::wt_Entity) {
65 widget = new EntityWidget(&scene, new UMLEntity("entity"));
66 } else if (type == WidgetBase::wt_Category) {
67 widget = new CategoryWidget(&scene, new UMLCategory("category"));
68 } else if (type == WidgetBase::wt_Class) {
69 widget = new ClassifierWidget(&scene, new UMLClassifier("classifier"));
70 } else if (type == WidgetBase::wt_Interface) {
71 widget = new ClassifierWidget(&scene, new UMLClassifier("instance"));
72 widget->setBaseType(type);
73 } else
74 widget = new WidgetBase(&scene, type);
75 WidgetBasePopupMenu popupMulti(&qWidget, widget, true, type);
76 popupMulti.dumpActions(WidgetBase::toString(type));
77 }
78 }
79
test_createAssociationWidget()80 void TestListPopupMenu::test_createAssociationWidget()
81 {
82 UMLFolder folder(QLatin1String("test"));
83 UMLView view(&folder);
84 UMLScene scene(&folder, &view);
85 QWidget qWidget;
86 UMLWidget widgetA(&scene, WidgetBase::wt_UMLWidget, 0), widgetB(&scene, WidgetBase::wt_UMLWidget, 0);
87 for (int i = Uml::AssociationType::Generalization; i < Uml::AssociationType::Reserved; ++i) {
88 Uml::AssociationType::Enum type = Uml::AssociationType::fromInt(i);
89 AssociationWidget *widget = AssociationWidget::create(&scene, &widgetA, type, &widgetB);
90 AssociationWidgetPopupMenu popup(&qWidget,type, widget);
91 popup.dumpActions(Uml::AssociationType::toString(type));
92 }
93 }
94
test_createUMLScene()95 void TestListPopupMenu::test_createUMLScene()
96 {
97 UMLFolder folder(QLatin1String("test"));
98 UMLView view(&folder);
99 QWidget qWidget;
100 for(int i = Uml::DiagramType::Undefined+1; i < Uml::DiagramType::N_DIAGRAMTYPES; i++) {
101 Uml::DiagramType::Enum type = Uml::DiagramType::fromInt(i);
102 view.umlScene()->setType(type);
103 UMLScenePopupMenu popup(&qWidget, view.umlScene());
104 popup.dumpActions(Uml::DiagramType::toString(type));
105 }
106 }
107
test_createUMLListview()108 void TestListPopupMenu::test_createUMLListview()
109 {
110 QWidget qWidget;
111 UMLObject object;
112 UMLCategory category;
113 UMLListView view;
114 for(int i = UMLListViewItem::ListViewType::lvt_Min+1; i < UMLListViewItem::ListViewType::lvt_Max; i++) {
115 UMLListViewItem::ListViewType type = static_cast<UMLListViewItem::ListViewType>(i);
116 UMLListViewItem item(&view, QLatin1String("test"), type);
117 item.setUMLObject(type == UMLListViewItem::ListViewType::lvt_Category ? &category : &object);
118 UMLListViewPopupMenu popup(&qWidget, &item);
119 popup.dumpActions(UMLListViewItem::toString(type));
120 }
121 }
122
test_createMiscMenu()123 void TestListPopupMenu::test_createMiscMenu()
124 {
125 QWidget qWidget;
126 for(int i = DialogsPopupMenu::TriggerType::tt_Min+1; i < DialogsPopupMenu::TriggerType::tt_Max; i++) {
127 DialogsPopupMenu::TriggerType tt = static_cast<DialogsPopupMenu::TriggerType>(i);
128 DialogsPopupMenu popup(&qWidget, tt);
129 popup.dumpActions(DialogsPopupMenu::toString(tt));
130 }
131 }
132
133 QTEST_MAIN(TestListPopupMenu)
134