Bug 387640 - [CSS] Cannot use selector restrictions for CTabItem
(cherry picked from commit 1a1b8be4f8950537b64706e6edea3609c5be5c7e)
diff --git a/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/dom/CTabItemElement.java b/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/dom/CTabItemElement.java
index b21b583..2a333aa 100644
--- a/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/dom/CTabItemElement.java
+++ b/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/dom/CTabItemElement.java
@@ -1,14 +1,18 @@
 package org.eclipse.e4.ui.css.swt.dom;
 
 import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
 import org.eclipse.swt.widgets.Item;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 
 public class CTabItemElement extends ItemElement {
 
 	public CTabItemElement(Item item, CSSEngine engine) {
 		super(item, engine);
 	}
-	
+
 	protected void computeStaticPseudoInstances() {
 		super.computeStaticPseudoInstances();
 		// it's CTabFolder. Set selected as static pseudo instance.
@@ -18,4 +22,18 @@
 		super.addStaticPseudoInstance("selected");
 	}
 
+	public Node getParentNode() {
+		CTabItem item = getItem();
+		CTabFolder parent = item.getParent();
+		if (parent != null) {
+			Element element = getElement(parent);
+			return element;
+		}
+		return null;
+	}
+
+	private CTabItem getItem() {
+		return (CTabItem) getNativeWidget();
+	}
+
 }
diff --git a/tests/org.eclipse.e4.ui.tests.css.swt/CSS SWT Test Suite.launch b/tests/org.eclipse.e4.ui.tests.css.swt/CSS SWT Test Suite.launch
index d3f1070..a5fc55a 100644
--- a/tests/org.eclipse.e4.ui.tests.css.swt/CSS SWT Test Suite.launch
+++ b/tests/org.eclipse.e4.ui.tests.css.swt/CSS SWT Test Suite.launch
@@ -33,7 +33,6 @@
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.e4.ui.tests.css.swt.CssSwtTestSuite"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.e4.ui.tests.css.swt"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts"/>
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.sdk.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
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 430c454..9211c39 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
@@ -11,6 +11,7 @@
 package org.eclipse.e4.ui.tests.css.swt;
 
 import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.e4.ui.css.swt.dom.CTabItemElement;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 import org.eclipse.swt.custom.CTabItem;
@@ -647,4 +648,14 @@
 					folder.getItem(i), "color", "selected"));
 		}
 	}
+
+	public void testParent() {
+		CTabFolder folder = createTestTabFolder(
+				"CTabItem:selected { color: #00ff00 }", false);
+		for (int i = 0; i < folder.getItemCount(); i++) {
+			CTabItemElement element = (CTabItemElement) engine
+					.getElement(folder.getItem(i));
+			assertNotNull(element.getParentNode());
+		}
+	}
 }