Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2006-01-18 15:34:05 +0000
committerDoug Schaefer2006-01-18 15:34:05 +0000
commite0a9f12895ca4fb5717e1dcf469382300fb8db32 (patch)
treec2dab70a17673c96273010445a3ce73d06b1e2ea /core/org.eclipse.cdt.ui.tests
parentc1c84154085d001c1aa977e00968ed72a9b06d5b (diff)
downloadorg.eclipse.cdt-e0a9f12895ca4fb5717e1dcf469382300fb8db32.tar.gz
org.eclipse.cdt-e0a9f12895ca4fb5717e1dcf469382300fb8db32.tar.xz
org.eclipse.cdt-e0a9f12895ca4fb5717e1dcf469382300fb8db32.zip
Bug 104792 - Content proposal filtering feature.
Diffstat (limited to 'core/org.eclipse.cdt.ui.tests')
-rw-r--r--core/org.eclipse.cdt.ui.tests/plugin.xml7
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/ProposalFilterPreferencesTest.java50
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/TestProposalFilter.java19
3 files changed, 76 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.ui.tests/plugin.xml b/core/org.eclipse.cdt.ui.tests/plugin.xml
index 5d346cd499e..6e420b224ba 100644
--- a/core/org.eclipse.cdt.ui.tests/plugin.xml
+++ b/core/org.eclipse.cdt.ui.tests/plugin.xml
@@ -121,5 +121,12 @@
id="org.eclipse.cdt.ui.tests.DOMAST.DOMAST.IncludeStatementFilter">
</filter>
</extension>
+ <extension
+ point="org.eclipse.cdt.ui.ProposalFilter">
+ <ProposalFilter
+ class="org.eclipse.cdt.ui.tests.text.contentassist.TestProposalFilter"
+ id="org.eclipse.cdt.ui.tests.TestProposalFilter"
+ name="Testing Completion Filter"/>
+ </extension>
</plugin>
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/ProposalFilterPreferencesTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/ProposalFilterPreferencesTest.java
new file mode 100644
index 00000000000..55d83482672
--- /dev/null
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/ProposalFilterPreferencesTest.java
@@ -0,0 +1,50 @@
+package org.eclipse.cdt.ui.tests.text.contentassist;
+
+import org.eclipse.cdt.internal.ui.preferences.ProposalFilterPreferencesUtil;
+import org.eclipse.cdt.internal.ui.preferences.ProposalFilterPreferencesUtil.ComboState;
+import org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistPreference;
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.preference.IPreferenceStore;
+
+import junit.framework.TestCase;
+
+/**
+ * This test covers the convenience methods
+ * in org.eclipse.cdt.internal.ui.preferences.ProposalFilterPreferencesUtil
+ */
+public class ProposalFilterPreferencesTest extends TestCase {
+
+ public void testPreferences() {
+ // Check that the test filter is among the filternames
+ String[] filterNames = ProposalFilterPreferencesUtil.getProposalFilterNames();
+ int index = -1 ;
+ for (int i = 0; i < filterNames.length; i++) {
+ String name = filterNames[i];
+ if (name.equals("Testing Completion Filter")) {
+ index = i ;
+ break ;
+ }
+ }
+ assertTrue("Did not find expected filter!", index>=0);
+
+ // Set the preference to the tested filter
+ IPreferenceStore store = CUIPlugin.getDefault().getPreferenceStore();
+ String filterComboStateString = store.getString(ContentAssistPreference.PROPOSALS_FILTER);
+ ProposalFilterPreferencesUtil.ComboState state = ProposalFilterPreferencesUtil.getComboState(filterComboStateString);
+ StringBuffer newStateText = new StringBuffer();
+ newStateText.append(index+1); // First entry is always the <Default Filter>, index+1 must be selected
+ for (int i = 0; i < state.items.length; i++) {
+ String item = state.items[i];
+ newStateText.append(";");
+ newStateText.append(item);
+ }
+ store.setValue(ContentAssistPreference.PROPOSALS_FILTER, newStateText.toString());
+
+ // Now we can test preferred filter retrieval:
+ IConfigurationElement preferredElement = ProposalFilterPreferencesUtil.getPreferredFilterElement();
+ String extensionId = preferredElement.getAttribute("id");
+ assertNotNull("Configuration element was not found!", extensionId);
+ assertEquals("Unexpected element id", "org.eclipse.cdt.ui.tests.TestProposalFilter", extensionId);
+ }
+}
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/TestProposalFilter.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/TestProposalFilter.java
new file mode 100644
index 00000000000..e7b65212f7e
--- /dev/null
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/TestProposalFilter.java
@@ -0,0 +1,19 @@
+package org.eclipse.cdt.ui.tests.text.contentassist;
+
+import org.eclipse.cdt.ui.text.ICCompletionProposal;
+import org.eclipse.cdt.ui.text.contentassist.IProposalFilter;
+
+/**
+ * Dummy filter implementation for testing purposes
+ */
+public class TestProposalFilter implements IProposalFilter {
+
+ /**
+ * This dummy filter method will return the original proposals unmodified.
+ */
+ public ICCompletionProposal[] filterProposals(
+ ICCompletionProposal[] proposals) {
+ return proposals ;
+ }
+
+}

Back to the top