/******************************************************************************* * Copyright (c) 2000, 2013 IBM Corporation 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: * IBM Corporation - initial API and implementation * Björn Michael <b.michael@gmx.de> - [syntax highlighting] Syntax coloring for abstract classes - https://bugs.eclipse.org/331311 * Björn Michael <b.michael@gmx.de> - [syntax highlighting] Add highlight for inherited fields - https://bugs.eclipse.org/348368 *******************************************************************************/ package org.eclipse.jdt.text.tests; import junit.framework.Test; import junit.framework.TestSuite; import org.eclipse.jface.text.Position; import org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightings; public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest { private static final Class<SemanticHighlightingTest> THIS= SemanticHighlightingTest.class; public static Test suite() { return new SemanticHighlightingTestSetup(new TestSuite(THIS), "/SHTest/src/SHTest.java"); } public void testDeprecatedMemberHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.DEPRECATED_MEMBER); Position[] expected= new Position[] { createPosition(0, 12, 13), createPosition(22, 5, 15), createPosition(24, 1, 13), createPosition(24, 15, 16), createPosition(25, 2, 15), createPosition(26, 2, 16), createPosition(27, 10, 10), createPosition(30, 7, 10), createPosition(30, 26, 13), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testStaticFinalFieldHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.STATIC_FINAL_FIELD); Position[] expected= new Position[] { createPosition(6, 18, 16), createPosition(35, 37, 16), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testStaticFieldHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.STATIC_FIELD); Position[] expected= new Position[] { createPosition(4, 12, 11), createPosition(6, 18, 16), createPosition(33, 32, 11), createPosition(35, 37, 16), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testFieldHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.FIELD); Position[] expected= new Position[] { createPosition( 3, 5, 5), createPosition( 4, 12, 11), createPosition( 5, 11, 10), createPosition( 6, 18, 16), createPosition(22, 5, 15), createPosition(25, 2, 15), createPosition(31, 9, 6), createPosition(32, 6, 11), createPosition(32, 31, 5), createPosition(33, 6, 17), createPosition(33, 32, 11), createPosition(34, 6, 16), createPosition(34, 36, 10), createPosition(35, 6, 22), createPosition(35, 37, 16), createPosition(48, 6, 14), createPosition(48, 22, 5), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testInheritedFieldHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.INHERITED_FIELD); Position[] expected= new Position[] { createPosition(48, 22, 5), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testNumberHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.NUMBER); Position[] expected= new Position[] { createPosition(5, 23, 1), createPosition(6, 36, 1), createPosition(8, 21, 1), createPosition(13, 19, 1), createPosition(13, 31, 2), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testMethodDeclarationHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.METHOD_DECLARATION); Position[] expected= new Position[] { createPosition(7, 6, 6), createPosition(19, 13, 12), createPosition(20, 15, 14), createPosition(24, 15, 16), createPosition(40, 4, 6), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testStaticMethodInvocationHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.STATIC_METHOD_INVOCATION); Position[] expected= new Position[] { createPosition(10, 2, 12), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } /* * [syntax highlighting] 'Abstract Method Invocation' highlighting also matches declaration * https://bugs.eclipse.org/bugs/show_bug.cgi?id=73353 */ public void testAbstractMethodInvocationHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.ABSTRACT_METHOD_INVOCATION); Position[] expected= new Position[] { createPosition(11, 2, 14), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testInheritedMethodInvocationHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.INHERITED_METHOD_INVOCATION); Position[] expected= new Position[] { createPosition(12, 2, 8), createPosition(15, 17, 8), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testLocalVariableDeclarationHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.LOCAL_VARIABLE_DECLARATION); Position[] expected= new Position[] { createPosition(7, 17, 5), createPosition(8, 6, 5), createPosition(13, 11, 6), createPosition(14, 26, 6), createPosition(41, 16, 4), createPosition(42, 20, 13), createPosition(43, 15, 7), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testLocalVariableHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.LOCAL_VARIABLE); Position[] expected= new Position[] { createPosition(7, 17, 5), createPosition(8, 6, 5), createPosition(8, 13, 5), createPosition(9, 2, 5), createPosition(13, 11, 6), createPosition(13, 22, 6), createPosition(13, 35, 6), createPosition(14, 26, 6), createPosition(15, 3, 5), createPosition(15, 10, 6), createPosition(16, 3, 6), createPosition(41, 16, 4), createPosition(42, 20, 13), createPosition(43, 15, 7), }; Position[] actual= getSemanticHighlightingPositions(); // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testParameterVariableHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.PARAMETER_VARIABLE); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition(7, 17, 5), createPosition(8, 13, 5), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testAnnotationElementHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.ANNOTATION_ELEMENT_REFERENCE); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition(38, 19, 5), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testTypeParameterHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.TYPE_VARIABLE); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition(39, 15, 1), createPosition(40, 2, 1), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testTypeArgumentHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.TYPE_ARGUMENT); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition(41, 8, 6), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testInterfaceHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.INTERFACE); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition(41, 3, 4), createPosition(42, 3, 16), // annotations are also interfaces }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testEnumHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.ENUM); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition(43, 3, 11), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testAnnotationHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.ANNOTATION); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition(38, 2, 16), createPosition(42, 3, 16), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testAbstractClassHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.ABSTRACT_CLASS); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition( 2, 15, 6), createPosition(31, 2, 6), createPosition(31, 17, 6), createPosition(32, 19, 6), createPosition(33, 25, 6), createPosition(34, 24, 6), createPosition(35, 30, 6), createPosition(39, 25, 6), createPosition(47, 23, 14), createPosition(47, 46, 6), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } public void testClassHighlighting() throws Exception { setUpSemanticHighlighting(SemanticHighlightings.CLASS); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { createPosition( 2, 15, 6), createPosition(14, 16, 9), createPosition(24, 1, 13), createPosition(27, 10, 10), createPosition(30, 7, 10), createPosition(30, 26, 13), createPosition(31, 2, 6), createPosition(31, 17, 6), createPosition(32, 19, 6), createPosition(33, 25, 6), createPosition(34, 24, 6), createPosition(35, 30, 6), createPosition(39, 7, 7), createPosition(39, 25, 6), createPosition(41, 8, 6), createPosition(47, 23, 14), createPosition(47, 46, 6), }; // System.out.println(toString(actual)); assertEqualPositions(expected, actual); } }