Skip to content

Commit c496bbc

Browse files
HeikoKlareakurtakov
authored andcommitted
Remove workbench field and getter from UITestCase
The workbench can just be retrieved from PlatformUI and should not be unnecessarily stored in a to-be-removed abstract test class. This gets rid of the field by different means for different usage contexts: - Replace unnecessary reimplementations of spinning the event loop - Directly access the workbench via PlatformUI - Store the field in the actual test class
1 parent 45af361 commit c496bbc

33 files changed

+208
-184
lines changed

tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.eclipse.jface.preference.PreferenceMemento;
3333
import org.eclipse.swt.widgets.Display;
3434
import org.eclipse.swt.widgets.Shell;
35-
import org.eclipse.ui.IWorkbench;
3635
import org.eclipse.ui.IWorkbenchPage;
3736
import org.eclipse.ui.IWorkbenchWindow;
3837
import org.eclipse.ui.PlatformUI;
@@ -71,7 +70,6 @@ public static IAdaptable getPageInput() {
7170
*/
7271
private final CloseTestWindowsRule closeTestWindows = new CloseTestWindowsRule();
7372

74-
protected IWorkbench fWorkbench;
7573
private Set<Shell> preExistingShells;
7674

7775
/** Preference helper to restore changed preference values after test run. */
@@ -177,8 +175,7 @@ protected void trace(String msg) {
177175
public final void setUp() throws Exception {
178176
super.setUp();
179177
closeTestWindows.before();
180-
fWorkbench = PlatformUI.getWorkbench();
181-
this.preExistingShells = Set.of(fWorkbench.getDisplay().getShells());
178+
this.preExistingShells = Set.of(PlatformUI.getWorkbench().getDisplay().getShells());
182179
String name = runningTest != null ? runningTest : this.getName();
183180
trace(TestRunLogUtil.formatTestStartMessage(name));
184181
doSetUp();
@@ -214,14 +211,13 @@ public final void tearDown() throws Exception {
214211

215212
// Check for shell leak.
216213
List<String> leakedModalShellTitles = new ArrayList<>();
217-
Shell[] shells = fWorkbench.getDisplay().getShells();
214+
Shell[] shells = PlatformUI.getWorkbench().getDisplay().getShells();
218215
for (Shell shell : shells) {
219216
if (!shell.isDisposed() && !preExistingShells.contains(shell)) {
220217
leakedModalShellTitles.add(shell.getText());
221218
shell.close();
222219
}
223220
}
224-
fWorkbench = null;
225221
assertEquals("Test leaked modal shell: [" + String.join(", ", leakedModalShellTitles) + "]", 0,
226222
leakedModalShellTitles.size());
227223
}
@@ -447,16 +443,6 @@ protected void manageWindows(boolean manage) {
447443
closeTestWindows.setEnabled(manage);
448444
}
449445

450-
/**
451-
* Returns the workbench.
452-
*
453-
* @return the workbench
454-
* @since 3.1
455-
*/
456-
protected IWorkbench getWorkbench() {
457-
return fWorkbench;
458-
}
459-
460446
/**
461447
* Change a preference value for this test run. The preference will be reset to
462448
* its value before test started automatically on {@link #tearDown()}.

tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
package org.eclipse.ui.tests.performance;
1616

17+
import static org.eclipse.ui.PlatformUI.getWorkbench;
18+
1719
import org.eclipse.ui.activities.IActivityManager;
1820
import org.junit.Test;
1921

@@ -30,7 +32,7 @@ public GenerateIdentifiersTest() {
3032

3133
@Test
3234
public void test() throws Throwable {
33-
final IActivityManager activityManager = fWorkbench.getActivitySupport().getActivityManager();
35+
final IActivityManager activityManager = getWorkbench().getActivitySupport().getActivityManager();
3436

3537
exercise(() -> {
3638
// construct the Identifiers to test

tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenClosePerspectiveTest.java

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

1616
package org.eclipse.ui.tests.performance;
1717

18+
import static org.eclipse.ui.PlatformUI.getWorkbench;
19+
1820
import java.util.Arrays;
1921
import java.util.Collection;
2022
import java.util.HashMap;
@@ -116,8 +118,7 @@ public void test() throws Throwable {
116118
private void closePerspective(IWorkbenchPage activePage) {
117119
IPerspectiveDescriptor persp = activePage.getPerspective();
118120

119-
ICommandService commandService = fWorkbench
120-
.getService(ICommandService.class);
121+
ICommandService commandService = getWorkbench().getService(ICommandService.class);
121122
Command command = commandService
122123
.getCommand("org.eclipse.ui.window.closePerspective");
123124

@@ -128,8 +129,7 @@ private void closePerspective(IWorkbenchPage activePage) {
128129
ParameterizedCommand pCommand = ParameterizedCommand.generateCommand(
129130
command, parameters);
130131

131-
IHandlerService handlerService = fWorkbench
132-
.getService(IHandlerService.class);
132+
IHandlerService handlerService = getWorkbench().getService(IHandlerService.class);
133133
try {
134134
handlerService.executeCommand(pCommand, null);
135135
} catch (ExecutionException | NotDefinedException | NotEnabledException | NotHandledException e1) {

tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
*******************************************************************************/
1414
package org.eclipse.ui.tests.adaptable;
1515

16+
import static org.eclipse.ui.PlatformUI.getWorkbench;
17+
1618
import org.eclipse.core.internal.propertytester.ResourceMappingPropertyTester;
1719
import org.eclipse.core.resources.IProject;
1820
import org.eclipse.core.resources.IResource;

tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IAggregateWorkingSetTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@
2727
import org.eclipse.jface.util.IPropertyChangeListener;
2828
import org.eclipse.ui.IAggregateWorkingSet;
2929
import org.eclipse.ui.IMemento;
30+
import org.eclipse.ui.IWorkbench;
3031
import org.eclipse.ui.IWorkingSet;
3132
import org.eclipse.ui.IWorkingSetManager;
33+
import org.eclipse.ui.PlatformUI;
3234
import org.eclipse.ui.XMLMemento;
3335
import org.eclipse.ui.internal.AbstractWorkingSet;
3436
import org.eclipse.ui.internal.AbstractWorkingSetManager;
@@ -47,6 +49,7 @@ public class IAggregateWorkingSetTest extends UITestCase {
4749
static final String AGGREGATE_WORKING_SET_NAME_ = "testaggregatews";
4850
static final String WSET_PAGE_ID="org.eclipse.ui.resourceWorkingSetPage";
4951
IWorkspace fWorkspace;
52+
IWorkbench fWorkbench;
5053

5154
IWorkingSet[] components;
5255
List<IWorkingSet> backup;
@@ -59,11 +62,11 @@ public IAggregateWorkingSetTest() {
5962
@Override
6063
protected void doSetUp() throws Exception {
6164
super.doSetUp();
62-
IWorkingSetManager workingSetManager = fWorkbench
63-
.getWorkingSetManager();
65+
IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager();
6466
backup = Arrays.asList(workingSetManager.getAllWorkingSets());
6567

6668
fWorkspace = ResourcesPlugin.getWorkspace();
69+
fWorkbench = PlatformUI.getWorkbench();
6770
components = new IWorkingSet[4];
6871
for (int i = 0; i < 4; i++) {
6972
components[i] = workingSetManager.createWorkingSet(WORKING_SET_NAME
@@ -89,6 +92,7 @@ protected void doTearDown() throws Exception {
8992
workingSetManager.removeWorkingSet(wset);
9093
}
9194
}
95+
fWorkbench = null;
9296
super.doTearDown();
9397
}
9498

tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IDeprecatedWorkbenchPageTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.eclipse.ui.IPageLayout;
2323
import org.eclipse.ui.IPerspectiveDescriptor;
2424
import org.eclipse.ui.IViewPart;
25+
import org.eclipse.ui.IWorkbench;
2526
import org.eclipse.ui.IWorkbenchPage;
2627
import org.eclipse.ui.IWorkbenchWindow;
2728
import org.eclipse.ui.PlatformUI;
@@ -40,6 +41,8 @@
4041
@RunWith(JUnit4.class)
4142
public class IDeprecatedWorkbenchPageTest extends UITestCase {
4243

44+
private IWorkbench fWorkbench;
45+
4346
private IWorkbenchPage fActivePage;
4447

4548
private IWorkbenchWindow fWin;
@@ -53,6 +56,7 @@ public IDeprecatedWorkbenchPageTest() {
5356
@Override
5457
protected void doSetUp() throws Exception {
5558
super.doSetUp();
59+
fWorkbench = PlatformUI.getWorkbench();
5660
fWin = openTestWindow();
5761
fActivePage = fWin.getActivePage();
5862
}
@@ -64,6 +68,7 @@ protected void doTearDown() throws Exception {
6468
FileUtil.deleteProject(proj);
6569
proj = null;
6670
}
71+
fWorkbench = null;
6772
}
6873

6974
/**

tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveListenerTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515

1616
import org.eclipse.ui.IPerspectiveDescriptor;
1717
import org.eclipse.ui.IPerspectiveListener;
18+
import org.eclipse.ui.IWorkbench;
1819
import org.eclipse.ui.IWorkbenchPage;
1920
import org.eclipse.ui.IWorkbenchWindow;
21+
import org.eclipse.ui.PlatformUI;
2022
import org.eclipse.ui.tests.harness.util.EmptyPerspective;
2123
import org.eclipse.ui.tests.harness.util.UITestCase;
2224
import org.junit.Ignore;
@@ -29,6 +31,8 @@ public class IPerspectiveListenerTest extends UITestCase implements
2931
IPerspectiveListener {
3032
private int fEvent;
3133

34+
private IWorkbench fWorkbench;
35+
3236
private IWorkbenchWindow fWindow;
3337

3438
private IWorkbenchPage fPageMask;
@@ -49,13 +53,15 @@ public IPerspectiveListenerTest() {
4953
protected void doSetUp() throws Exception {
5054
super.doSetUp();
5155
fEvent = NONE;
56+
fWorkbench = PlatformUI.getWorkbench();
5257
fWindow = openTestWindow();
5358
fWindow.addPerspectiveListener(this);
5459
}
5560

5661
@Override
5762
protected void doTearDown() throws Exception {
5863
fWindow.removePerspectiveListener(this);
64+
fWorkbench = null;
5965
super.doTearDown();
6066
}
6167

tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPageTest.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*******************************************************************************/
1616
package org.eclipse.ui.tests.api;
1717

18+
import static org.eclipse.ui.PlatformUI.getWorkbench;
19+
1820
import java.util.Arrays;
1921
import java.util.HashMap;
2022
import java.util.HashSet;
@@ -89,6 +91,8 @@
8991
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
9092
public class IWorkbenchPageTest extends UITestCase {
9193

94+
private IWorkbench fWorkbench;
95+
9296
private IWorkbenchPage fActivePage;
9397

9498
private IWorkbenchWindow fWin;
@@ -160,6 +164,7 @@ public IWorkbenchPageTest() {
160164
@Override
161165
protected void doSetUp() throws Exception {
162166
super.doSetUp();
167+
fWorkbench = PlatformUI.getWorkbench();
163168
fWin = openTestWindow();
164169
fActivePage = fWin.getActivePage();
165170
logStatus = null;
@@ -175,6 +180,7 @@ protected void doTearDown() throws Exception {
175180
FileUtil.deleteProject(proj);
176181
proj = null;
177182
}
183+
fWorkbench = null;
178184
}
179185

180186
/**
@@ -836,7 +842,7 @@ public void testGetPerspective() throws Throwable {
836842

837843
@Test
838844
public void testSetPerspective() throws Throwable {
839-
IPerspectiveDescriptor per = PlatformUI.getWorkbench()
845+
IPerspectiveDescriptor per = getWorkbench()
840846
.getPerspectiveRegistry().findPerspectiveWithId(
841847
EmptyPerspective.PERSP_ID);
842848
fActivePage.setPerspective(per);
@@ -1152,7 +1158,7 @@ public void testFindViewReferenceAfterShowViewCommand() throws Throwable {
11521158
showViewViaCommand(MockViewPart.ID2);
11531159

11541160
Assume.assumeTrue(fWin.getShell().isVisible());
1155-
Assume.assumeTrue(PlatformUI.getWorkbench().getActiveWorkbenchWindow() == fWin);
1161+
Assume.assumeTrue(getWorkbench().getActiveWorkbenchWindow() == fWin);
11561162
Assume.assumeTrue(shellIsActive.get());
11571163

11581164
assertNotNull(fActivePage.findView(MockViewPart.ID2));
@@ -1206,7 +1212,7 @@ public void testFindHistoryViewReferenceAfterShowViewCommand() throws Throwable
12061212
showViewViaCommand(historyView);
12071213

12081214
Assume.assumeTrue(fWin.getShell().isVisible());
1209-
Assume.assumeTrue(PlatformUI.getWorkbench().getActiveWorkbenchWindow() == fWin);
1215+
Assume.assumeTrue(getWorkbench().getActiveWorkbenchWindow() == fWin);
12101216
Assume.assumeTrue(shellIsActive.get());
12111217

12121218
assertNotNull(fActivePage.findView(historyView));
@@ -2591,7 +2597,7 @@ public void testRelativeViewVisibility() throws WorkbenchException {
25912597
public void testBug76285() throws PartInitException {
25922598
IWorkbenchPage page = fActivePage;
25932599
IPerspectiveDescriptor originalPersp = page.getPerspective();
2594-
IPerspectiveDescriptor resourcePersp = PlatformUI.getWorkbench()
2600+
IPerspectiveDescriptor resourcePersp = getWorkbench()
25952601
.getPerspectiveRegistry().findPerspectiveWithId(
25962602
IDE.RESOURCE_PERSPECTIVE_ID);
25972603
// test requires switching between two different perspectives

0 commit comments

Comments
 (0)