diff options
2 files changed, 40 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java index 5e4a896d9..8496bc445 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java @@ -336,4 +336,34 @@ public class PersonProposalProviderTest extends TestCase { assertEquals("21", result[0].getContent()); assertEquals("22", result[1].getContent()); } + + public void testGetProposalByOwnerId() throws Exception { + TaskTask task = TaskTestUtil.createMockTask("1"); + task.setOwner("Joel User"); + TasksUiPlugin.getTaskList().addTask(task); + TaskRepository repository = TaskTestUtil.createMockRepository(); + TasksUi.getRepositoryManager().addRepository(repository); + + PersonProposalProvider provider = new PersonProposalProvider(MockRepositoryConnector.REPOSITORY_URL, + MockRepositoryConnector.CONNECTOR_KIND); + IContentProposal[] result = provider.getProposals("joel", 1); + assertEquals(1, result.length); + assertEquals("Joel User", result[0].getLabel()); + assertEquals("Joel User", result[0].getContent()); + + task.setOwnerId("joel.user@mylyn.org"); + provider = new PersonProposalProvider(MockRepositoryConnector.REPOSITORY_URL, + MockRepositoryConnector.CONNECTOR_KIND); + result = provider.getProposals("joel", 1); + assertEquals(1, result.length); + assertEquals("Joel User <joel.user@mylyn.org>", result[0].getLabel()); + assertEquals("joel.user@mylyn.org", result[0].getContent()); + + task.setOwnerId(""); + task.setOwner(""); + provider = new PersonProposalProvider(MockRepositoryConnector.REPOSITORY_URL, + MockRepositoryConnector.CONNECTOR_KIND); + result = provider.getProposals("joel", 1); + assertEquals(0, result.length); + } } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java index 725759784..003095993 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java @@ -39,6 +39,8 @@ import org.eclipse.mylyn.tasks.core.data.TaskData; import org.eclipse.mylyn.tasks.ui.TasksUi; import org.eclipse.osgi.util.NLS; +import com.google.common.base.Strings; + /** * @author Shawn Minto * @author Eugene Kuleshov @@ -270,7 +272,14 @@ public class PersonProposalProvider implements IContentProposalProvider { } private void addAddresses(ITask task, Set<String> addressSet) { - addAddress(addressSet, task.getOwner()); + if (Strings.isNullOrEmpty(task.getOwnerId())) { + addAddress(addressSet, task.getOwner()); + } else { + addAddress(addressSet, task.getOwnerId()); + if (!Strings.isNullOrEmpty(task.getOwner())) { + proposals.put(task.getOwnerId(), task.getOwner()); + } + } } private void addAddresses(TaskData data, Set<String> addressSet) { |