1 /*******************************************************************************
2  * Copyright (c) 2005, 2017 IBM Corporation and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     IBM Corporation - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.ui.tests.markers;
15 import java.util.List;
16 
17 import org.eclipse.ui.views.markers.internal.MarkerFilter;
18 import org.eclipse.ui.views.markers.internal.MarkerType;
19 import org.eclipse.ui.views.markers.internal.ProblemFilter;
20 import org.junit.Test;
21 import org.junit.runner.RunWith;
22 import org.junit.runners.JUnit4;
23 
24 @RunWith(JUnit4.class)
25 public class DeclarativeFilterDeclarationTest extends DeclarativeFilterTest {
26 
27 	/**
28 	 * The DeclarativeFilterActivityTest is a test that the
29 	 * declarative filters are removed by activities
30 	 */
DeclarativeFilterDeclarationTest()31 	public DeclarativeFilterDeclarationTest() {
32 		super(DeclarativeFilterDeclarationTest.class.getSimpleName());
33 	}
34 
35 	/**
36 	 * Test the filter on any error.
37 	 */
38 	@Test
testAnyErrorFilter()39 	public void testAnyErrorFilter() {
40 		String filterName = PROBLEM_TEST_ON_ANY_ERROR;
41 		ProblemFilter filter = getFilter(filterName);
42 		assertTrue(filterName + " not found ", filter != null);
43 		assertTrue(filterName + " is enabled ", !filter.isEnabled());
44 		assertTrue(filterName + "not selecting by severity", filter
45 				.getSelectBySeverity());
46 		assertTrue(filterName + "should be on error",
47 				filter.getSeverity() == ProblemFilter.SEVERITY_ERROR);
48 		assertTrue(filterName + "should be on any",
49 				filter.getOnResource() == MarkerFilter.ON_ANY);
50 	}
51 
52 	/**
53 	 * Test the filter on selected warning.
54 	 */
55 	@Test
testSelectedWarning()56 	public void testSelectedWarning() {
57 		String filterName = PROBLEM_TEST_ON_SELECTED_WARNING;
58 		ProblemFilter filter = getFilter(filterName);
59 		assertTrue(filterName + " not found ", filter != null);
60 		assertTrue(filterName + " is enabled ", !filter.isEnabled());
61 		assertTrue(filterName + "not selecting by severity", filter
62 				.getSelectBySeverity());
63 		assertTrue(filterName + "should be on warning",
64 				filter.getSeverity() == ProblemFilter.SEVERITY_WARNING);
65 		assertTrue(filterName + "should be on selected only", filter
66 				.getOnResource() == MarkerFilter.ON_SELECTED_ONLY);
67 	}
68 
69 	/**
70 	 * Test the filter on selected and children infos.
71 	 */
72 	@Test
testInfoAndChildren()73 	public void testInfoAndChildren() {
74 		String filterName = PROBLEM_TEST_INFO_AND_CHILDREN;
75 		ProblemFilter filter = getFilter(filterName);
76 		assertTrue(filterName + " not found ", filter != null);
77 		assertTrue(filterName + " is enabled ", !filter.isEnabled());
78 		assertTrue(filterName + "not selecting by severity", filter
79 				.getSelectBySeverity());
80 		assertTrue(filterName + "should be on info",
81 				filter.getSeverity() == ProblemFilter.SEVERITY_INFO);
82 		assertTrue(filterName + "should be on selected and children", filter
83 				.getOnResource() == MarkerFilter.ON_SELECTED_AND_CHILDREN);
84 	}
85 
86 	/**
87 	 * Test the filter on same container.
88 	 */
89 	@Test
testSameContainer()90 	public void testSameContainer() {
91 		String filterName = PROBLEM_TEST_SAME_CONTAINER_NO_SEVERITY;
92 		ProblemFilter filter = getFilter(filterName);
93 		assertTrue(filterName + " not found ", filter != null);
94 		assertTrue(filterName + " is enabled ", !filter.isEnabled());
95 		assertFalse(filterName + "selecting by severity", filter
96 				.getSelectBySeverity());
97 		assertTrue(filterName + "should be on on any in same container", filter
98 				.getOnResource() == MarkerFilter.ON_ANY_IN_SAME_CONTAINER);
99 	}
100 
101 	/**
102 	 * Test the filter on description.
103 	 */
104 	@Test
testDescription()105 	public void testDescription() {
106 		String filterName = PROBLEM_TEST_ON_METHOD;
107 		ProblemFilter filter = getFilter(filterName);
108 		assertTrue(filterName + " not found ", filter != null);
109 		assertTrue(filterName + " is enabled ", !filter.isEnabled());
110 		assertTrue(filterName + "does not have description", !filter
111 				.getDescription().isEmpty());
112 		assertTrue(filterName + "not checking contains", filter.getContains());
113 	}
114 
115 	/**
116 	 * Test the filter not on description.
117 	 */
118 	@Test
testNotOnDescription()119 	public void testNotOnDescription() {
120 		String filterName = PROBLEM_TEST_NOT_ON_METHOD;
121 		ProblemFilter filter = getFilter(filterName);
122 		assertTrue(filterName + " not found ", filter != null);
123 		assertTrue(filterName + " is enabled ", !filter.isEnabled());
124 		assertTrue(filterName + "does not have description", !filter
125 				.getDescription().isEmpty());
126 		assertFalse(filterName + "checking contains", filter.getContains());
127 	}
128 
129 	/**
130 	 * Test the filter on problem types.
131 	 */
132 	@Test
testProblemTypes()133 	public void testProblemTypes() {
134 		String filterName = PROBLEM_TEST_ON_PROBLEM;
135 		ProblemFilter filter = getFilter(filterName);
136 		assertTrue(filterName + " not found ", filter != null);
137 		assertTrue(filterName + " is enabled ", !filter.isEnabled());
138 		List<MarkerType> types = filter.getSelectedTypes();
139 		assertTrue(
140 				filterName + "should only have one type has " + types.size(),
141 				types.size() == 1);
142 		assertTrue(filterName + "should be enabled for category test",
143 				types.get(0).getId().equals(
144 						"org.eclipse.ui.tests.categoryTestMarker"));
145 	}
146 
147 }
148