diff options
author | Steffen Pingel | 2012-09-07 21:57:55 +0000 |
---|---|---|
committer | Steffen Pingel | 2012-09-07 21:57:55 +0000 |
commit | bc4691e3a90c096b4c90752cf87af8e71886c9a4 (patch) | |
tree | 779a988d9ada1f0b82961e53502d023ac663502c | |
parent | 9df5360d73db345f70775011c10c156c8ec88f0f (diff) | |
download | org.eclipse.mylyn.reviews-bc4691e3a90c096b4c90752cf87af8e71886c9a4.tar.gz org.eclipse.mylyn.reviews-bc4691e3a90c096b4c90752cf87af8e71886c9a4.tar.xz org.eclipse.mylyn.reviews-bc4691e3a90c096b4c90752cf87af8e71886c9a4.zip |
allow spaces between reviewer names when adding reviewers
Bug: 388021
Change-Id: I1cd73aeb82df0901856782f039829812e3b36be7
4 files changed, 130 insertions, 8 deletions
diff --git a/org.eclipse.mylyn.gerrit.ui.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.gerrit.ui.tests/.settings/org.eclipse.jdt.core.prefs index bc2c501db..f73292f97 100644 --- a/org.eclipse.mylyn.gerrit.ui.tests/.settings/org.eclipse.jdt.core.prefs +++ b/org.eclipse.mylyn.gerrit.ui.tests/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,3 @@ -#Thu Mar 10 01:20:38 PST 2011 eclipse.preferences.version=1 org.eclipse.jdt.core.codeComplete.argumentPrefixes= org.eclipse.jdt.core.codeComplete.argumentSuffixes= @@ -8,6 +7,13 @@ org.eclipse.jdt.core.codeComplete.localPrefixes= org.eclipse.jdt.core.codeComplete.localSuffixes= org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve @@ -18,12 +24,15 @@ org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning org.eclipse.jdt.core.compiler.problem.deprecation=warning org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled org.eclipse.jdt.core.compiler.problem.discouragedReference=warning org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore @@ -31,31 +40,48 @@ org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=error org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error org.eclipse.jdt.core.compiler.problem.nullReference=error +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore @@ -68,6 +94,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin org.eclipse.jdt.core.compiler.problem.unusedImport=warning org.eclipse.jdt.core.compiler.problem.unusedLabel=warning org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled diff --git a/org.eclipse.mylyn.gerrit.ui.tests/src/org/eclipse/mylyn/internal/gerrit/ui/operations/AddReviewersDialogTest.java b/org.eclipse.mylyn.gerrit.ui.tests/src/org/eclipse/mylyn/internal/gerrit/ui/operations/AddReviewersDialogTest.java new file mode 100644 index 000000000..47b80f144 --- /dev/null +++ b/org.eclipse.mylyn.gerrit.ui.tests/src/org/eclipse/mylyn/internal/gerrit/ui/operations/AddReviewersDialogTest.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * Copyright (c) 2012 Tasktop Technologies 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: + * Tasktop Technologies - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.internal.gerrit.ui.operations; + +import static org.junit.Assert.assertEquals; + +import java.util.Arrays; +import java.util.Collections; + +import org.eclipse.mylyn.internal.gerrit.core.GerritConnector; +import org.eclipse.mylyn.tasks.core.ITask; +import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.ui.TasksUi; +import org.eclipse.swt.widgets.Shell; +import org.junit.Before; +import org.junit.Test; + +/** + * @author Steffen Pingel + */ +public class AddReviewersDialogTest { + + private Shell shell; + + private AddReviewersDialog dialog; + + @Before + public void setUp() { + shell = new Shell(); + + TaskRepository repository = new TaskRepository(GerritConnector.CONNECTOR_KIND, "url"); + TasksUi.getRepositoryManager().addRepository(repository); + ITask task = TasksUi.getRepositoryModel().createTask(repository, "1"); + dialog = new AddReviewersDialog(shell, task); + dialog.create(); + } + + public void tearDown() { + shell.dispose(); + } + + @Test + public void testGetReviewers() { + dialog.setText("a, b, c"); + assertEquals(Arrays.asList("a", "b", "c"), dialog.getReviewers()); + } + + @Test + public void testGetReviewersTwo() { + dialog.setText("b,a"); + assertEquals(Arrays.asList("b", "a"), dialog.getReviewers()); + } + + @Test + public void testGetReviewersEmpty() { + dialog.setText(""); + assertEquals(Collections.emptyList(), dialog.getReviewers()); + dialog.setText(" "); + assertEquals(Collections.emptyList(), dialog.getReviewers()); + } + + @Test + public void testGetReviewersOne() { + dialog.setText(" one reviewer "); + assertEquals(Arrays.asList("one reviewer"), dialog.getReviewers()); + } + +} diff --git a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/AddReviewersDialog.java b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/AddReviewersDialog.java index d78080b88..c5de3cbaa 100644 --- a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/AddReviewersDialog.java +++ b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/AddReviewersDialog.java @@ -11,7 +11,7 @@ package org.eclipse.mylyn.internal.gerrit.ui.operations; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; import org.eclipse.jface.layout.GridDataFactory; @@ -47,9 +47,16 @@ public class AddReviewersDialog extends GerritOperationDialog { return GerritUiPlugin.getDefault().getOperationFactory().createAddReviewersOperation(task, request); } - private List<String> getReviewers() { - String[] reviewers = messageEditor.getText().split(","); - return Arrays.asList(reviewers); + List<String> getReviewers() { + String[] reviewers = messageEditor.getText().split(","); //$NON-NLS-1$ + List<String> result = new ArrayList<String>(reviewers.length); + for (int i = 0; i < reviewers.length; i++) { + reviewers[i] = reviewers[i].trim(); + if (reviewers[i].length() > 0) { + result.add(reviewers[i]); + } + } + return result; } @Override @@ -80,4 +87,15 @@ public class AddReviewersDialog extends GerritOperationDialog { return super.processOperationResult(operation); } + /** + * Sets the text of the message control. Intended for testing. + * + * @param text + * the text to set + * @see #getReviewers() + */ + void setText(String text) { + messageEditor.setText(text); + } + } diff --git a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/GerritOperationDialog.java b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/GerritOperationDialog.java index 222290bde..7a46f4e6e 100644 --- a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/GerritOperationDialog.java +++ b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/operations/GerritOperationDialog.java @@ -23,12 +23,12 @@ import org.eclipse.jface.fieldassist.IContentProposalProvider; import org.eclipse.jface.fieldassist.TextContentAdapter; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.mylyn.commons.workbench.forms.CommonFormUtil; import org.eclipse.mylyn.internal.gerrit.core.GerritOperationFactory; import org.eclipse.mylyn.internal.gerrit.core.client.GerritConfiguration; import org.eclipse.mylyn.internal.gerrit.core.operations.GerritOperation; import org.eclipse.mylyn.internal.gerrit.core.operations.RefreshConfigRequest; import org.eclipse.mylyn.internal.gerrit.ui.GerritUiPlugin; -import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; import org.eclipse.mylyn.internal.tasks.ui.editors.RichTextEditor; import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorExtensions; import org.eclipse.mylyn.reviews.ui.ProgressDialog; @@ -132,7 +132,7 @@ public abstract class GerritOperationDialog extends ProgressDialog { @Override protected Control createDialogArea(Composite parent) { - toolkit = new FormToolkit(TasksUiPlugin.getDefault().getFormColors(parent.getDisplay())); + toolkit = new FormToolkit(CommonFormUtil.getSharedColors()); Control control = super.createDialogArea(parent); if (needsConfig()) { GerritConfig config = getOperationFactory().getClient(getTask()).getGerritConfig(); |