25
25
import com .vaadin .flow .component .menubar .testbench .MenuBarButtonElement ;
26
26
import com .vaadin .flow .component .menubar .testbench .MenuBarElement ;
27
27
import com .vaadin .flow .component .menubar .testbench .MenuBarItemElement ;
28
+ import com .vaadin .flow .component .menubar .testbench .MenuBarSubMenuElement ;
28
29
import com .vaadin .flow .testutil .TestPath ;
29
30
import com .vaadin .tests .AbstractComponentIT ;
30
31
@@ -103,13 +104,10 @@ public void subMenuHasClassName_callRemoveClassName_classNameIsRemoved() {
103
104
verifySubMenuItemClassNames (true ,
104
105
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME );
105
106
106
- closeSubMenu ();
107
107
click ("remove-sub-item-class-name" );
108
108
109
109
verifySubMenuItemClassNames (false ,
110
110
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME );
111
-
112
- closeSubMenu ();
113
111
}
114
112
115
113
@ Test
@@ -120,21 +118,17 @@ public void subMenuItem_toggleMultipleClassNames_classNamesAreToggled() {
120
118
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME ,
121
119
MenuBarClassNamesPage .SUB_ITEM_SECOND_CLASS_NAME );
122
120
123
- closeSubMenu ();
124
121
click ("add-remove-multiple-sub-item-classes" );
125
122
126
123
verifySubMenuItemClassNames (false ,
127
124
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME ,
128
125
MenuBarClassNamesPage .SUB_ITEM_SECOND_CLASS_NAME );
129
126
130
- closeSubMenu ();
131
127
click ("add-remove-multiple-sub-item-classes" );
132
128
133
129
verifySubMenuItemClassNames (true ,
134
130
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME ,
135
131
MenuBarClassNamesPage .SUB_ITEM_SECOND_CLASS_NAME );
136
-
137
- closeSubMenu ();
138
132
}
139
133
140
134
@ Test
@@ -144,13 +138,10 @@ public void subMenuItem_toggleSingleClassName_classNameIsToggled() {
144
138
verifySubMenuItemClassNames (false ,
145
139
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME );
146
140
147
- closeSubMenu ();
148
141
click ("toggle-sub-item-class-name" );
149
142
150
143
verifySubMenuItemClassNames (true ,
151
144
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME );
152
-
153
- closeSubMenu ();
154
145
}
155
146
156
147
@ Test
@@ -160,13 +151,10 @@ public void subMenuItem_classNamesAreToggleWithSet_classNamesAreToggled() {
160
151
verifySubMenuItemClassNames (false ,
161
152
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME );
162
153
163
- closeSubMenu ();
164
154
click ("set-unset-sub-item-class-name" );
165
155
166
156
verifySubMenuItemClassNames (true ,
167
157
MenuBarClassNamesPage .SUB_ITEM_FIRST_CLASS_NAME );
168
-
169
- closeSubMenu ();
170
158
}
171
159
172
160
@ Test
@@ -176,8 +164,9 @@ public void menuItemWithClassNameInOverflow_changeClassName_classNameIsChanged()
176
164
waitForResizeObserver ();
177
165
menuBar .getOverflowButton ().click ();
178
166
click ("change-item2-class-name" );
179
- menuBar .getOverflowButton ().click ();
180
- MenuBarItemElement menuItem = menuBar .getSubMenuItems ().get (0 );
167
+ MenuBarSubMenuElement subMenu = menuBar .getOverflowButton ()
168
+ .openSubMenu ();
169
+ MenuBarItemElement menuItem = subMenu .getMenuItems ().get (0 );
181
170
Assert .assertEquals (
182
171
Set .of (MenuBarClassNamesPage .MENU_ITEM_SECOND_CLASS_NAME ),
183
172
menuItem .getClassNames ());
@@ -188,10 +177,11 @@ public void menuItemWithClassNameInOverflow_removeClassName_classNameIsRemoved()
188
177
click ("set-width" );
189
178
click ("set-item2-class-name" );
190
179
waitForResizeObserver ();
191
- menuBar .getOverflowButton ().click ();
180
+ menuBar .getOverflowButton ().openSubMenu ();
192
181
click ("remove-item2-class-name" );
193
- menuBar .getOverflowButton ().click ();
194
- MenuBarItemElement menuItem = menuBar .getSubMenuItems ().get (0 );
182
+ MenuBarSubMenuElement subMenu = menuBar .getOverflowButton ()
183
+ .openSubMenu ();
184
+ MenuBarItemElement menuItem = subMenu .getMenuItems ().get (0 );
195
185
Assert .assertEquals (Set .of (), menuItem .getClassNames ());
196
186
}
197
187
@@ -218,24 +208,6 @@ private void click(String id) {
218
208
findElement (By .id (id )).click ();
219
209
}
220
210
221
- public void closeSubMenu () {
222
- $ ("body" ).first ().click ();
223
- verifyClosed ();
224
- }
225
-
226
- private void openSubMenu () {
227
- menuBar .getButtons ().get (0 ).click ();
228
- verifyOpened ();
229
- }
230
-
231
- public void verifyClosed () {
232
- Assert .assertFalse (menuBar .getSubMenu ().getPropertyBoolean ("opened" ));
233
- }
234
-
235
- public void verifyOpened () {
236
- Assert .assertTrue (menuBar .getSubMenu ().getPropertyBoolean ("opened" ));
237
- }
238
-
239
211
private void waitForResizeObserver () {
240
212
getCommandExecutor ().getDriver ().executeAsyncScript (
241
213
"var callback = arguments[arguments.length - 1];"
@@ -244,15 +216,18 @@ private void waitForResizeObserver() {
244
216
245
217
private void verifySubMenuItemClassNames (boolean containsClassNames ,
246
218
String ... classNames ) {
247
- openSubMenu ();
248
- MenuBarItemElement subMenuItem = menuBar .getSubMenuItems ().get (2 );
249
- var subMenuItemClassNames = subMenuItem .getClassNames ();
219
+ MenuBarSubMenuElement subMenu = menuBar .getButtons ().get (0 )
220
+ .openSubMenu ();
221
+ MenuBarItemElement subMenuItem = subMenu .getMenuItems ().get (2 );
222
+ Set <String > subMenuItemClassNames = subMenuItem .getClassNames ();
250
223
for (String className : classNames ) {
251
224
if (containsClassNames ) {
252
225
Assert .assertTrue (subMenuItemClassNames .contains (className ));
253
226
} else {
254
227
Assert .assertFalse (subMenuItemClassNames .contains (className ));
255
228
}
256
229
}
230
+ $ ("body" ).first ().click ();
231
+ subMenu .waitUntilClosed ();
257
232
}
258
233
}
0 commit comments