mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
221109: Apply fix and add regression
This commit is contained in:
parent
6a00c11154
commit
90846e6bfa
2 changed files with 232 additions and 158 deletions
|
@ -13,10 +13,15 @@ package org.eclipse.cdt.ui.tests.text.doctools;
|
|||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.testplugin.CProjectHelper;
|
||||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.ui.text.doctools.IDocCommentOwner;
|
||||
import org.eclipse.cdt.ui.text.doctools.IDocCommentOwnershipListener;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.text.doctools.DocCommentOwnerManager;
|
||||
import org.eclipse.cdt.internal.ui.text.doctools.NullDocCommentOwner;
|
||||
|
@ -30,14 +35,14 @@ public class CommentOwnerManagerTests extends BaseTestCase {
|
|||
IDocCommentOwner OWNER_3;
|
||||
DocCommentOwnerManager manager;
|
||||
|
||||
ICProject projectA, projectB, projectC;
|
||||
IProject projectA, projectB, projectC;
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
manager= DocCommentOwnerManager.getInstance();
|
||||
|
||||
projectA= CProjectHelper.createCCProject("projectA", null);
|
||||
projectB= CProjectHelper.createCCProject("projectB", null);
|
||||
projectC= CProjectHelper.createCCProject("projectC", null);
|
||||
projectA= CProjectHelper.createCCProject("projectA", null).getProject();
|
||||
projectB= CProjectHelper.createCCProject("projectB", null).getProject();
|
||||
projectC= CProjectHelper.createCCProject("projectC", null).getProject();
|
||||
|
||||
IDocCommentOwner[] owners= manager.getRegisteredOwners();
|
||||
OWNER_1= manager.getOwner("org.cdt.test.DCOM1");
|
||||
|
@ -47,13 +52,13 @@ public class CommentOwnerManagerTests extends BaseTestCase {
|
|||
|
||||
protected void tearDown() throws Exception {
|
||||
if(projectA != null) {
|
||||
CProjectHelper.delete(projectA);
|
||||
CProjectHelper.delete(CoreModel.getDefault().create(projectA));
|
||||
}
|
||||
if(projectB != null) {
|
||||
CProjectHelper.delete(projectB);
|
||||
CProjectHelper.delete(CoreModel.getDefault().create(projectB));
|
||||
}
|
||||
if(projectC != null) {
|
||||
CProjectHelper.delete(projectC);
|
||||
CProjectHelper.delete(CoreModel.getDefault().create(projectC));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,57 +67,57 @@ public class CommentOwnerManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
public void testProjectLevel() throws Exception {
|
||||
manager.setCommentOwner(projectA.getProject(), OWNER_3, true);
|
||||
manager.setCommentOwner(projectB.getProject(), OWNER_2, true);
|
||||
manager.setCommentOwner(projectC.getProject(), OWNER_1, true);
|
||||
manager.setCommentOwner(projectA, OWNER_3, true);
|
||||
manager.setCommentOwner(projectB, OWNER_2, true);
|
||||
manager.setCommentOwner(projectC, OWNER_1, true);
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setCommentOwner(projectA.getProject(), OWNER_2, true);
|
||||
manager.setCommentOwner(projectB.getProject(), OWNER_1, true);
|
||||
manager.setCommentOwner(projectC.getProject(), OWNER_3, true);
|
||||
manager.setCommentOwner(projectA, OWNER_2, true);
|
||||
manager.setCommentOwner(projectB, OWNER_1, true);
|
||||
manager.setCommentOwner(projectC, OWNER_3, true);
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
projectA.getProject().close(NPM);
|
||||
projectB.getProject().close(NPM);
|
||||
projectC.getProject().close(NPM);
|
||||
projectA.close(NPM);
|
||||
projectB.close(NPM);
|
||||
projectC.close(NPM);
|
||||
|
||||
projectA.getProject().open(NPM);
|
||||
projectB.getProject().open(NPM);
|
||||
projectC.getProject().open(NPM);
|
||||
projectA.open(NPM);
|
||||
projectB.open(NPM);
|
||||
projectC.open(NPM);
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
}
|
||||
|
||||
public void testBoundaryConditions1() throws Exception {
|
||||
|
@ -130,136 +135,199 @@ public class CommentOwnerManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
public void testWorkspaceRootLevel() throws Exception {
|
||||
manager.setCommentOwner(projectA.getProject(), null, true);
|
||||
manager.setCommentOwner(projectB.getProject(), null, true);
|
||||
manager.setCommentOwner(projectC.getProject(), null, true);
|
||||
manager.setCommentOwner(projectA, null, true);
|
||||
manager.setCommentOwner(projectB, null, true);
|
||||
manager.setCommentOwner(projectC, null, true);
|
||||
|
||||
manager.setWorkspaceCommentOwner(OWNER_1);
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setWorkspaceCommentOwner(OWNER_2);
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setWorkspaceCommentOwner(OWNER_3);
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setCommentOwner(projectA.getProject(), OWNER_3, true);
|
||||
manager.setCommentOwner(projectB.getProject(), OWNER_2, true);
|
||||
manager.setCommentOwner(projectC.getProject(), OWNER_1, true);
|
||||
manager.setCommentOwner(projectA, OWNER_3, true);
|
||||
manager.setCommentOwner(projectB, OWNER_2, true);
|
||||
manager.setCommentOwner(projectC, OWNER_1, true);
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setWorkspaceCommentOwner(NullDocCommentOwner.INSTANCE);
|
||||
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_3.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setCommentOwner(projectA.getProject(), null, true);
|
||||
manager.setCommentOwner(projectA, null, true);
|
||||
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setCommentOwner(projectC.getProject(), null, true);
|
||||
manager.setCommentOwner(projectC, null, true);
|
||||
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_2.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setCommentOwner(projectB.getProject(), null, true);
|
||||
manager.setCommentOwner(projectB, null, true);
|
||||
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(NullDocCommentOwner.INSTANCE.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
|
||||
manager.setWorkspaceCommentOwner(OWNER_1);
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectA.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectB.getFolder("foo/bar")).getID());
|
||||
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject()).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getProject().getFolder("foo/bar")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFile("foo/bar/baz")).getID());
|
||||
assertEquals(OWNER_1.getID(), manager.getCommentOwner(projectC.getFolder("foo/bar")).getID());
|
||||
}
|
||||
|
||||
public void testDocListenerEvents_221109() {
|
||||
TestListener tl= new TestListener();
|
||||
|
||||
manager.setCommentOwner(projectA, null, true);
|
||||
manager.setCommentOwner(projectB, null, true);
|
||||
manager.setCommentOwner(projectC, null, true);
|
||||
manager.setWorkspaceCommentOwner(OWNER_1);
|
||||
manager.addListener(tl);
|
||||
|
||||
tl.reset();
|
||||
manager.setCommentOwner(projectA, OWNER_1, true);
|
||||
assertEquals(0, tl.prjEvents);
|
||||
assertEquals(0, tl.wkspcEvents);
|
||||
|
||||
tl.reset();
|
||||
manager.setCommentOwner(projectA, OWNER_2, true);
|
||||
assertEquals(1, tl.prjEvents);
|
||||
assertEquals(0, tl.wkspcEvents);
|
||||
|
||||
tl.reset();
|
||||
manager.setCommentOwner(projectA, OWNER_3, true);
|
||||
assertEquals(1, tl.prjEvents);
|
||||
assertEquals(0, tl.wkspcEvents);
|
||||
|
||||
tl.reset();
|
||||
manager.setCommentOwner(projectA, OWNER_1, true);
|
||||
assertEquals(1, tl.prjEvents);
|
||||
assertEquals(0, tl.wkspcEvents);
|
||||
|
||||
tl.reset();
|
||||
manager.setCommentOwner(ResourcesPlugin.getWorkspace().getRoot(), OWNER_2, true);
|
||||
assertEquals(0, tl.prjEvents);
|
||||
assertEquals(1, tl.wkspcEvents);
|
||||
|
||||
tl.reset();
|
||||
manager.setWorkspaceCommentOwner(OWNER_3);
|
||||
assertEquals(0, tl.prjEvents);
|
||||
assertEquals(1, tl.wkspcEvents);
|
||||
|
||||
tl.reset();
|
||||
manager.setWorkspaceCommentOwner(OWNER_3);
|
||||
assertEquals(0, tl.prjEvents);
|
||||
assertEquals(0, tl.wkspcEvents);
|
||||
|
||||
manager.removeListener(tl);
|
||||
}
|
||||
}
|
||||
|
||||
class TestListener implements IDocCommentOwnershipListener {
|
||||
public int prjEvents, wkspcEvents;
|
||||
public void ownershipChanged(IResource resource,
|
||||
boolean submappingsRemoved, IDocCommentOwner oldOwner,
|
||||
IDocCommentOwner newOwner) {
|
||||
prjEvents++;
|
||||
}
|
||||
public void workspaceOwnershipChanged(IDocCommentOwner oldOwner,
|
||||
IDocCommentOwner newOwner) {
|
||||
wkspcEvents++;
|
||||
}
|
||||
public void reset() {
|
||||
prjEvents= wkspcEvents= 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,18 +89,21 @@ public class DocCommentOwnerManager {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param owner the non-null doc-comment owner
|
||||
* @param newOwner the non-null doc-comment owner
|
||||
*/
|
||||
public void setWorkspaceCommentOwner(IDocCommentOwner owner) {
|
||||
if(owner == null)
|
||||
public void setWorkspaceCommentOwner(IDocCommentOwner newOwner) {
|
||||
if(newOwner == null)
|
||||
throw new IllegalArgumentException();
|
||||
IDocCommentOwner old= fWorkspaceOwner;
|
||||
fWorkspaceOwner= owner;
|
||||
|
||||
if(!fWorkspaceOwner.getID().equals(newOwner.getID())) {
|
||||
IDocCommentOwner oldOwner= fWorkspaceOwner;
|
||||
fWorkspaceOwner= newOwner;
|
||||
|
||||
Preferences prefs= new InstanceScope().getNode(QUALIFIER).node(WORKSPACE_DOC_TOOL_NODE);
|
||||
prefs.put(PREFKEY_WORKSPACE_DEFAULT, owner.getID());
|
||||
|
||||
fireWorkspaceOwnershipChanged(old, fWorkspaceOwner);
|
||||
Preferences prefs= new InstanceScope().getNode(QUALIFIER).node(WORKSPACE_DOC_TOOL_NODE);
|
||||
prefs.put(PREFKEY_WORKSPACE_DEFAULT, newOwner.getID());
|
||||
|
||||
fireWorkspaceOwnershipChanged(oldOwner, fWorkspaceOwner);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -142,26 +145,29 @@ public class DocCommentOwnerManager {
|
|||
|
||||
/**
|
||||
* @param resource a non-null resource to map a comment owner to
|
||||
* @param owner the new owner to assign, or null to inherit the parent's mapping
|
||||
* @param newOwner the new owner to assign, or null to inherit the parent's mapping
|
||||
* @param removeSubMappings if the resource is an {@link IContainer}, then remove any mappings
|
||||
* children have. <em>This is currently unimplemented.</em>
|
||||
*/
|
||||
/*
|
||||
* Note - this implementation currently ignores removeSubMappings.
|
||||
*/
|
||||
public void setCommentOwner(IResource resource, IDocCommentOwner owner, boolean removeSubMappings) {
|
||||
public void setCommentOwner(IResource resource, IDocCommentOwner newOwner, boolean removeSubMappings) {
|
||||
Assert.isNotNull(resource);
|
||||
|
||||
if(ResourcesPlugin.getWorkspace().getRoot().equals(resource)) {
|
||||
setWorkspaceCommentOwner(owner);
|
||||
setWorkspaceCommentOwner(newOwner);
|
||||
return;
|
||||
}
|
||||
|
||||
ProjectMap pm= getProjectMap(resource);
|
||||
IDocCommentOwner old= getCommentOwner(resource);
|
||||
pm.setCommentOwner(resource, owner);
|
||||
IDocCommentOwner n3w= getCommentOwner(resource);
|
||||
fireOwnershipChanged(resource, removeSubMappings, old, n3w);
|
||||
IDocCommentOwner oldOwner= getCommentOwner(resource);
|
||||
pm.setCommentOwner(resource, newOwner);
|
||||
|
||||
IDocCommentOwner newLogicalOwner= getCommentOwner(resource);
|
||||
if(!newLogicalOwner.getID().equals(oldOwner.getID())) {
|
||||
fireOwnershipChanged(resource, removeSubMappings, oldOwner, newLogicalOwner);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -186,7 +192,7 @@ public class DocCommentOwnerManager {
|
|||
* @param listener removes a listener from those registered for doc-comment ownership events
|
||||
*/
|
||||
public void removeListener(IDocCommentOwnershipListener listener) {
|
||||
fListeners.add(listener);
|
||||
fListeners.remove(listener);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -243,15 +249,15 @@ public class DocCommentOwnerManager {
|
|||
return result;
|
||||
}
|
||||
|
||||
private void fireOwnershipChanged(IResource resource, boolean recursive, IDocCommentOwner old, IDocCommentOwner n3w) {
|
||||
private void fireOwnershipChanged(IResource resource, boolean submappingsRemoved, IDocCommentOwner oldOwner, IDocCommentOwner newOwner) {
|
||||
for(Iterator i= fListeners.iterator(); i.hasNext();) {
|
||||
((IDocCommentOwnershipListener)i.next()).ownershipChanged(resource, recursive, old, n3w);
|
||||
((IDocCommentOwnershipListener)i.next()).ownershipChanged(resource, submappingsRemoved, oldOwner, newOwner);
|
||||
}
|
||||
}
|
||||
|
||||
private void fireWorkspaceOwnershipChanged(IDocCommentOwner old, IDocCommentOwner n3w) {
|
||||
private void fireWorkspaceOwnershipChanged(IDocCommentOwner oldOwner, IDocCommentOwner newOwner) {
|
||||
for(Iterator i= fListeners.iterator(); i.hasNext();) {
|
||||
((IDocCommentOwnershipListener)i.next()).workspaceOwnershipChanged(old, n3w);
|
||||
((IDocCommentOwnershipListener)i.next()).workspaceOwnershipChanged(oldOwner, newOwner);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue