Bug 516998 - Default enableThemePreference to true to allow styling of
e4 RCP without PartRenderingEngine#initialize
Adds tests to ensure styling continues to work
Change-Id: I23ea1bfbdf6bafe29adfb9731452d6b861f319f2
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
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 6ddabb8..0fb880d 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
@@ -18,6 +18,8 @@
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.eclipse.core.runtime;version="3.5.0",
+ org.eclipse.e4.core.contexts;version="1.6.0",
+ org.eclipse.e4.ui.internal.workbench.swt,
org.osgi.framework;version="1.7.0";resolution:=optional,
org.osgi.service.event;version="1.3.0";resolution:=optional
Eclipse-BundleShape: dir
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/css/cssfortest.css b/tests/org.eclipse.e4.ui.tests.css.swt/css/cssfortest.css
new file mode 100644
index 0000000..cc6a93f
--- /dev/null
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/css/cssfortest.css
@@ -0,0 +1,4 @@
+Label {
+ color:blue;
+ background:red;
+}
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/CssSwtTestSuite.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/CssSwtTestSuite.java
index 70ebf05..232ebae 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/CssSwtTestSuite.java
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/CssSwtTestSuite.java
@@ -39,6 +39,7 @@
import org.eclipse.e4.ui.tests.css.swt.InnerClassElementTest;
import org.eclipse.e4.ui.tests.css.swt.LabelTest;
import org.eclipse.e4.ui.tests.css.swt.LabelTextTransformTest;
+import org.eclipse.e4.ui.tests.css.swt.LifeCycleTest;
import org.eclipse.e4.ui.tests.css.swt.LinkTest;
import org.eclipse.e4.ui.tests.css.swt.MarginTest;
import org.eclipse.e4.ui.tests.css.swt.ShellActiveTest;
@@ -67,6 +68,7 @@
EclipsePreferencesHelperTest.class,
CSSSWTWidgetTest.class,
LabelTest.class,
+ LifeCycleTest.class,
LinkTest.class,
CTabFolderTest.class,
CTabItemTest.class,
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LifeCycleTest.java b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LifeCycleTest.java
new file mode 100644
index 0000000..c2fa1d5
--- /dev/null
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/src/org/eclipse/e4/ui/tests/css/swt/LifeCycleTest.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2017 vogella GmbH and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Lars Vogel <Lars.Vogel@vogella.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.e4.ui.tests.css.swt;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.e4.core.contexts.EclipseContextFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine;
+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.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.junit.Test;
+
+/**
+ * Test to ensure that the PartRenderingEngine can be used with an registered
+ * CSS engie. This is useful for example in an e4 lifecycle hook, in which the
+ * CSS engine is not yet initialized
+ *
+ */
+public class LifeCycleTest extends CSSSWTTestCase {
+
+ 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);
+ private Label label;
+
+ protected Shell createTestShell() {
+ IEclipseContext ctx = EclipseContextFactory.create();
+
+ String cssURI = "platform:/plugin/org.eclipse.e4.ui.tests.css.swt/css/cssfortest.css";
+ ctx.set("applicationCSS", cssURI);
+ Shell shell = new Shell(display, SWT.SHELL_TRIM);
+
+ // Create widgets
+ FillLayout layout = new FillLayout();
+ shell.setLayout(layout);
+ Composite panel = new Composite(shell, SWT.NONE);
+ panel.setLayout(new FillLayout());
+ label = new Label(panel, SWT.NONE);
+ label.setText("");
+
+
+ shell.pack();
+ PartRenderingEngine.initializeStyling(display, ctx);
+ return shell;
+ }
+
+
+ @Test
+ public void testLabelColorViaPartRenderingEngine() {
+ createTestShell();
+ assertEquals(RED, label.getBackground().getRGB());
+ assertEquals(BLUE, label.getForeground().getRGB());
+ }
+
+}
\ No newline at end of file