diff options
author | Doug Schaefer | 2006-01-18 15:34:05 +0000 |
---|---|---|
committer | Doug Schaefer | 2006-01-18 15:34:05 +0000 |
commit | e0a9f12895ca4fb5717e1dcf469382300fb8db32 (patch) | |
tree | c2dab70a17673c96273010445a3ce73d06b1e2ea /core/org.eclipse.cdt.ui.tests | |
parent | c1c84154085d001c1aa977e00968ed72a9b06d5b (diff) | |
download | org.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')
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 ; + } + +} |