001: /*******************************************************************************
002: * Copyright (c) 2000, 2005 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.jdt.ui.tests.dialogs;
011:
012: import junit.framework.Assert;
013: import junit.framework.Test;
014: import junit.framework.TestCase;
015: import junit.framework.TestSuite;
016:
017: import org.eclipse.core.runtime.IAdaptable;
018: import org.eclipse.core.runtime.IPath;
019:
020: import org.eclipse.core.resources.ResourcesPlugin;
021:
022: import org.eclipse.swt.widgets.Shell;
023:
024: import org.eclipse.jface.dialogs.Dialog;
025: import org.eclipse.jface.preference.PreferenceDialog;
026:
027: import org.eclipse.ui.dialogs.PreferencesUtil;
028:
029: import org.eclipse.jdt.core.ICompilationUnit;
030: import org.eclipse.jdt.core.IJavaProject;
031: import org.eclipse.jdt.core.IPackageFragment;
032: import org.eclipse.jdt.core.IPackageFragmentRoot;
033: import org.eclipse.jdt.core.JavaCore;
034:
035: import org.eclipse.jdt.testplugin.JavaProjectHelper;
036: import org.eclipse.jdt.testplugin.util.DialogCheck;
037:
038: public class PreferencesTest extends TestCase {
039:
040: public static Test suite() {
041: TestSuite suite = new TestSuite(PreferencesTest.class.getName());
042: suite.addTest(new PreferencesTest("testJavaBasePrefPage"));
043: suite.addTest(new PreferencesTest("testClasspathVarPrefPage"));
044: suite.addTest(new PreferencesTest("testCodeFormatterPrefPage"));
045: suite.addTest(new PreferencesTest("testExecArgPropPage"));
046: suite
047: .addTest(new PreferencesTest(
048: "testImportOrganizePrefPage"));
049: suite.addTest(new PreferencesTest("testInfoPropPage"));
050: suite.addTest(new PreferencesTest(
051: "testJARSourceAttachmentPropPage"));
052: suite.addTest(new PreferencesTest("testJavaBasePrefPage"));
053: suite.addTest(new PreferencesTest("testJavaCompilerPrefPage"));
054: suite.addTest(new PreferencesTest("testJavaDebugPrefPage"));
055: suite.addTest(new PreferencesTest("testJavaEditorPrefPage"));
056: suite.addTest(new PreferencesTest("testNoExecArgPropPage"));
057: suite.addTest(new PreferencesTest("testRefactoringPrefPage"));
058: suite.addTest(new PreferencesTest("testVMPrefPage"));
059: suite.addTest(new PreferencesTest("testVMPropPage"));
060: suite.addTest(new PreferencesTest("testVSourceLookupPage"));
061: suite.addTest(new PreferencesTest(
062: "testVariableSourceAttachmentPropPage"));
063: return suite;
064: }
065:
066: private boolean fIsInteractive = true;
067:
068: private static final String PROJECT_NAME = "DummyProject";
069:
070: public PreferencesTest(String name) {
071: super (name);
072: }
073:
074: private Shell getShell() {
075: return DialogCheck.getShell();
076: }
077:
078: public void assertDialog(Dialog dialog, Assert assertTrue) {
079: if (fIsInteractive) {
080: DialogCheck.assertDialog(dialog);
081: } else {
082: DialogCheck.assertDialogTexts(dialog);
083: }
084: }
085:
086: private PreferenceDialog getPreferenceDialog(String id) {
087: return PreferencesUtil.createPreferenceDialogOn(getShell(), id,
088: null, null);
089: }
090:
091: private PreferenceDialog getPropertyDialog(String id,
092: IAdaptable element) {
093: return PreferencesUtil.createPropertyDialogOn(getShell(),
094: element, id, null, null);
095: }
096:
097: public void testJavaBasePrefPage() {
098: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage");
099: assertDialog(dialog, this );
100: }
101:
102: public void testImportOrganizePrefPage() {
103: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.ImportOrganizePreferencePage");
104: assertDialog(dialog, this );
105: }
106:
107: public void testCodeFormatterPrefPage() {
108: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.CodeFormatterPreferencePage");
109: assertDialog(dialog, this );
110: }
111:
112: public void testClasspathVarPrefPage() throws Exception {
113: IPath path = ResourcesPlugin.getWorkspace().getRoot()
114: .getLocation();
115: JavaCore.setClasspathVariable("DUMMY_VAR", path, null);
116: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.ClasspathVariablesPreferencePage");
117: assertDialog(dialog, this );
118: JavaCore.removeClasspathVariable("DUMMY_VAR", null);
119: }
120:
121: public void testJavaEditorPrefPage() {
122: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.JavaEditorPreferencePage");
123: assertDialog(dialog, this );
124: }
125:
126: public void testJavaCompilerPrefPage() {
127: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.CompilerPreferencePage");
128: assertDialog(dialog, this );
129: }
130:
131: public void testJavaDebugPrefPage() {
132: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.JavaDebugPreferencePage");
133: assertDialog(dialog, this );
134: }
135:
136: public void testRefactoringPrefPage() {
137: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.RefactoringPreferencePage");
138: assertDialog(dialog, this );
139: }
140:
141: public void testVMPrefPage() {
142: Dialog dialog = getPreferenceDialog("org.eclipse.jdt.ui.preferences.VMPreferencePage");
143: assertDialog(dialog, this );
144: }
145:
146: public void testBuildPathPropPage() throws Exception {
147: IJavaProject jproject = JavaProjectHelper.createJavaProject(
148: PROJECT_NAME, "bin");
149: JavaProjectHelper.addSourceContainer(jproject, "src");
150: JavaProjectHelper.addRTJar(jproject);
151: IJavaProject dep1 = JavaProjectHelper.createJavaProject(
152: "OtherProject", "bin");
153: JavaProjectHelper.addRequiredProject(jproject, dep1);
154:
155: Dialog dialog = getPropertyDialog(
156: "org.eclipse.jdt.ui.propertyPages.BuildPathsPropertyPage",
157: jproject);
158: assertDialog(dialog, this );
159: JavaProjectHelper.delete(jproject);
160: JavaProjectHelper.delete(dep1);
161: }
162:
163: public void testJARSourceAttachmentPropPage() throws Exception {
164: IJavaProject jproject = JavaProjectHelper.createJavaProject(
165: PROJECT_NAME, "bin");
166: IPackageFragmentRoot root = JavaProjectHelper
167: .addRTJar(jproject);
168: assertTrue(root != null);
169:
170: Dialog dialog = getPropertyDialog(
171: "org.eclipse.jdt.ui.propertyPages.SourceAttachmentPage1",
172: root);
173: assertDialog(dialog, this );
174:
175: JavaProjectHelper.delete(jproject);
176: }
177:
178: public void testVariableSourceAttachmentPropPage() throws Exception {
179: IJavaProject jproject = JavaProjectHelper.createJavaProject(
180: PROJECT_NAME, "bin");
181: IPackageFragmentRoot root = JavaProjectHelper.addVariableRTJar(
182: jproject, "VAR_LIB", "VAR_SRC", "VAR_SRCROOT");
183: assertTrue(root != null);
184:
185: Dialog dialog = getPropertyDialog(
186: "org.eclipse.jdt.ui.propertyPages.SourceAttachmentPage1",
187: root);
188: assertDialog(dialog, this );
189:
190: JavaProjectHelper.delete(jproject);
191: JavaCore.removeClasspathVariable("VAR_LIB", null);
192: JavaCore.removeClasspathVariable("VAR_SRC", null);
193: JavaCore.removeClasspathVariable("VAR_SRCROOT", null);
194: }
195:
196: public void testInfoPropPage() throws Exception {
197: IJavaProject jproject = JavaProjectHelper.createJavaProject(
198: PROJECT_NAME, "bin");
199: IPackageFragmentRoot root = JavaProjectHelper
200: .addSourceContainer(jproject, "src");
201: IPackageFragment pack = root
202: .createPackageFragment(
203: "org.eclipse.jdt.internal.ui.wizards.dummy",
204: true, null);
205: ICompilationUnit cu = pack
206: .getCompilationUnit("DummyCompilationUnitWizard.java");
207: cu.createType(
208: "public class DummyCompilationUnitWizard {\n\n}\n",
209: null, true, null);
210:
211: Dialog dialog = getPropertyDialog(
212: "org.eclipse.jdt.ui.propertyPages.InfoPage", cu);
213: assertDialog(dialog, this );
214:
215: JavaProjectHelper.delete(jproject);
216: }
217:
218: public void testNoExecArgPropPage() throws Exception {
219: IJavaProject jproject = JavaProjectHelper.createJavaProject(
220: PROJECT_NAME, "bin");
221: IPackageFragmentRoot root = JavaProjectHelper
222: .addSourceContainer(jproject, "src");
223: IPackageFragment pack = root.createPackageFragment(
224: "org.eclipse.jdt.internal.ui.hello", true, null);
225: ICompilationUnit cu = pack
226: .getCompilationUnit("HelloWorld.java");
227: cu.createType("public class HelloWorld {\n\n}\n", null, true,
228: null);
229:
230: Dialog dialog = getPropertyDialog(
231: "org.eclipse.jdt.ui.propertyPages.ExecutionArgsPage",
232: cu);
233: assertDialog(dialog, this );
234:
235: JavaProjectHelper.delete(jproject);
236: }
237:
238: public void testExecArgPropPage() throws Exception {
239: IJavaProject jproject = JavaProjectHelper.createJavaProject(
240: PROJECT_NAME, "bin");
241: IPackageFragmentRoot root = JavaProjectHelper
242: .addSourceContainer(jproject, "src");
243: IPackageFragment pack = root.createPackageFragment(
244: "org.eclipse.jdt.internal.ui.hello", true, null);
245: ICompilationUnit cu = pack
246: .getCompilationUnit("HelloWorld.java");
247: cu
248: .createType(
249: "public class HelloWorld {\npublic static void main(String[] args) {}\n}\n",
250: null, true, null);
251:
252: Dialog dialog = getPropertyDialog(
253: "org.eclipse.jdt.ui.propertyPages.ExecutionArgsPage",
254: cu);
255: assertDialog(dialog, this );
256:
257: JavaProjectHelper.delete(jproject);
258: }
259:
260: public void testVMPropPage() throws Exception {
261: IJavaProject jproject = JavaProjectHelper.createJavaProject(
262: PROJECT_NAME, "bin");
263:
264: Dialog dialog = getPropertyDialog(
265: "org.eclipse.jdt.ui.propertyPages.VMPropertyPage",
266: jproject);
267: assertDialog(dialog, this );
268:
269: JavaProjectHelper.delete(jproject);
270: }
271:
272: public void testVSourceLookupPage() throws Exception {
273: IJavaProject jproject = JavaProjectHelper.createJavaProject(
274: PROJECT_NAME, "bin");
275: IJavaProject dep1 = JavaProjectHelper.createJavaProject(
276: "OtherProject", "bin");
277: JavaProjectHelper.addRequiredProject(jproject, dep1);
278:
279: Dialog dialog = getPropertyDialog(
280: "org.eclipse.jdt.ui.launching.SourceLookupPage",
281: jproject);
282: assertDialog(dialog, this);
283:
284: JavaProjectHelper.delete(jproject);
285: JavaProjectHelper.delete(dep1);
286: }
287:
288: }
|