From b9baa018ff1b9807341f5e6d353240d1a733516d Mon Sep 17 00:00:00 2001
From: Lars Vogel
Date: Sat, 4 Jul 2026 21:09:59 +0200
Subject: [PATCH] Replace CSSSWTTestCase inheritance with a JUnit 5 extension
The css.swt widget tests inherited Display and engine handling plus a
protected mutable display field from a common base class, which tied
every test to that superclass. A CssSwtEngine extension registered via
RegisterExtension now owns engine creation, the widget helpers and
shell cleanup; tests access the display and engine through accessors
and are free to extend other bases.
---
.../META-INF/MANIFEST.MF | 1 +
.../css/forms/ExpandableCompositeTest.java | 15 +++-
.../e4/ui/tests/css/forms/SectionTest.java | 15 +++-
.../tabbed/TabbedPropertiesListTest.java | 14 ++-
.../tabbed/TabbedPropertiesTitleTest.java | 22 +++--
.../e4/ui/tests/css/swt/Bug419482Test.java | 27 +++---
.../e4/ui/tests/css/swt/Bug459961Test.java | 10 ++-
.../e4/ui/tests/css/swt/ButtonTest.java | 15 +++-
.../e4/ui/tests/css/swt/CSSSWTWidgetTest.java | 42 +++++----
.../css/swt/CTabFolderActiveClassTest.java | 18 ++--
.../e4/ui/tests/css/swt/CTabFolderTest.java | 88 +++++++++++--------
.../tests/css/swt/CTabItemSelectionTest.java | 15 +++-
.../e4/ui/tests/css/swt/CTabItemTest.java | 41 +++++----
.../ui/tests/css/swt/ColorDefinitionTest.java | 24 +++--
.../e4/ui/tests/css/swt/CompositeTest.java | 15 +++-
...{CSSSWTTestCase.java => CssSwtEngine.java} | 61 +++++++------
.../e4/ui/tests/css/swt/DescendentTest.java | 15 +++-
.../ui/tests/css/swt/FontDefinitionTest.java | 25 +++---
.../e4/ui/tests/css/swt/GradientTest.java | 11 ++-
.../swt/IEclipsePreferencesPseudoKeyTest.java | 22 ++---
.../css/swt/IEclipsePreferencesTest.java | 11 ++-
.../tests/css/swt/IdClassLabelColorTest.java | 12 ++-
.../e4/ui/tests/css/swt/InheritTest.java | 14 +--
.../tests/css/swt/InnerClassElementTest.java | 11 ++-
.../e4/ui/tests/css/swt/LabelTest.java | 26 +++---
.../eclipse/e4/ui/tests/css/swt/LinkTest.java | 14 ++-
.../e4/ui/tests/css/swt/MarginTest.java | 20 +++--
.../e4/ui/tests/css/swt/PaddingTest.java | 17 +++-
.../e4/ui/tests/css/swt/ShellActiveTest.java | 11 ++-
.../e4/ui/tests/css/swt/ShellTest.java | 38 +++++---
.../e4/ui/tests/css/swt/TableTest.java | 11 ++-
.../ui/tests/css/swt/TextTransformTest.java | 10 ++-
.../e4/ui/tests/css/swt/ThemeTest.java | 11 +--
.../ui/tests/css/swt/ThemesExtensionTest.java | 11 ++-
.../e4/ui/tests/css/swt/ToolItemTest.java | 15 +++-
.../eclipse/e4/ui/tests/css/swt/TreeTest.java | 13 ++-
36 files changed, 488 insertions(+), 253 deletions(-)
rename tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/{CSSSWTTestCase.java => CssSwtEngine.java} (68%)
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/META-INF/MANIFEST.MF b/tests/org.eclipse.e4.ui.tests.css.swt/META-INF/MANIFEST.MF
index b69efde84cd..d8d124c0330 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@ Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-21
Import-Package: org.eclipse.core.runtime;version="3.5.0",
org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.extension;version="[5.14.0,6.0.0)",
org.junit.jupiter.api.function;version="[5.14.0,6.0.0)",
org.junit.platform.suite.api;version="[1.14.0,2.0.0)",
org.osgi.framework;version="[1.7.0,2.0.0)",
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/ExpandableCompositeTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/ExpandableCompositeTest.java
index 84a26ad3151..ec43705c58e 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/ExpandableCompositeTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/ExpandableCompositeTest.java
@@ -17,24 +17,31 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
-import org.eclipse.e4.ui.tests.css.swt.CSSSWTTestCase;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.e4.ui.tests.css.swt.CssSwtEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.eclipse.ui.forms.widgets.ToggleHyperlink;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class ExpandableCompositeTest extends CSSSWTTestCase {
+public class ExpandableCompositeTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
static final RGB BLUE = new RGB(0, 0, 255);
protected ExpandableComposite createTestExpandableComposite(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -76,7 +83,7 @@ void testExpandableComposite_foregroundColorGetsReset_foregroundCollorIsNull() t
assertNotNull(compositeToTest.getTitleBarForeground());
assertEquals(RED, compositeToTest.getTitleBarForeground().getRGB());
- engine.reset();
+ css.getEngine().reset();
assertNull(compositeToTest.getTitleBarForeground());
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/SectionTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/SectionTest.java
index 81d687f44aa..91bd240305f 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/SectionTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/forms/SectionTest.java
@@ -18,25 +18,32 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
-import org.eclipse.e4.ui.tests.css.swt.CSSSWTTestCase;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.e4.ui.tests.css.swt.CssSwtEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.ToggleHyperlink;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class SectionTest extends CSSSWTTestCase {
+public class SectionTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
static final RGB BLUE = new RGB(0, 0, 255);
protected Section createTestSection(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -91,7 +98,7 @@ void testSectionResetColors() throws Exception {
background-color-titlebar: #0000FF; \
border-color-titlebar: #00FF00}""");
- engine.reset();
+ css.getEngine().reset();
assertNull(section.getTitleBarForeground());
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesListTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesListTest.java
index d21683db054..8d7cba2baed 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesListTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesListTest.java
@@ -13,7 +13,8 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
-import org.eclipse.e4.ui.tests.css.swt.CSSSWTTestCase;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.e4.ui.tests.css.swt.CssSwtEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
@@ -22,12 +23,17 @@
import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyList;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class TabbedPropertiesListTest extends CSSSWTTestCase {
+public class TabbedPropertiesListTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
private TabbedPropertySheetWidgetFactory factory;
private Shell shell;
+ private CSSEngine engine;
private TabbedPropertyList createTabbedPropertiesList(String stylesheet) {
@@ -37,9 +43,9 @@ private TabbedPropertyList createTabbedPropertiesList(String stylesheet) {
} else {
s = stylesheet;
}
- engine = createEngine(s, display);
+ engine = css.createEngine(s);
- shell = new Shell(display, SWT.SHELL_TRIM);
+ shell = new Shell(css.getDisplay(), SWT.SHELL_TRIM);
FillLayout layout = new FillLayout();
shell.setLayout(layout);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesTitleTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesTitleTest.java
index 231bdbf8895..26b3a64e6c2 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesTitleTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/properties/tabbed/TabbedPropertiesTitleTest.java
@@ -14,18 +14,23 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
-import org.eclipse.e4.ui.tests.css.swt.CSSSWTTestCase;
+import org.eclipse.e4.ui.tests.css.swt.CssSwtEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.forms.IFormColors;
import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyTitle;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class TabbedPropertiesTitleTest extends CSSSWTTestCase {
+public class TabbedPropertiesTitleTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
private TabbedPropertySheetWidgetFactory factory;
@@ -39,9 +44,8 @@ private TabbedPropertyTitle createTabbedPropertiesTitle(String stylesheet) {
} else {
s = stylesheet;
}
- engine = createEngine(
- s,
- display);
+ Display display = css.getDisplay();
+ css.createEngine(s);
shell = new Shell(display, SWT.SHELL_TRIM);
FillLayout layout = new FillLayout();
@@ -66,7 +70,7 @@ private void assertColor(RGB expected, String actualKey){
void titleBackgroundColorIsStyled() {
createTabbedPropertiesTitle(null);
- engine.applyStyles(shell, true);
+ css.getEngine().applyStyles(shell, true);
assertColor(RED, IFormColors.H_GRADIENT_START);
assertColor(RED, IFormColors.H_GRADIENT_END);
@@ -83,8 +87,8 @@ void titleBackgroundColorIsStyledAndReset() {
RGB colorBottomKeylineOneBeforStyling = factory.getColors().getColor(IFormColors.H_BOTTOM_KEYLINE1).getRGB();
RGB colorBottomKeylineTwoBeforStyling = factory.getColors().getColor(IFormColors.H_BOTTOM_KEYLINE2).getRGB();
- engine.applyStyles(shell, true);
- engine.reset();
+ css.getEngine().applyStyles(shell, true);
+ css.getEngine().reset();
assertColor(colorGradStartBeforStyling, IFormColors.H_GRADIENT_START);
assertColor(colorGradEndBeforStyling, IFormColors.H_GRADIENT_END);
assertColor(colorBottomKeylineOneBeforStyling, IFormColors.H_BOTTOM_KEYLINE1);
@@ -101,7 +105,7 @@ void colorsAreNotChangedWhenNoStyleGivenInCss() {
RGB colorBottomKeylineOneBeforStyling = factory.getColors().getColor(IFormColors.H_BOTTOM_KEYLINE1).getRGB();
RGB colorBottomKeylineTwoBeforStyling = factory.getColors().getColor(IFormColors.H_BOTTOM_KEYLINE2).getRGB();
- engine.applyStyles(shell, true);
+ css.getEngine().applyStyles(shell, true);
assertColor(colorGradStartBeforStyling, IFormColors.H_GRADIENT_START);
assertColor(colorGradEndBeforStyling, IFormColors.H_GRADIENT_END);
assertColor(colorBottomKeylineOneBeforStyling, IFormColors.H_BOTTOM_KEYLINE1);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug419482Test.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug419482Test.java
index d2e42de491f..b1223bec330 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug419482Test.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug419482Test.java
@@ -16,6 +16,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.RowLayout;
@@ -25,8 +26,12 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class Bug419482Test extends CSSSWTTestCase {
+public class Bug419482Test {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private static final RGB RGB_BLUE = new RGB(0, 0, 255);
private static final RGB RGB_RED = new RGB(255, 0, 0);
@@ -39,7 +44,7 @@ public class Bug419482Test extends CSSSWTTestCase {
void testTwoLevelsWildcard() {
String cssString = "Shell > * > * { color: red; } \n" + "Label { color: blue; }";
- Label label = createTestLabel(cssString);
+ Label label = css.createTestLabel(cssString);
RGB rgb = label.getForeground().getRGB();
assertEquals(RGB_BLUE, rgb);
@@ -49,7 +54,7 @@ void testTwoLevelsWildcard() {
void testOneLevelWildcardOneSpecific() {
String cssString = "Shell > * > Label { color: red; } \n" + "Label { color: blue; }";
- Label label = createTestLabel(cssString);
+ Label label = css.createTestLabel(cssString);
RGB rgb = label.getForeground().getRGB();
assertEquals(RGB_RED, rgb);
@@ -59,7 +64,7 @@ void testOneLevelWildcardOneSpecific() {
void testDescendentsWildcard() {
String cssString = "Shell * { color: red; } \n" + "Label { color: blue; }";
- Label label = createTestLabel(cssString);
+ Label label = css.createTestLabel(cssString);
RGB rgb = label.getForeground().getRGB();
assertEquals(RGB_BLUE, rgb);
@@ -69,7 +74,7 @@ void testDescendentsWildcard() {
void testDescendentsSpecific() {
String cssString = "Shell Label { color: red; } \n" + "Label { color: blue; }";
- Label label = createTestLabel(cssString);
+ Label label = css.createTestLabel(cssString);
RGB rgb = label.getForeground().getRGB();
assertEquals(RGB_RED, rgb);
@@ -77,7 +82,7 @@ void testDescendentsSpecific() {
@Test
void testOriginalBugReport() {
- String css = """
+ String cssString = """
Shell, Shell > *, Shell > * > * {
background-color: red;
}
@@ -85,9 +90,9 @@ void testOriginalBugReport() {
background-color: blue;
}""";
- engine = createEngine(css, display);
+ CSSEngine engine = css.createEngine(cssString);
- Shell shell = createShellWithToolbars(display);
+ Shell shell = createShellWithToolbars(css.getDisplay());
// Apply styles
engine.applyStyles(shell, true);
@@ -99,7 +104,7 @@ void testOriginalBugReport() {
@Test
void testOriginalBugReportDifferentOrder() {
- String css = """
+ String cssString = """
ToolBar {
background-color: blue;
}\
@@ -108,10 +113,10 @@ void testOriginalBugReportDifferentOrder() {
}
""";
- engine = createEngine(css, display);
+ CSSEngine engine = css.createEngine(cssString);
// Create widgets
- Shell shell = createShellWithToolbars(display);
+ Shell shell = createShellWithToolbars(css.getDisplay());
// Apply styles
engine.applyStyles(shell, true);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug459961Test.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug459961Test.java
index 31df4aa802b..8f0161b01d1 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug459961Test.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/Bug459961Test.java
@@ -20,14 +20,18 @@
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class Bug459961Test extends CSSSWTTestCase {
+public class Bug459961Test {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
@Test
void testRegularColorConstantReference() {
String cssString = "Label { background-color: COLOR-GREEN; }";
- Label label = createTestLabel(cssString);
+ Label label = css.createTestLabel(cssString);
RGBA expected = Display.getDefault().getSystemColor(SWT.COLOR_GREEN).getRGBA();
RGBA actual = label.getBackground().getRGBA();
@@ -38,7 +42,7 @@ void testRegularColorConstantReference() {
void testTransparentColorConstantReference() {
String cssString = "Label { background-color: COLOR-TRANSPARENT; }";
- Label label = createTestLabel(cssString);
+ Label label = css.createTestLabel(cssString);
RGBA expected = Display.getDefault().getSystemColor(SWT.COLOR_TRANSPARENT).getRGBA();
RGBA actual = label.getBackground().getRGBA();
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ButtonTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ButtonTest.java
index 71fb362cfc1..bcd8a621216 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ButtonTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ButtonTest.java
@@ -15,23 +15,32 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.BLUE;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class ButtonTest extends CSSSWTTestCase {
+public class ButtonTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
protected Button createTestButton(String styleSheet, int buttonStyle) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -102,7 +111,7 @@ void testSelectedPseudo() {
SWT.CHECK);
assertEquals(RED, buttonToTest.getForeground().getRGB());
buttonToTest.setSelection(true);
- engine.applyStyles(buttonToTest.getShell(), true);
+ css.getEngine().applyStyles(buttonToTest.getShell(), true);
assertEquals(BLUE, buttonToTest.getForeground().getRGB());
}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CSSSWTWidgetTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CSSSWTWidgetTest.java
index 859fbe4c00e..6b9f1cf99f2 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CSSSWTWidgetTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CSSSWTWidgetTest.java
@@ -29,8 +29,12 @@
import org.eclipse.swt.widgets.Widget;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class CSSSWTWidgetTest extends CSSSWTTestCase {
+public class CSSSWTWidgetTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private static final class WidgetElementWithSupplierReturningNull extends WidgetElement {
private WidgetElementWithSupplierReturningNull(Widget widget, CSSEngine engine) {
@@ -61,14 +65,14 @@ private WidgetElementWithSwtStylesNull(Widget widget, CSSEngine engine) {
@Disabled
@Test
void testEngineKey() {
- Widget widget = createTestLabel("Label { font: Arial 12px; font-weight: bold }");
- assertEquals(WidgetElement.getEngine(widget), engine);
+ Widget widget = css.createTestLabel("Label { font: Arial 12px; font-weight: bold }");
+ assertEquals(WidgetElement.getEngine(widget), css.getEngine());
}
@Test
void testIDKey() {
final String id = "some.test.id";
- Widget widget = createTestLabel("Label { font: Arial 12px; font-weight: bold }");
+ Widget widget = css.createTestLabel("Label { font: Arial 12px; font-weight: bold }");
WidgetElement.setID(widget, id);
assertEquals(WidgetElement.getID(widget), id);
}
@@ -77,14 +81,15 @@ void testIDKey() {
@Test
void testCSSClassKey() {
final String cssClass = "some.test.cssclassname";
- Widget widget = createTestLabel("Label { font: Arial 12px; font-weight: bold }");
+ Widget widget = css.createTestLabel("Label { font: Arial 12px; font-weight: bold }");
WidgetElement.setCSSClass(widget, cssClass);
assertEquals(WidgetElement.getCSSClass(widget), cssClass);
}
@Test
void testHasAttribute() {
- Widget widget = createTestLabel("Label { }");
+ Widget widget = css.createTestLabel("Label { }");
+ CSSEngine engine = css.getEngine();
String propertySetToEmptyStringKey = "empty-property";
widget.setData(propertySetToEmptyStringKey, "");
assertTrue(engine.getElement(widget).hasAttribute(propertySetToEmptyStringKey));
@@ -94,31 +99,34 @@ void testHasAttribute() {
@Test
void testGetAttributeWithSwtStylesNull() {
- Widget widget = createTestLabel("Label { }");
- engine.setElementProvider((element, engine) -> new WidgetElementWithSwtStylesNull((Widget) element, engine));
+ Widget widget = css.createTestLabel("Label { }");
+ CSSEngine cssEngine = css.getEngine();
+ cssEngine.setElementProvider((element, engine) -> new WidgetElementWithSwtStylesNull((Widget) element, engine));
- assertTrue(engine.getElement(widget).hasAttribute("style"));
- assertEquals("", engine.getElement(widget).getAttribute("style"));
+ assertTrue(cssEngine.getElement(widget).hasAttribute("style"));
+ assertEquals("", cssEngine.getElement(widget).getAttribute("style"));
}
@Test
void testGetAttributeWithAttributeTypeNull() {
- Widget widget = createTestLabel("Label { }");
- engine.setElementProvider(
+ Widget widget = css.createTestLabel("Label { }");
+ CSSEngine cssEngine = css.getEngine();
+ cssEngine.setElementProvider(
(element, engine) -> new SWTHTMLElementWithAttributeTypeNull((Widget) element, engine));
- assertTrue(engine.getElement(widget).hasAttribute("type"));
- assertEquals("", engine.getElement(widget).getAttribute("type"));
+ assertTrue(cssEngine.getElement(widget).hasAttribute("type"));
+ assertEquals("", cssEngine.getElement(widget).getAttribute("type"));
}
@Test
void testGetAttributeWithAttributeSupplierReturningNull() {
- Widget widget = createTestLabel("Label { }");
- engine.setElementProvider(
+ Widget widget = css.createTestLabel("Label { }");
+ CSSEngine cssEngine = css.getEngine();
+ cssEngine.setElementProvider(
(element, engine) -> new WidgetElementWithSupplierReturningNull((Widget) element, engine));
// throws exception
- assertThrows(AssertionFailedException.class, () -> engine.getElement(widget).getAttribute("style"));
+ assertThrows(AssertionFailedException.class, () -> cssEngine.getElement(widget).getAttribute("style"));
}
}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderActiveClassTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderActiveClassTest.java
index c06734a3150..04b92214424 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderActiveClassTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderActiveClassTest.java
@@ -13,37 +13,43 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.dom.WidgetElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/**
* Locks in how {@code CTabFolder.active { ... }} rules are matched based on
* the CSS class set via {@link WidgetElement#setCSSClass(org.eclipse.swt.widgets.Widget, String)}.
*/
-public class CTabFolderActiveClassTest extends CSSSWTTestCase {
+public class CTabFolderActiveClassTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private Shell shell;
- @Override
@AfterEach
public void tearDown() {
if (shell != null && !shell.isDisposed()) {
shell.dispose();
shell = null;
}
- super.tearDown();
}
private CTabFolder createFolder() {
+ Display display = css.getDisplay();
shell = new Shell(display, SWT.SHELL_TRIM);
shell.setLayout(new FillLayout());
@@ -59,7 +65,7 @@ void testActiveClassAppliesStyle() {
CTabFolder folder = createFolder();
WidgetElement.setCSSClass(folder, "active");
- engine = createEngine("CTabFolder.active { background-color: #FF0000 }", display);
+ CSSEngine engine = css.createEngine("CTabFolder.active { background-color: #FF0000 }");
engine.applyStyles(shell, true);
assertEquals(RED, folder.getBackground().getRGB());
@@ -70,7 +76,7 @@ void testWithoutActiveClassRuleDoesNotApply() {
CTabFolder folder = createFolder();
// no setCSSClass call
- engine = createEngine("CTabFolder.active { background-color: #FF0000 }", display);
+ CSSEngine engine = css.createEngine("CTabFolder.active { background-color: #FF0000 }");
engine.applyStyles(shell, true);
assertNotEquals(RED, folder.getBackground().getRGB());
@@ -81,7 +87,7 @@ void testClearingActiveClassDoesNotRevertBackground() {
CTabFolder folder = createFolder();
WidgetElement.setCSSClass(folder, "active");
- engine = createEngine("CTabFolder.active { background-color: #FF0000 }", display);
+ CSSEngine engine = css.createEngine("CTabFolder.active { background-color: #FF0000 }");
engine.applyStyles(shell, true);
assertEquals(RED, folder.getBackground().getRGB());
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderTest.java
index ad03a4371b3..8c5b08ad131 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabFolderTest.java
@@ -15,9 +15,14 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.BLUE;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.GREEN;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.WHITE;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.dom.WidgetElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
@@ -30,11 +35,16 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class CTabFolderTest extends CSSSWTTestCase {
+public class CTabFolderTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
protected CTabFolder createTestCTabFolder(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -55,7 +65,8 @@ protected CTabFolder createTestCTabFolder(String styleSheet) {
protected ToolBar[] createTestToolBars(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -84,8 +95,8 @@ protected ToolBar[] createTestToolBars(String styleSheet) {
}
protected Shell createShell(String styleSheet) {
- Display display = Display.getDefault();
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.NONE);
@@ -97,7 +108,8 @@ protected Shell createShell(String styleSheet) {
}
protected Label createLabelInCTabFolder(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -172,64 +184,64 @@ void testFontItalic() {
void testBorderVisible() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { border-visible: true}");
assertEquals(true, folderToTest.getBorderVisible());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "border-visible", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "border-visible", null));
folderToTest.getShell().close();
folderToTest = createTestCTabFolder("CTabFolder { border-visible: false}");
assertEquals(false, folderToTest.getBorderVisible());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "border-visible", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "border-visible", null));
}
@Test
void testSimple() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-simple: true}");
assertEquals(true, folderToTest.getSimple());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-simple", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-simple", null));
folderToTest.getShell().close();
folderToTest = createTestCTabFolder("CTabFolder { swt-simple: false}");
// Curved tabs are no longer supported, so getSimple() always returns true
assertEquals(true, folderToTest.getSimple());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-simple", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-simple", null));
}
@Test
void testMaximizeVisible() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-maximize-visible: true}");
assertEquals(true, folderToTest.getMaximizeVisible());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-maximize-visible", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-maximize-visible", null));
folderToTest.getShell().close();
folderToTest = createTestCTabFolder("CTabFolder { swt-maximize-visible: false}");
assertEquals(false, folderToTest.getMaximizeVisible());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-maximize-visible", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-maximize-visible", null));
}
@Test
void testMinimizeVisible() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-minimize-visible: true}");
assertEquals(true, folderToTest.getMinimizeVisible());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-minimize-visible", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-minimize-visible", null));
folderToTest.getShell().close();
folderToTest = createTestCTabFolder("CTabFolder { swt-minimize-visible: false}");
assertEquals(false, folderToTest.getMinimizeVisible());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-minimize-visible", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-minimize-visible", null));
}
@Test
void testMaximized() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-maximized: true}");
assertEquals(true, folderToTest.getMaximized());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-maximized", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-maximized", null));
folderToTest = createTestCTabFolder("CTabFolder { swt-maximized: false}");
assertEquals(false, folderToTest.getMaximized());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-maximized", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-maximized", null));
}
@Test
void testMinimized() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-minimized: true}");
assertEquals(true, folderToTest.getMinimized());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-minimized", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-minimized", null));
folderToTest = createTestCTabFolder("CTabFolder { swt-minimized: false}");
assertEquals(false, folderToTest.getMinimized());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-minimized", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-minimized", null));
}
@Test
@@ -254,43 +266,43 @@ void testTabHeight() {
void testSingle() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-single: true}");
assertEquals(true, folderToTest.getSingle());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-single", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-single", null));
folderToTest = createTestCTabFolder("CTabFolder { swt-single: false}");
assertEquals(false, folderToTest.getSingle());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-single", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-single", null));
}
@Test
void testUnselectedCloseVisible() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-unselected-close-visible: true}");
assertEquals(true, folderToTest.getUnselectedCloseVisible());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-unselected-close-visible", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-unselected-close-visible", null));
folderToTest = createTestCTabFolder("CTabFolder { swt-unselected-close-visible: false}");
assertEquals(false, folderToTest.getUnselectedCloseVisible());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-unselected-close-visible", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-unselected-close-visible", null));
}
@Test
void testUnselectedImageVisible() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-unselected-image-visible: true}");
assertEquals(true, folderToTest.getUnselectedImageVisible());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-unselected-image-visible", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-unselected-image-visible", null));
folderToTest = createTestCTabFolder("CTabFolder { swt-unselected-image-visible: false}");
assertEquals(false, folderToTest.getUnselectedImageVisible());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-unselected-image-visible", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-unselected-image-visible", null));
}
@Test
void testRetrievePropertyNull() {
Shell shell = createShell("Shell {color:red}");
- assertEquals(null, engine.retrieveCSSProperty(shell, "border-visible", null));
- assertEquals(null, engine.retrieveCSSProperty(shell, "swt-maximized", null));
- assertEquals(null, engine.retrieveCSSProperty(shell, "swt-maximize-visible", null));
- assertEquals(null, engine.retrieveCSSProperty(shell, "swt-minimize-visible", null));
- assertEquals(null, engine.retrieveCSSProperty(shell, "swt-simple", null));
- assertEquals(null, engine.retrieveCSSProperty(shell, "swt-single", null));
- assertEquals(null, engine.retrieveCSSProperty(shell, "swt-unselected-close-visible", null));
- assertEquals(null, engine.retrieveCSSProperty(shell, "swt-unselected-image-visible", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "border-visible", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "swt-maximized", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "swt-maximize-visible", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "swt-minimize-visible", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "swt-simple", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "swt-single", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "swt-unselected-close-visible", null));
+ assertEquals(null, css.getEngine().retrieveCSSProperty(shell, "swt-unselected-image-visible", null));
}
@Test
@@ -307,14 +319,14 @@ void testTopRightAsDescendentChild() {
ToolBar barC = toolBars[2];
WidgetElement.setCSSClass(barA.getParent(), "special");
- engine.applyStyles(barA.getShell(), true);
+ css.getEngine().applyStyles(barA.getShell(), true);
assertEquals(RED, barA.getBackground().getRGB());
assertEquals(GREEN, barB.getBackground().getRGB());
assertEquals(BLUE, barC.getBackground().getRGB());
WidgetElement.setCSSClass(barA.getParent(), "extraordinary");
- engine.applyStyles(barA.getShell(), true);
+ css.getEngine().applyStyles(barA.getShell(), true);
assertEquals(WHITE, barA.getBackground().getRGB());
}
@@ -329,19 +341,19 @@ void testStyleLabelChildInCTabFolder() {
void testSelectedImageVisible() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-selected-image-visible: true}");
assertEquals(true, folderToTest.getSelectedImageVisible());
- assertEquals("true", engine.retrieveCSSProperty(folderToTest, "swt-selected-image-visible", null));
+ assertEquals("true", css.getEngine().retrieveCSSProperty(folderToTest, "swt-selected-image-visible", null));
folderToTest = createTestCTabFolder("CTabFolder { swt-selected-image-visible: false}");
assertEquals(false, folderToTest.getSelectedImageVisible());
- assertEquals("false", engine.retrieveCSSProperty(folderToTest, "swt-selected-image-visible", null));
+ assertEquals("false", css.getEngine().retrieveCSSProperty(folderToTest, "swt-selected-image-visible", null));
}
@Test
void testMinimumCharacters() {
CTabFolder folderToTest = createTestCTabFolder("CTabFolder { swt-tab-text-minimum-characters: 1}");
assertEquals(1, folderToTest.getMinimumCharacters());
- assertEquals("1", engine.retrieveCSSProperty(folderToTest, "swt-tab-text-minimum-characters", null));
+ assertEquals("1", css.getEngine().retrieveCSSProperty(folderToTest, "swt-tab-text-minimum-characters", null));
folderToTest = createTestCTabFolder("CTabFolder { swt-tab-text-minimum-characters: 1.2}");
assertEquals(1, folderToTest.getMinimumCharacters());
- assertEquals("1", engine.retrieveCSSProperty(folderToTest, "swt-tab-text-minimum-characters", null));
+ assertEquals("1", css.getEngine().retrieveCSSProperty(folderToTest, "swt-tab-text-minimum-characters", null));
}
}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemSelectionTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemSelectionTest.java
index 51734ed82a3..bf3402db44c 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemSelectionTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemSelectionTest.java
@@ -13,39 +13,45 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/**
* Pins {@code CTabItem:selected} pseudo behaviour and the
* {@code CTabFolderElement} selection listener path.
*/
-public class CTabItemSelectionTest extends CSSSWTTestCase {
+public class CTabItemSelectionTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private Shell shell;
- @Override
@AfterEach
public void tearDown() {
if (shell != null && !shell.isDisposed()) {
shell.dispose();
shell = null;
}
- super.tearDown();
}
private void spinEventLoop() {
// Drain queued SWT events. Same pattern as CTabItemTest.
+ Display display = css.getDisplay();
for (int i = 0; i < 3; i++) {
while (display.readAndDispatch()) {
}
@@ -57,6 +63,7 @@ private void spinEventLoop() {
}
private CTabFolder createFolderWithTwoItems(String styleSheet) {
+ Display display = css.getDisplay();
shell = new Shell(display, SWT.SHELL_TRIM);
shell.setLayout(new FillLayout());
@@ -67,7 +74,7 @@ private CTabFolder createFolderWithTwoItems(String styleSheet) {
item1.setText("Item 1");
folder.setSelection(0);
- engine = createEngine(styleSheet, display);
+ CSSEngine engine = css.createEngine(styleSheet);
engine.applyStyles(shell, true);
shell.open();
return folder;
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemTest.java
index 74e7d625bd8..15d02d3b6a1 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CTabItemTest.java
@@ -33,29 +33,32 @@
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class CTabItemTest extends CSSSWTTestCase {
+public class CTabItemTest {
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private Shell shell;
- @Override
@AfterEach
public void tearDown() {
if (shell != null) {
shell.dispose();
shell = null;
}
- super.tearDown();
}
private void spinEventLoop() {
// Workaround for https://bugs.eclipse.org/418101 and https://bugs.eclipse.org/403234 :
// Add some delay to allow asynchronous events to come in, but don't get trapped in an endless Display#sleep().
+ Display display = css.getDisplay();
for (int i = 0; i < 3; i++) {
while (display.readAndDispatch()) {
}
@@ -82,6 +85,7 @@ private CTabFolder createFolder(Composite composite) {
private CTabFolder createTestTabFolder(boolean open) {
// Create widgets
+ Display display = css.getDisplay();
shell = new Shell(display, SWT.SHELL_TRIM);
FillLayout layout = new FillLayout();
shell.setLayout(layout);
@@ -101,7 +105,7 @@ private CTabFolder createTestTabFolder(String styleSheet) {
protected CTabFolder createTestTabFolder(String styleSheet, boolean open) {
CTabFolder folder = createTestTabFolder(open);
- engine = createEngine(styleSheet, folder.getDisplay());
+ CSSEngine engine = css.createEngine(styleSheet);
// Apply styles
engine.applyStyles(folder.getShell(), true);
@@ -113,6 +117,7 @@ protected CTabFolder createTestTabFolder(String styleSheet, boolean open) {
void testFontRegular() {
CTabFolder folder = createTestTabFolder("Button { font-family: Verdana; font-size: 12 }\n"
+ "CTabItem { font-family: Verdana; font-size: 16 }");
+ CSSEngine engine = css.getEngine();
spinEventLoop();
folder.getItems();
assertEquals(0, folder.getSelectionIndex());
@@ -138,6 +143,7 @@ void testFontRegular() {
void testFontBold() {
CTabFolder folder = createTestTabFolder("Button { font-weight: bold }\n"
+ "CTabItem { font-weight: bold }");
+ CSSEngine engine = css.getEngine();
spinEventLoop();
assertEquals(0, folder.getSelectionIndex());
@@ -158,6 +164,7 @@ void testFontBold() {
void testFontItalic() {
CTabFolder folder = createTestTabFolder("Button { font-weight: bold }\n"
+ "CTabItem { font-style: italic }");
+ CSSEngine engine = css.getEngine();
spinEventLoop();
assertEquals(0, folder.getSelectionIndex());
@@ -250,11 +257,11 @@ void testFontsEditorStackClass() {
CTabFolder folder2 = createFolder(folder.getShell());
WidgetElement.setCSSClass(folder2, "editorStack");
- engine = createEngine("""
+ CSSEngine engine = css.createEngine("""
CTabItem { font-size: 10 }\
CTabItem:selected { font-size: 14; font-weight: bold }\
CTabFolder.editorStack CTabItem { font-size: 11; }\
- CTabFolder.editorStack CTabItem:selected { font-size: 13; font-style: italic }""", folder.getDisplay());
+ CTabFolder.editorStack CTabItem:selected { font-size: 13; font-style: italic }""");
engine.applyStyles(folder.getShell(), true);
folder.getShell().open();
@@ -306,13 +313,12 @@ void testFontsEditorStackClass2() {
CTabFolder folder2 = createFolder(folder.getShell());
WidgetElement.setCSSClass(folder2, "editorStack");
- engine = createEngine(
+ CSSEngine engine = css.createEngine(
"""
CTabItem { font-size: 10 }\
CTabItem:selected { font-size: 14; font-weight: bold }\
CTabFolder.editorStack CTabItem { font-size: 11; }\
- CTabFolder.editorStack CTabItem:selected { font-size: 13; font-weight: normal; font-style: italic }""",
- folder.getDisplay());
+ CTabFolder.editorStack CTabItem:selected { font-size: 13; font-weight: normal; font-style: italic }""");
engine.applyStyles(folder.getShell(), true);
folder.getShell().open();
@@ -364,10 +370,10 @@ void testShowCloseEditorStack() {
CTabFolder folder2 = createFolder(folder.getShell());
WidgetElement.setCSSClass(folder2, "editorStack");
- engine = createEngine("""
+ CSSEngine engine = css.createEngine("""
CTabItem { show-close: false }\
CTabItem:selected { show-close: true }\
- CTabFolder.editorStack CTabItem { show-close: true }""", folder.getDisplay());
+ CTabFolder.editorStack CTabItem { show-close: true }""");
engine.applyStyles(folder.getShell(), true);
folder.getShell().open();
@@ -405,11 +411,11 @@ void testShowCloseViewStack() {
CTabFolder folder2 = createFolder(folder.getShell());
WidgetElement.setCSSClass(folder2, "viewStack");
- engine = createEngine("""
+ CSSEngine engine = css.createEngine("""
CTabItem { show-close: false }\
CTabItem:selected { show-close: true }\
CTabFolder.viewStack CTabItem { show-close: false }\
- CTabFolder.viewStack CTabItem.selected { show-close: true }""", folder.getDisplay());
+ CTabFolder.viewStack CTabItem.selected { show-close: true }""");
engine.applyStyles(folder.getShell(), true);
folder.getShell().open();
@@ -448,6 +454,7 @@ void testShowCloseViewStack() {
@Test
void testBackground() {
CTabFolder folder = createTestTabFolder("CTabItem { background-color: #0000ff }", false);
+ CSSEngine engine = css.getEngine();
assertEquals(new RGB(0, 0, 255), folder.getBackground().getRGB());
for (CTabItem item : folder.getItems()) {
@@ -469,7 +476,7 @@ void testBackground2() {
colour = "#00ff00";
}
- CSSEngine engine = createEngine("CTabItem { background-color: " + colour + " }", folder.getDisplay());
+ CSSEngine engine = css.createEngine("CTabItem { background-color: " + colour + " }");
engine.applyStyles(folder, true);
assertEquals(rgb, folder.getBackground().getRGB());
@@ -484,6 +491,7 @@ void testBackground2() {
@Test
void testSelectionBackground() {
CTabFolder folder = createTestTabFolder("CTabItem:selected { background-color: #00ff00 }", false);
+ CSSEngine engine = css.getEngine();
assertEquals(new RGB(0, 255, 0), folder.getSelectionBackground().getRGB());
for (CTabItem item : folder.getItems()) {
@@ -494,6 +502,7 @@ void testSelectionBackground() {
@Test
void testForeground() {
CTabFolder folder = createTestTabFolder("CTabItem { color: #0000ff }", false);
+ CSSEngine engine = css.getEngine();
assertEquals(new RGB(0, 0, 255), folder.getForeground().getRGB());
for (CTabItem item : folder.getItems()) {
@@ -516,7 +525,7 @@ void testForeground2() {
colour = "#00ff00";
}
- CSSEngine engine = createEngine("CTabItem { color: " + colour + " }", folder.getDisplay());
+ CSSEngine engine = css.createEngine("CTabItem { color: " + colour + " }");
engine.applyStyles(folder, true);
assertEquals(rgb, folder.getForeground().getRGB());
@@ -531,6 +540,7 @@ void testForeground2() {
@Test
void testSelectionForeground() {
CTabFolder folder = createTestTabFolder("CTabItem:selected { color: #00ff00 }", false);
+ CSSEngine engine = css.getEngine();
assertEquals(new RGB(0, 255, 0), folder.getSelectionForeground().getRGB());
for (CTabItem item : folder.getItems()) {
@@ -541,6 +551,7 @@ void testSelectionForeground() {
@Test
void testParent() {
CTabFolder folder = createTestTabFolder("CTabItem:selected { color: #00ff00 }", false);
+ CSSEngine engine = css.getEngine();
for (CTabItem item : folder.getItems()) {
CTabItemElement element = (CTabItemElement) engine.getElement(item);
assertNotNull(element.getParentNode());
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ColorDefinitionTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ColorDefinitionTest.java
index b4d87457817..8e607614877 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ColorDefinitionTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ColorDefinitionTest.java
@@ -29,19 +29,23 @@
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.internal.themes.ColorDefinition;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
import org.osgi.framework.FrameworkUtil;
-public class ColorDefinitionTest extends CSSSWTTestCase {
+public class ColorDefinitionTest {
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
@Test
void testColorDefinition() {
//given
- CSSEngine engine = createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: green}", display);
+ CSSEngine engine = css.createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: green}");
ColorDefinition definition = colorDefinition("ACTIVE_HYPERLINK_COLOR", "name", "categoryId", "description");
assertEquals(new RGB(0, 0, 0), definition.getValue());
@@ -62,8 +66,8 @@ void testColorDefinition() {
@Test
void testColorDefinitionWhenNameCategoryIdAndDescriptionOverridden() {
// given
- CSSEngine engine = createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: green;" +
- "label:'nameOverridden'; category:'#categoryIdOverridden'; description: 'descriptionOverridden'}", display);
+ CSSEngine engine = css.createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: green;" +
+ "label:'nameOverridden'; category:'#categoryIdOverridden'; description: 'descriptionOverridden'}");
ColorDefinition definition = colorDefinition("ACTIVE_HYPERLINK_COLOR","name", "categoryId", "description");
assertEquals(new RGB(0, 0, 0), definition.getValue());
@@ -84,7 +88,7 @@ void testColorDefinitionWhenNameCategoryIdAndDescriptionOverridden() {
@Test
void testColorDefinitionWhenDefinitionStylesheetNotFound() {
//given
- CSSEngine engine = createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: green}", display);
+ CSSEngine engine = css.createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: green}");
ColorDefinition definition = colorDefinition("color definition uniqueId without matching stylesheet",
"name", "categoryId", "description");
@@ -105,7 +109,8 @@ void testWidgetWithColorDefinitionAsBackgroundColor() {
//given
registerColorProviderWith("ACTIVE_HYPERLINK_COLOR", new RGB(255, 0, 0));
- CSSEngine engine = createEngine("Label {background-color: '#ACTIVE_HYPERLINK_COLOR'}", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("Label {background-color: '#ACTIVE_HYPERLINK_COLOR'}");
Shell shell = new Shell(display, SWT.SHELL_TRIM);
Label label = new Label(shell, SWT.NONE);
@@ -123,7 +128,8 @@ void testWidgetWithColorDefinitionAsBackgroundColor() {
@Test
void testUnset() {
- CSSEngine engine = createEngine("Button {background-color: unset;}", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("Button {background-color: unset;}");
Shell shell = new Shell(display, SWT.SHELL_TRIM);
Button button = new Button(shell, SWT.NONE);
@@ -147,8 +153,8 @@ void testUnset() {
@Test
void testSetColorDefinitionWithSystemColor() {
// given
- CSSEngine engine = createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: '#COLOR-LIST-SELECTION'}",
- display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("ColorDefinition#ACTIVE_HYPERLINK_COLOR{color: '#COLOR-LIST-SELECTION'}");
ColorDefinition definition = colorDefinition("ACTIVE_HYPERLINK_COLOR", "name", "categoryId", "description");
assertEquals(new RGB(0, 0, 0), definition.getValue());
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CompositeTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CompositeTest.java
index e91bcc66707..d334f88a692 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CompositeTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CompositeTest.java
@@ -13,19 +13,27 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.BLUE;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class CompositeTest extends CSSSWTTestCase {
+public class CompositeTest {
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
protected Composite createTestComposite(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -43,7 +51,8 @@ protected Composite createTestComposite(String styleSheet) {
}
protected Composite createTestCompositeAsInnerClass(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CSSSWTTestCase.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CssSwtEngine.java
similarity index 68%
rename from tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CSSSWTTestCase.java
rename to tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CssSwtEngine.java
index ebdada17265..42ab6b2bae6 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CSSSWTTestCase.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/CssSwtEngine.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2016 IBM Corporation and others.
+ * Copyright (c) 2026 Lars Vogel and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -9,8 +9,7 @@
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
- * IBM Corporation - initial API and implementation
- * Thibault Le Ouay - Bug 443094
+ * Lars Vogel - initial API and implementation
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
@@ -28,20 +27,32 @@
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-
-public class CSSSWTTestCase {
+import org.junit.jupiter.api.extension.AfterEachCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
+
+/**
+ * JUnit 5 extension that provides a shared {@link Display}, creates SWT CSS
+ * engines from a style sheet, offers small widget helpers, and disposes any
+ * open shells after each test.
+ */
+public class CssSwtEngine implements AfterEachCallback {
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
static final RGB BLUE = new RGB(0, 0, 255);
static final RGB WHITE = new RGB(255, 255, 255);
+ private final Display display = Display.getDefault();
+ private CSSEngine engine;
+
+ public Display getDisplay() {
+ return display;
+ }
- protected Display display;
- protected CSSEngine engine;
+ public CSSEngine getEngine() {
+ return engine;
+ }
- public CSSEngine createEngine(String styleSheet, Display display) {
+ public CSSEngine createEngine(String styleSheet) {
engine = new CSSSWTEngineImpl(display);
engine.setErrorHandler(e -> fail(e.getMessage()));
@@ -52,27 +63,11 @@ public CSSEngine createEngine(String styleSheet, Display display) {
fail(e.getMessage());
}
return engine;
-
- }
-
- @BeforeEach
- public void setUp() {
- display = Display.getDefault();
- }
-
- @AfterEach
- public void tearDown() {
- if (!display.isDisposed()) {
- for (Shell shell : display.getShells()) {
- shell.dispose();
- }
- }
}
- protected Label createTestLabel(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ public Label createTestLabel(String styleSheet) {
+ engine = createEngine(styleSheet);
- // Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
FillLayout layout = new FillLayout();
shell.setLayout(layout);
@@ -83,10 +78,18 @@ protected Label createTestLabel(String styleSheet) {
Label labelToTest = new Label(panel, SWT.NONE);
labelToTest.setText("Some label text");
- // Apply styles
engine.applyStyles(labelToTest, true);
shell.pack();
return labelToTest;
}
+
+ @Override
+ public void afterEach(ExtensionContext context) {
+ if (!display.isDisposed()) {
+ for (Shell shell : display.getShells()) {
+ shell.dispose();
+ }
+ }
+ }
}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/DescendentTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/DescendentTest.java
index 7464780c703..68e9db4186f 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/DescendentTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/DescendentTest.java
@@ -16,16 +16,22 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.dom.WidgetElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class DescendentTest extends CSSSWTTestCase {
+public class DescendentTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
@@ -35,7 +41,8 @@ public class DescendentTest extends CSSSWTTestCase {
protected Button[] createTestWidgets(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -68,7 +75,7 @@ void testDescendentSpecificity() {
Button buttonC = buttons[2];
WidgetElement.setCSSClass(buttonA.getParent(), "special");
- engine.applyStyles(buttonA.getShell(), true);
+ css.getEngine().applyStyles(buttonA.getShell(), true);
assertEquals(RED, buttonA.getBackground().getRGB());
assertEquals(GREEN, buttonB.getBackground().getRGB());
@@ -77,7 +84,7 @@ void testDescendentSpecificity() {
WidgetElement.setCSSClass(buttonA.getParent(), "extraordinary");
WidgetElement.setID(buttonB.getParent(), "parent");
- engine.applyStyles(buttonA.getShell(), true);
+ css.getEngine().applyStyles(buttonA.getShell(), true);
assertEquals(WHITE, buttonA.getBackground().getRGB());
assertEquals(BLACK, buttonB.getBackground().getRGB());
}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/FontDefinitionTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/FontDefinitionTest.java
index 8295ca493d1..3b991aab5cd 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/FontDefinitionTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/FontDefinitionTest.java
@@ -24,24 +24,29 @@
import java.util.Hashtable;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.internal.css.swt.definition.IColorAndFontProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.internal.themes.FontDefinition;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
import org.osgi.framework.FrameworkUtil;
-public class FontDefinitionTest extends CSSSWTTestCase {
+public class FontDefinitionTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
@Test
void testFontDefinition() {
//given
- engine = createEngine(
- "FontDefinition#org-eclipse-jface-bannerfont {font-family: 'Times';font-size: 12;font-style: italic;font-weight: bold;}",
- display);
+ CSSEngine engine = css.createEngine(
+ "FontDefinition#org-eclipse-jface-bannerfont {font-family: 'Times';font-size: 12;font-style: italic;font-weight: bold;}");
FontDefinition definition = fontDefinition("org.eclipse.jface.bannerfont", "name", "categoryId","description");
assertNull(definition.getValue());
@@ -64,10 +69,10 @@ void testFontDefinition() {
@Test
void testFontDefinitionWhenNameCategoryIdAndDescriptionOverridden() {
// given
- engine = createEngine(
+ CSSEngine engine = css.createEngine(
"FontDefinition#org-eclipse-jface-bannerfont {font-family: 'Times';font-size: 12;font-style: italic; font-weight: bold;"
+
- " label:'nameOverridden'; category: '#categoryIdOverridden'; description: 'descriptionOverridden'}", display);
+ " label:'nameOverridden'; category: '#categoryIdOverridden'; description: 'descriptionOverridden'}");
FontDefinition definition = fontDefinition("org.eclipse.jface.bannerfont", "name", "categoryId", "description");
assertNull(definition.getValue());
@@ -90,9 +95,8 @@ void testFontDefinitionWhenNameCategoryIdAndDescriptionOverridden() {
@Test
void testFontDefinitionWhenDefinitionStylesheetNotFound() {
//given
- engine = createEngine(
- "FontDefinition#org-eclipse-jface-bannerfont {font-family: 'Times';font-size: 12;font-style: italic;}",
- display);
+ CSSEngine engine = css.createEngine(
+ "FontDefinition#org-eclipse-jface-bannerfont {font-family: 'Times';font-size: 12;font-style: italic;}");
FontDefinition definition = fontDefinition("font definition uniqueId without matching stylesheet", "name", "categoryId", "description");
assertNull(definition.getValue());
@@ -111,7 +115,8 @@ void testWidgetWithFontDefinitionAsFontFamily() {
//given
registerFontProviderWith("org.eclipse.jface.bannerfont", new FontData("Times", 12, SWT.ITALIC));
- engine = createEngine("Label {font-family: '#org-eclipse-jface-bannerfont'}", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("Label {font-family: '#org-eclipse-jface-bannerfont'}");
Shell shell = new Shell(display, SWT.SHELL_TRIM);
Label label = new Label(shell, SWT.NONE);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/GradientTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/GradientTest.java
index 1a81394ee24..484bef03783 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/GradientTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/GradientTest.java
@@ -19,6 +19,7 @@
import java.lang.reflect.Field;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
@@ -26,8 +27,10 @@
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/**
* Test gradient capabilities.
@@ -36,7 +39,10 @@
* to test it's doing the right thing.
*/
-public class GradientTest extends CSSSWTTestCase {
+public class GradientTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
@@ -44,7 +50,8 @@ public class GradientTest extends CSSSWTTestCase {
static final RGB WHITE = new RGB(255, 255, 255);
protected CTabFolder createTestCTabFolder(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesPseudoKeyTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesPseudoKeyTest.java
index 28a584e8d96..5d851688017 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesPseudoKeyTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesPseudoKeyTest.java
@@ -17,24 +17,28 @@
import org.eclipse.core.internal.preferences.EclipsePreferences;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/**
* Locks in the {@code IEclipsePreferences#node:pseudo} selector form used by
* shipped themes. See Bug 466075.
*/
-public class IEclipsePreferencesPseudoKeyTest extends CSSSWTTestCase {
+public class IEclipsePreferencesPseudoKeyTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
@Test
void testPseudoSelectorMatchesAndWritesPreferenceValue() {
IEclipsePreferences preferences = new EclipsePreferences(null, "org.eclipse.jdt.ui") {};
- engine = createEngine(
+ CSSEngine engine = css.createEngine(
"""
IEclipsePreferences#org-eclipse-jdt-ui:org-eclipse-ui-themes {\
preferences: 'semanticHighlighting.abstractClass.color=128,255,0'\
- }""",
- display);
+ }""");
engine.applyStyles(preferences, false);
// Bug 466075
@@ -47,15 +51,14 @@ void testDifferentPseudosOnSameNodeAllContribute() {
// contribute to the same preference node via different pseudo tags.
IEclipsePreferences preferences = new EclipsePreferences(null, "org.eclipse.ui.workbench") {};
- engine = createEngine(
+ CSSEngine engine = css.createEngine(
"""
IEclipsePreferences#org-eclipse-ui-workbench:org-eclipse-ui-editors {\
preferences: 'org.eclipse.ui.editors.inlineAnnotationColor=155,155,155'\
}\
IEclipsePreferences#org-eclipse-ui-workbench:org-eclipse-ui-themes {\
preferences: 'ERROR_COLOR=247,68,117'\
- }""",
- display);
+ }""");
engine.applyStyles(preferences, false);
assertEquals("155,155,155", preferences.get("org.eclipse.ui.editors.inlineAnnotationColor", null));
@@ -71,15 +74,14 @@ void testCascadeOverrideForSameKeyAndSamePseudoLastWins() {
// rule wins. This matches standard CSS source-order tiebreak.
IEclipsePreferences preferences = new EclipsePreferences(null, "org.eclipse.jdt.ui") {};
- engine = createEngine(
+ CSSEngine engine = css.createEngine(
"""
IEclipsePreferences#org-eclipse-jdt-ui:org-eclipse-ui-themes {\
preferences: 'semanticHighlighting.abstractClass.color=128,255,0'\
}\
IEclipsePreferences#org-eclipse-jdt-ui:org-eclipse-ui-themes {\
preferences: 'semanticHighlighting.abstractClass.color=255,0,0'\
- }""",
- display);
+ }""");
engine.applyStyles(preferences, false);
assertEquals("255,0,0", preferences.get("semanticHighlighting.abstractClass.color", null));
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesTest.java
index e0ede18b14d..89d4fc33a1d 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IEclipsePreferencesTest.java
@@ -18,23 +18,28 @@
import org.eclipse.core.internal.preferences.EclipsePreferences;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class IEclipsePreferencesTest extends CSSSWTTestCase {
+public class IEclipsePreferencesTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
@Test
void testIEclipsePreferences() {
// given
IEclipsePreferences preferences = new EclipsePreferences(null, "org.eclipse.jdt.ui") {};
- engine = createEngine(
+ CSSEngine engine = css.createEngine(
"""
IEclipsePreferences#org-eclipse-jdt-ui{preferences:\
'semanticHighlighting.abstractClass.color=128,255,0',\
'java_bracket=0,255,255',\
'java_bracket_italic=true',\
'java_bracket_underline='\
- }""", display);
+ }""");
// when
engine.applyStyles(preferences, false);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IdClassLabelColorTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IdClassLabelColorTest.java
index d4e3ce0613a..ae8eedafb3f 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IdClassLabelColorTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/IdClassLabelColorTest.java
@@ -16,20 +16,26 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.dom.WidgetElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/*
* Tests the CSS class and Id rules
*/
-public class IdClassLabelColorTest extends CSSSWTTestCase {
+public class IdClassLabelColorTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
@@ -38,9 +44,9 @@ public class IdClassLabelColorTest extends CSSSWTTestCase {
static final String CSS_CLASS_NAME = "makeItGreenClass";
static final String CSS_ID = "makeItBlueID";
- @Override
protected Label createTestLabel(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InheritTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InheritTest.java
index 04b4806b2be..0b6e1b8073a 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InheritTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InheritTest.java
@@ -16,18 +16,23 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class InheritTest extends CSSSWTTestCase {
+public class InheritTest {
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private Color redColor;
@@ -36,11 +41,7 @@ public class InheritTest extends CSSSWTTestCase {
static final RGB RED = new RGB(255, 0, 0);
@BeforeEach
- @Override
public void setUp() {
- super.setUp();
-
-
redColor = new Color(RED);
}
@@ -102,7 +103,8 @@ void testBackgroundInheritsAlsoExplicitlySetColors()
*/
private Label createTestLabel(String styleSheet,
boolean setCompositeBackgroundExplicitly) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InnerClassElementTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InnerClassElementTest.java
index 97dad6f0d6f..ed73615cae7 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InnerClassElementTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/InnerClassElementTest.java
@@ -17,15 +17,20 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class InnerClassElementTest extends CSSSWTTestCase {
+public class InnerClassElementTest {
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
// create an inner class to address via CSS
static class CustomComposite extends Composite {
@@ -34,9 +39,9 @@ public CustomComposite(Composite parent, int style) {
}
}
- @Override
protected Label createTestLabel(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LabelTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LabelTest.java
index 536fb97d03d..1b8df965114 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LabelTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LabelTest.java
@@ -15,25 +15,31 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.BLUE;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Label;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class LabelTest extends CSSSWTTestCase {
+public class LabelTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
@Test
void testColor() {
- Label labelToTest = createTestLabel("Label { background-color: #FF0000; color: #0000FF }");
+ Label labelToTest = css.createTestLabel("Label { background-color: #FF0000; color: #0000FF }");
assertEquals(RED, labelToTest.getBackground().getRGB());
assertEquals(BLUE, labelToTest.getForeground().getRGB());
}
@Test
void testFontRegular() {
- Label labelToTest = createTestLabel("Label { font: Verdana 16px }");
+ Label labelToTest = css.createTestLabel("Label { font: Verdana 16px }");
assertEquals(1, labelToTest.getFont().getFontData().length);
FontData fontData = labelToTest.getFont().getFontData()[0];
assertEquals("Verdana", fontData.getName());
@@ -43,7 +49,7 @@ void testFontRegular() {
@Test
void testFontBold() {
- Label labelToTest = createTestLabel("Label { font: Arial 12px; font-weight: bold }");
+ Label labelToTest = css.createTestLabel("Label { font: Arial 12px; font-weight: bold }");
assertEquals(1, labelToTest.getFont().getFontData().length);
FontData fontData = labelToTest.getFont().getFontData()[0];
assertEquals("Arial", fontData.getName());
@@ -53,7 +59,7 @@ void testFontBold() {
@Test
void testFontItalic() {
- Label labelToTest = createTestLabel("Label { font-style: italic }");
+ Label labelToTest = css.createTestLabel("Label { font-style: italic }");
assertEquals(1, labelToTest.getFont().getFontData().length);
FontData fontData = labelToTest.getFont().getFontData()[0];
assertEquals(SWT.ITALIC, fontData.getStyle());
@@ -61,23 +67,23 @@ void testFontItalic() {
@Test
void testAlignment() {
- Label labelToTest = createTestLabel("Label { swt-alignment: right }");
+ Label labelToTest = css.createTestLabel("Label { swt-alignment: right }");
assertEquals(SWT.RIGHT, labelToTest.getAlignment());
- labelToTest = createTestLabel("Label { swt-alignment: center; }");
+ labelToTest = css.createTestLabel("Label { swt-alignment: center; }");
assertEquals(SWT.CENTER, labelToTest.getAlignment());
- labelToTest = createTestLabel("Label { swt-alignment: left; }");
+ labelToTest = css.createTestLabel("Label { swt-alignment: left; }");
assertEquals(SWT.LEFT, labelToTest.getAlignment());
}
@Test
void testAlignment2() {
- Label labelToTest = createTestLabel("Label { swt-alignment: trail }");
+ Label labelToTest = css.createTestLabel("Label { swt-alignment: trail }");
assertEquals(SWT.TRAIL, labelToTest.getAlignment());
- labelToTest = createTestLabel("Label { swt-alignment: lead; }");
+ labelToTest = css.createTestLabel("Label { swt-alignment: lead; }");
assertEquals(SWT.LEAD, labelToTest.getAlignment());
}
}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LinkTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LinkTest.java
index 141f8c3fa3e..ba3d031ea91 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LinkTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LinkTest.java
@@ -14,19 +14,29 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.BLUE;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.GREEN;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class LinkTest extends CSSSWTTestCase {
+public class LinkTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private Link createTestLink(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/MarginTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/MarginTest.java
index 46a1bd98fb0..ef818ed5aee 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/MarginTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/MarginTest.java
@@ -17,6 +17,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.CSSSWTConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
@@ -24,10 +25,15 @@
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class MarginTest extends CSSSWTTestCase {
+public class MarginTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
private static final RGB RED = new RGB(255, 0, 0);
@@ -37,7 +43,8 @@ public class MarginTest extends CSSSWTTestCase {
private static final int LEFT = 3;
protected Control createTestControl(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -62,7 +69,8 @@ protected Control createTestControl(String styleSheet) {
}
protected Control createBadControlNoLayout(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
Shell shell = new Shell(display, SWT.SHELL_TRIM);
Composite panel = new Composite(shell, SWT.NONE);
@@ -76,7 +84,8 @@ protected Control createBadControlNoLayout(String styleSheet) {
}
protected Control createBadControlNoComposite(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
Shell shell = new Shell(display, SWT.SHELL_TRIM);
//No composite
@@ -88,7 +97,8 @@ protected Control createBadControlNoComposite(String styleSheet) {
}
protected Control createBadControlNoKey(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/PaddingTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/PaddingTest.java
index 3ed8f3e0fc9..e2cc9428325 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/PaddingTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/PaddingTest.java
@@ -17,6 +17,7 @@
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabFolderRenderer;
@@ -24,8 +25,10 @@
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/**
* Tests for {@code CSSPropertyPaddingSWTHandler}. Padding only takes effect
@@ -35,7 +38,10 @@
* reflection. The default {@link CTabFolderRenderer} does not expose those
* methods, so the test installs a capturing subclass that does.
*/
-public class PaddingTest extends CSSSWTTestCase {
+public class PaddingTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
/**
* Captures arguments passed to the reflective {@code setPadding} call.
@@ -63,7 +69,8 @@ public void setPadding(int left, int right, int top, int bottom) {
}
private CapturingRenderer applyToCapturingFolder(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
Shell shell = new Shell(display, SWT.SHELL_TRIM);
shell.setLayout(new FillLayout());
CTabFolder folder = new CTabFolder(shell, SWT.NONE);
@@ -124,7 +131,8 @@ void testPaddingOnNonCTabFolderIsSilentlyIgnored() {
// setPadding helper only acts on CTabFolder, every other widget is a
// no-op.
assertDoesNotThrow(() -> {
- engine = createEngine("Button { padding: 10px }", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("Button { padding: 10px }");
Shell shell = new Shell(display, SWT.SHELL_TRIM);
shell.setLayout(new FillLayout());
Composite panel = new Composite(shell, SWT.NONE);
@@ -141,7 +149,8 @@ void testPaddingOnDefaultRendererIsSilentlyIgnored() {
// is caught and swallowed. Locks in this behaviour: applying padding
// to a folder with the default renderer must not surface an error.
assertDoesNotThrow(() -> {
- engine = createEngine("CTabFolder { padding: 10px 20px }", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("CTabFolder { padding: 10px 20px }");
Shell shell = new Shell(display, SWT.SHELL_TRIM);
shell.setLayout(new FillLayout());
new CTabFolder(shell, SWT.NONE);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellActiveTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellActiveTest.java
index cceeb735a98..0db2c93ff1e 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellActiveTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellActiveTest.java
@@ -16,20 +16,27 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
@Disabled("see bug #273582")
-public class ShellActiveTest extends CSSSWTTestCase {
+public class ShellActiveTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB BLUE = new RGB(0, 0, 255);
protected Shell createShell(String styleSheet) {
- createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.NONE);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellTest.java
index 6566d761e29..7a387bc6c42 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ShellTest.java
@@ -19,23 +19,30 @@
import java.util.HashSet;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.dom.WidgetElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class ShellTest extends CSSSWTTestCase {
+public class ShellTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
static final RGB BLUE = new RGB(0, 0, 255);
protected Shell createTestShell(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
@@ -91,7 +98,8 @@ void testFontItalic() {
// bug 375069: ensure children aren't caught up in parent
@Test
void test375069ChildShellDifferentiation() {
- engine = createEngine("Shell.parent { font-style: italic; }", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("Shell.parent { font-style: italic; }");
Shell parent = new Shell(display, SWT.NONE);
WidgetElement.setCSSClass(parent, "parent");
@@ -115,7 +123,8 @@ void test375069ChildShellDifferentiation() {
// bug 375069: ensure children shells are still captured by Shell
@Test
void test375069AllShell() {
- engine = createEngine("Shell { font-style: italic; }", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine("Shell { font-style: italic; }");
Shell parent = new Shell(display, SWT.NONE);
WidgetElement.setCSSClass(parent, "parent");
@@ -138,8 +147,9 @@ void test375069AllShell() {
// bug 375069: ensure children shells are still captured by Shell
@Test
void testShellParentage() {
- engine = createEngine(
- "Shell[parentage='parent'] { font-style: italic; }", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(
+ "Shell[parentage='parent'] { font-style: italic; }");
Shell parent = new Shell(display, SWT.NONE);
WidgetElement.setID(parent, "parent");
@@ -161,8 +171,9 @@ void testShellParentage() {
@Test
void testShellUnparentedPseudoelement() {
- engine = createEngine(
- "Shell:swt-unparented { font-style: italic; }", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(
+ "Shell:swt-unparented { font-style: italic; }");
Shell parent = new Shell(display, SWT.NONE);
WidgetElement.setCSSClass(parent, "parent");
@@ -184,8 +195,9 @@ void testShellUnparentedPseudoelement() {
@Test
void testShellParentedPseudoelement() {
- engine = createEngine(
- "Shell:swt-parented { font-style: italic; }", display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(
+ "Shell:swt-parented { font-style: italic; }");
Shell parent = new Shell(display, SWT.NONE);
WidgetElement.setCSSClass(parent, "parent");
@@ -207,9 +219,9 @@ void testShellParentedPseudoelement() {
@Test
void testSwtDataClassAttribute() {
- engine = createEngine(
- "Shell[swt-data-class ~= 'java.util.HashSet'] { font-style: italic; }",
- display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(
+ "Shell[swt-data-class ~= 'java.util.HashSet'] { font-style: italic; }");
Shell parent = new Shell(display, SWT.NONE);
parent.setData(new HashSet<>());
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TableTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TableTest.java
index 27d28631e47..9c4e3b5d171 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TableTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TableTest.java
@@ -15,22 +15,29 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class TableTest extends CSSSWTTestCase {
+public class TableTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
static final RGB RED = new RGB(255, 0, 0);
static final RGB GREEN = new RGB(0, 255, 0);
static final RGB BLUE = new RGB(0, 0, 255);
protected Table createTestTable(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TextTransformTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TextTransformTest.java
index 8d424adcc90..6497a2e341d 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TextTransformTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TextTransformTest.java
@@ -16,12 +16,15 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/**
* Tests the text-transform property.
@@ -38,8 +41,10 @@
* text-transform specification from W3C
*
*/
-public abstract class TextTransformTest extends CSSSWTTestCase {
+public abstract class TextTransformTest {
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
/**
* Retrieves the name of the widget that is being tested, must not be
@@ -80,7 +85,8 @@ public abstract class TextTransformTest extends CSSSWTTestCase {
protected abstract void setText(Control control, String string);
private Control createTestControl(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemeTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemeTest.java
index 83a5720c3e2..8e89d991bed 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemeTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemeTest.java
@@ -29,6 +29,7 @@
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
@@ -37,15 +38,17 @@
import org.osgi.service.event.EventConstants;
import org.osgi.service.event.EventHandler;
-public class ThemeTest extends CSSSWTTestCase {
+public class ThemeTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
+
private BundleContext context;
private ServiceRegistration themeListenerRegistration;
private ServiceReference themeManagerReference;
- @Override
@BeforeEach
public void setUp() {
- super.setUp();
Bundle b = FrameworkUtil.getBundle(this.getClass());
assertNotNull(b, "Not running in an OSGi environment");
context = b.getBundleContext();
@@ -54,11 +57,9 @@ public void setUp() {
.getServiceReference(IThemeManager.class);
}
- @Override
@AfterEach
public void tearDown() {
themeListenerRegistration.unregister();
- super.tearDown();
}
@Test
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemesExtensionTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemesExtensionTest.java
index 18c87560260..aaf48558654 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemesExtensionTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ThemesExtensionTest.java
@@ -19,20 +19,25 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.ui.internal.themes.ColorDefinition;
import org.eclipse.ui.internal.themes.FontDefinition;
import org.eclipse.ui.internal.themes.ThemesExtension;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class ThemesExtensionTest extends CSSSWTTestCase {
+public class ThemesExtensionTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
@Test
void testThemesExtension() {
//given
- engine = createEngine(
+ CSSEngine engine = css.createEngine(
"ThemesExtension {font-definition: '#org-eclipse-ui-workbench-FONT_DEF_1',"
+
- "'#org-eclipse-ui-workbench-FONT_DEF_2'; color-definition: '#org-eclipse-ui-workbench-COLOR_DEF_1';}", display);
+ "'#org-eclipse-ui-workbench-FONT_DEF_2'; color-definition: '#org-eclipse-ui-workbench-COLOR_DEF_1';}");
ThemesExtension themesExtention = new ThemesExtension();
//when
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ToolItemTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ToolItemTest.java
index 56b11e7d9f6..43284efa096 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ToolItemTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/ToolItemTest.java
@@ -13,22 +13,31 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.BLUE;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class ToolItemTest extends CSSSWTTestCase {
+public class ToolItemTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
protected ToolItem createTestToolItem(String styleSheet, int styleBit) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
var shell = new Shell(display, SWT.SHELL_TRIM);
@@ -70,7 +79,7 @@ void testSelectedPseudo() {
"ToolItem { color: #FF0000; }\n" + "ToolItem:checked { color: #0000FF; }", SWT.PUSH);
assertEquals(RED, toolItemToTest.getForeground().getRGB());
toolItemToTest.setSelection(true);
- engine.applyStyles(toolItemToTest, false);
+ css.getEngine().applyStyles(toolItemToTest, false);
assertEquals(BLUE, toolItemToTest.getForeground().getRGB());
}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TreeTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TreeTest.java
index 811a5095593..e9e413ee7b2 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TreeTest.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/TreeTest.java
@@ -13,19 +13,28 @@
*******************************************************************************/
package org.eclipse.e4.ui.tests.css.swt;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.BLUE;
+import static org.eclipse.e4.ui.tests.css.swt.CssSwtEngine.RED;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class TreeTest extends CSSSWTTestCase {
+public class TreeTest {
+
+ @RegisterExtension
+ CssSwtEngine css = new CssSwtEngine();
protected Tree createTestTree(String styleSheet) {
- engine = createEngine(styleSheet, display);
+ Display display = css.getDisplay();
+ CSSEngine engine = css.createEngine(styleSheet);
// Create widgets
Shell shell = new Shell(display, SWT.SHELL_TRIM);