Skip to content

Commit f7dd97b

Browse files
committed
Stabilize DynamicTest
* Redo assertions to use assertEquals for better reporting. * Remove useless catch blocks with fails * Use DisplayHelper to spin the event loop
1 parent 5e9c188 commit f7dd97b

File tree

1 file changed

+65
-102
lines changed
  • tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities

1 file changed

+65
-102
lines changed

tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicTest.java

Lines changed: 65 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
import static org.junit.Assert.assertEquals;
1717
import static org.junit.Assert.assertFalse;
18+
import static org.junit.Assert.assertNotEquals;
1819
import static org.junit.Assert.assertTrue;
19-
import static org.junit.Assert.fail;
2020

2121
import java.io.ByteArrayInputStream;
2222
import java.io.InputStream;
@@ -28,7 +28,6 @@
2828
import org.eclipse.core.runtime.ContributorFactoryOSGi;
2929
import org.eclipse.core.runtime.IContributor;
3030
import org.eclipse.core.runtime.RegistryFactory;
31-
import org.eclipse.swt.widgets.Display;
3231
import org.eclipse.ui.PlatformUI;
3332
import org.eclipse.ui.activities.IActivity;
3433
import org.eclipse.ui.activities.IActivityPatternBinding;
@@ -41,6 +40,7 @@
4140
import org.eclipse.ui.activities.WorkbenchTriggerPointAdvisor;
4241
import org.eclipse.ui.internal.activities.MutableActivityManager;
4342
import org.eclipse.ui.tests.TestPlugin;
43+
import org.eclipse.ui.tests.harness.util.DisplayHelper;
4444
import org.junit.Before;
4545
import org.junit.Test;
4646

