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 text-transform property.
@@ -38,8 +41,10 @@
* text-transform specification from W3C
*