@@ -92,9 +92,9 @@ public void init() {
9292
*/
9393
@Test
9494
public void testSizes() {
95-
assertTrue(activityManager.getDefinedCategoryIds().size() == 6);
96-
assertTrue(activityManager.getDefinedActivityIds().size() == 18);
97-
assertTrue(activityManager.getEnabledActivityIds().size() == 3);
95+
assertEquals(6, activityManager.getDefinedCategoryIds().size());
96+
assertEquals(18, activityManager.getDefinedActivityIds().size());
97+
assertEquals(3, activityManager.getEnabledActivityIds().size());
9898
}
9999

100100
/**
@@ -103,20 +103,18 @@ public void testSizes() {
103103
@Test
104104
public void testActivityPatternBindings() {
105105
IActivity first_activity = activityManager
106-
.getActivity((String) activityManager.getDefinedActivityIds()
107-
.toArray()[0]);
106+
.getActivity(activityManager.getDefinedActivityIds()
107+
.toArray(String[]::new)[0]);
108108
Set<IActivityPatternBinding> initialPatternBindings = first_activity
109109
.getActivityPatternBindings();
110110
// Add pattern binding
111111
String pattern = "org\\.eclipse\\.ui\\.myPattern/.*"; //$NON-NLS-1$
112112
fixedModelRegistry.addActivityPatternBinding(first_activity.getId(),
113113
pattern);
114-
assertFalse(initialPatternBindings.size() == first_activity
115-
.getActivityPatternBindings().size());
114+
assertNotEquals(initialPatternBindings.size(), first_activity.getActivityPatternBindings().size());
116115
// Remove pattern binding
117116
fixedModelRegistry.removeActivityPatternBinding(pattern);
118-
assertTrue(initialPatternBindings.size() == first_activity
119-
.getActivityPatternBindings().size());
117+
assertEquals(initialPatternBindings.size(), first_activity.getActivityPatternBindings().size());
120118
}
121119

122120
/**
@@ -125,17 +123,16 @@ public void testActivityPatternBindings() {
125123
@Test
126124
public void testEnabledActivities() {
127125
// Add an enabled activity
128-
Set<String> compareSet;
129126
Set<String> copySet = new HashSet<>(activityManager.getEnabledActivityIds());
130-
copySet.add(activityManager.getDefinedActivityIds().toArray(new String[0])[0]);
127+
copySet.add(activityManager.getDefinedActivityIds().toArray(String[]::new)[0]);
131128
activityManager.setEnabledActivityIds(copySet);
132-
compareSet = activityManager.getEnabledActivityIds();
133-
assertTrue(compareSet.size() == copySet.size());
129+
Set<String> compareSet = activityManager.getEnabledActivityIds();
130+
assertEquals(compareSet.size(), copySet.size());
134131
// Remove an enabled activity
135132
copySet.remove(activityManager.getDefinedActivityIds().toArray()[0]);
136133
activityManager.setEnabledActivityIds(copySet);
137134
compareSet = activityManager.getEnabledActivityIds();
138-
assertTrue(compareSet.size() == copySet.size());
135+
assertEquals(compareSet.size(), copySet.size());
139136
}
140137

141138
/**
@@ -161,37 +158,37 @@ public void testIdentifiersListener() {
161158
IIdentifier activitiesIdentifier = activityManager
162159
.getIdentifier("org.eclipse.pattern4"); //$NON-NLS-1$
163160
Set<String> identifiedActivities = activitiesIdentifier.getActivityIds(); // $NON-NLS-1$
164-
assertTrue(identifiedActivities.size() == 1);
165-
assertTrue(((String) identifiedActivities.toArray()[0])
161+
assertEquals(1, identifiedActivities.size());
162+
assertTrue(identifiedActivities.toArray(String[]::new)[0]
166163
.equals("org.eclipse.activity4")); //$NON-NLS-1$
167164
assertFalse(activitiesIdentifier.isEnabled());
168165
// Disable Enabled activity
169166
listenerType = 0;
170167
Set<String> copySet = new HashSet<>(activityManager.getEnabledActivityIds());
171168
copySet.remove(enabledIdentifier.getActivityIds().toArray()[0]);
172169
activityManager.setEnabledActivityIds(copySet);
173-
assertTrue(listenerType == -1);
170+
assertEquals(-1, listenerType);
174171
// Enable Disabled activity
175172
listenerType = 0;
176173
copySet.add("org.eclipse.activity3"); //$NON-NLS-1$
177174
activityManager.setEnabledActivityIds(copySet);
178-
assertTrue(listenerType == -1);
175+
assertEquals(-1, listenerType);
179176
// Add pattern binding
180177
listenerType = 1;
181178
fixedModelRegistry.addActivityPatternBinding("org.eclipse.activity1", //$NON-NLS-1$
182179
"org.eclipse.pattern3"); //$NON-NLS-1$
183-
assertTrue(listenerType == -1);
180+
assertEquals(-1, listenerType);
184181
// Test correctenesss of identifier
185182
Set<String> manipulatedIdentifiers = activityManager.getIdentifier(
186183
"org.eclipse.pattern3").getActivityIds(); //$NON-NLS-1$
187-
assertTrue(manipulatedIdentifiers.size() == 2);
184+
assertEquals(2, manipulatedIdentifiers.size());
188185
// Remove pattern binding
189186
listenerType = 1;
190187
fixedModelRegistry.removeActivityPatternBinding("org.eclipse.pattern3"); //$NON-NLS-1$
191-
assertTrue(listenerType == -1);
188+
assertEquals(-1, listenerType);
192189
manipulatedIdentifiers = activityManager.getIdentifier(
193190
"org.eclipse.pattern3").getActivityIds(); //$NON-NLS-1$
194-
assertTrue(manipulatedIdentifiers.size() == 1);
191+
assertEquals(1, manipulatedIdentifiers.size());
195192
}
196193

197194
/**
@@ -218,37 +215,37 @@ public void testActivityManagerListener() {
218215
Set<String> enabledSet = new HashSet<>(activityManager.getEnabledActivityIds());
219216
enabledSet.add("org.eclipse.activity19"); //$NON-NLS-1$
220217
activityManager.setEnabledActivityIds(enabledSet);
221-
assertTrue(listenerType == -1);
218+
assertEquals(-1, listenerType);
222219
// Remove an enabled activity
223220
listenerType = 2;
224221
enabledSet.remove("org.eclipse.activity19"); //$NON-NLS-1$
225222
activityManager.setEnabledActivityIds(enabledSet);
226-
assertTrue(listenerType == -1);
223+
assertEquals(-1, listenerType);
227224
// Add categroy
228225
listenerType = 3;
229226
fixedModelRegistry.addCategory("org.eclipse.category7", "Category 7"); //$NON-NLS-1$ //$NON-NLS-2$
230-
assertTrue(listenerType == -1);
227+
assertEquals(-1, listenerType);
231228
// Remove category
232229
listenerType = 3;
233230
fixedModelRegistry.removeCategory("org.eclipse.category7", //$NON-NLS-1$
234231
"Category 7"); //$NON-NLS-1$
235-
assertTrue(listenerType == -1);
232+
assertEquals(-1, listenerType);
236233
// Add activity
237234
listenerType = 4;
238235
fixedModelRegistry.addActivity("org.eclipse.activity19", "Activity 19"); //$NON-NLS-1$ //$NON-NLS-2$
239-
assertTrue(listenerType == -1);
236+
assertEquals(-1, listenerType);
240237
// Remove activity
241238
listenerType = 4;
242239
fixedModelRegistry.removeActivity("org.eclipse.activity19", //$NON-NLS-1$
243240
"Activity 19"); //$NON-NLS-1$
244-
assertTrue(listenerType == -1);
241+
assertEquals(-1, listenerType);
245242
}
246243

247244
/**
248245
* Test the activity listener.
249246
*/
250247
@Test
251-
public void testActivityListener() {
248+
public void testActivityListener() throws NotDefinedException {
252249
final String activity_to_listen_name = "Activity 18"; //$NON-NLS-1$
253250
final IActivity activity_to_listen = activityManager
254251
.getActivity("org.eclipse.activity18"); //$NON-NLS-1$
@@ -281,82 +278,74 @@ public void testActivityListener() {
281278
// Remove activity and change name consequently
282279
fixedModelRegistry.removeActivity(activity_to_listen.getId(),
283280
activity_to_listen_name);
284-
assertTrue(listenerType == -1);
281+
assertEquals(-1, listenerType);
285282
// Add activity
286283
listenerType = 5;
287284
fixedModelRegistry.addActivity(activity_to_listen.getId(),
288285
activity_to_listen_name);
289-
assertTrue(listenerType == -1);
286+
assertEquals(-1, listenerType);
290287
// Add to enabled activity
291288
listenerType = 6;
292289
Set<String> enabledSet = new HashSet<>(activityManager.getEnabledActivityIds());
293290
enabledSet.add(activity_to_listen.getId());
294291
activityManager.setEnabledActivityIds(enabledSet);
295-
assertTrue(listenerType == -1);
292+
assertEquals(-1, listenerType);
296293
// Remove from enabled activity
297294
listenerType = 6;
298295
enabledSet.remove(activity_to_listen.getId());
299296
activityManager.setEnabledActivityIds(enabledSet);
300-
assertTrue(listenerType == -1);
297+
assertEquals(-1, listenerType);
301298
// Add pattern binding
302299
listenerType = 8;
303300
fixedModelRegistry.addActivityPatternBinding("org.eclipse.activity18", //$NON-NLS-1$
304301
"org.eclipse.pattern3"); //$NON-NLS-1$
305-
assertTrue(listenerType == -1);
302+
assertEquals(-1, listenerType);
306303
// Remove pattern binding
307304
listenerType = 8;
308305
fixedModelRegistry.removeActivityPatternBinding("org.eclipse.pattern3");//$NON-NLS-1$
309-
assertTrue(listenerType == -1);
306+
assertEquals(-1, listenerType);
310307
// Add activity activity binding as parent
311308
listenerType = 9;
312309
fixedModelRegistry.addActivityRequirementBinding(
313310
"org.eclipse.activity9", //$NON-NLS-1$
314311
activity_to_listen.getId());
315-
assertTrue(listenerType == -1);
312+
assertEquals(-1, listenerType);
316313
// Remove activity activity binding as parent
317314
listenerType = 9;
318315
fixedModelRegistry.removeActivityRequirementBinding(
319316
"org.eclipse.activity9", activity_to_listen.getId());//$NON-NLS-1$
320-
assertTrue(listenerType == -1);
317+
assertEquals(-1, listenerType);
321318
// Update activity name
322319
listenerType = 7;
323320
fixedModelRegistry.updateActivityName(activity_to_listen.getId(),
324321
"name_change"); //$NON-NLS-1$
325-
assertTrue(listenerType == -1);
322+
assertEquals(-1, listenerType);
326323
// Update activity description
327324
listenerType = 10;
328325
fixedModelRegistry.updateActivityDescription(
329326
activity_to_listen.getId(), "description_change"); //$NON-NLS-1$
330-
assertTrue(listenerType == -1);
327+
assertEquals(-1, listenerType);
331328

332329
// check default enablement
333330
listenerType = DEFAULT_ENABLED_CHANGED;
334331
fixedModelRegistry.addDefaultEnabledActivity(activity_to_listen.getId());
335-
assertTrue(listenerType == -1);
336-
try {
337-
assertTrue(activity_to_listen.isDefaultEnabled());
338-
} catch (NotDefinedException e1) {
339-
fail(e1.getMessage());
340-
}
332+
assertEquals(-1, listenerType);
333+
assertTrue(activity_to_listen.isDefaultEnabled());
341334

342335
listenerType = DEFAULT_ENABLED_CHANGED;
343336
fixedModelRegistry.removeDefaultEnabledActivity(activity_to_listen.getId());
344-
assertTrue(listenerType == -1);
345-
try {
346-
assertFalse(activity_to_listen.isDefaultEnabled());
347-
} catch (NotDefinedException e1) {
348-
fail(e1.getMessage());
349-
}
337+
assertEquals(-1, listenerType);
338+
assertFalse(activity_to_listen.isDefaultEnabled());
350339
}
351340

352341
/**
353342
* Test the category listener.
354343
*/
355344
@Test
356-
public void testCategoryListener() {
345+
public void testCategoryListener() throws NotDefinedException {
357346
final ICategory category_to_listen = activityManager
358-
.getCategory((String) activityManager.getDefinedCategoryIds()
359-
.toArray()[0]);
347+
.getCategory(activityManager.getDefinedCategoryIds()
348+
.toArray(String[]::new)[0]);
360349
category_to_listen.addCategoryListener(categoryEvent -> {
361350
switch (listenerType) {
362351
case DEFINED_CHANGED:
@@ -375,57 +364,44 @@ public void testCategoryListener() {
375364
listenerType = -1;
376365
});
377366
// Remove category, and change name
378-
try {
379-
fixedModelRegistry.removeCategory(category_to_listen.getId(),
367+
fixedModelRegistry.removeCategory(category_to_listen.getId(),
380368
category_to_listen.getName());
381-
} catch (NotDefinedException e) {
382-
e.printStackTrace(System.err);
383-
}
384-
assertTrue(listenerType == -1);
369+
assertEquals(-1, listenerType);
385370
// Add category
386371
listenerType = 5;
387372
fixedModelRegistry
388373
.addCategory(category_to_listen.getId(), "Category 6"); //$NON-NLS-1$
389-
assertTrue(listenerType == -1);
374+
assertEquals(-1, listenerType);
390375
// Add category activity binding
391376
listenerType = 8;
392-
fixedModelRegistry.addCategoryActivityBinding((String) activityManager
393-
.getDefinedActivityIds().toArray()[4], category_to_listen
377+
fixedModelRegistry.addCategoryActivityBinding(activityManager
378+
.getDefinedActivityIds().toArray(String[]::new)[4], category_to_listen
394379
.getId());
395-
assertTrue(listenerType == -1);
380+
assertEquals(-1, listenerType);
396381
// Remove activity activity binding
397382
listenerType = 8;
398383
fixedModelRegistry.removeCategoryActivityBinding(
399-
(String) activityManager.getDefinedActivityIds().toArray()[4],
384+
activityManager.getDefinedActivityIds().toArray(String[]::new)[4],
400385
category_to_listen.getId());
401386
// Change category description
402387
listenerType = 10;
403388
fixedModelRegistry.updateCategoryDescription(
404389
category_to_listen.getId(), "description_change"); //$NON-NLS-1$
405-
try {
406-
assertTrue(category_to_listen.getDescription().equals(
407-
"description_change")); //$NON-NLS-1$
408-
} catch (NotDefinedException e) {
409-
e.printStackTrace(System.err);
410-
}
411-
assertTrue(listenerType == -1);
390+
assertTrue(category_to_listen.getDescription().equals("description_change")); //$NON-NLS-1$
391+
assertEquals(-1, listenerType);
412392
// Change category name
413393
listenerType = 7;
414394
fixedModelRegistry.updateCategoryName(category_to_listen.getId(),
415395
"name_change"); //$NON-NLS-1$
416-
try {
417-
assertTrue(category_to_listen.getName().equals("name_change")); //$NON-NLS-1$
418-
} catch (NotDefinedException e) {
419-
e.printStackTrace(System.err);
420-
}
421-
assertTrue(listenerType == -1);
396+
assertTrue(category_to_listen.getName().equals("name_change")); //$NON-NLS-1$
397+
assertEquals(-1, listenerType);
422398
}
423399

424400
/**
425401
* Tests to ensure dynamism with regard to the extension registry.
426402
*/
427403
@Test
428-
public void testDynamicRegistry() {
404+
public void testDynamicRegistry() throws NotDefinedException {
429405
IWorkbenchActivitySupport was = PlatformUI.getWorkbench()
430406
.getActivitySupport();
431407
IActivity activity = was.getActivityManager().getActivity(
@@ -437,7 +413,10 @@ public void testDynamicRegistry() {
437413
// set to true when the activity/category in question have had an event
438414
// fired
439415
final boolean[] registryChanged = new boolean[] { false, false };
440-
activity.addActivityListener(activityEvent -> registryChanged[0] = true);
416+
activity.addActivityListener(activityEvent -> {
417+
System.err.println("activityChanged");
418+
registryChanged[0] = true;
419+
});
441420
category.addCategoryListener(categoryEvent -> {
442421
System.err.println("categoryChanged");
443422
registryChanged[1] = true;
@@ -458,24 +437,12 @@ public void testDynamicRegistry() {
458437
InputStream is = new ByteArrayInputStream(bytes);
459438
IContributor contrib = ContributorFactoryOSGi.createContributor(TestPlugin.getDefault().getBundle());
460439
ExtensionRegistry registry = (ExtensionRegistry) RegistryFactory.getRegistry();
461-
if (!registry.addContribution(is, contrib, false, null, null, registry.getTemporaryUserToken())) {
462-
throw new RuntimeException();
463-
}
440+
assertTrue(registry.addContribution(is, contrib, false, null, null, registry.getTemporaryUserToken()));
464441

465442
// spin the event loop and ensure that the changes come down the pipe.
466443
// 20 seconds should be more than enough
467-
long endTime = System.currentTimeMillis() + 20000;
468-
while (!(registryChanged[0] && registryChanged[1])
469-
&& System.currentTimeMillis() < endTime) {
470-
471-
Display display = PlatformUI.getWorkbench().getDisplay();
472-
if (display != null && !display.isDisposed()) {
473-
while (display.readAndDispatch()) {
474-
}
475-
}
476-
display.sleep();
477-
478-
}
444+
DisplayHelper.waitForCondition(PlatformUI.getWorkbench().getDisplay(), 20000,
445+
() -> registryChanged[0] && registryChanged[1]);
479446

480447
assertTrue("Activity Listener not called", registryChanged[0]);
481448
assertTrue("Category Listener not called", registryChanged[1]);
@@ -490,11 +457,7 @@ public void testDynamicRegistry() {
490457
.pattern());
491458
assertEquals("dynamic.activity", patternBinding.getActivityId());
492459

493-
try {
494-
assertTrue(activity.isDefaultEnabled());
495-
} catch (NotDefinedException e) {
496-
fail(e.getMessage());
497-
}
460+
assertTrue(activity.isDefaultEnabled());
498461

499462
Set<IActivityRequirementBinding> requirementBindings = activity.getActivityRequirementBindings();
500463
assertEquals(1, requirementBindings.size());

0 commit comments

Comments
 (0)