Author: stillalex
Date: Mon Jun 11 14:07:25 2018
New Revision: 1833331
URL: http://svn.apache.org/viewvc?rev=1833331&view=rev
Log:
OAK-6028 UserImporter.start: should return false for User tree
- backported r1790013,1790069,1790077 to 1.6 branch
Added:
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
- copied unchanged from r1790013,
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationAbortTest.java
- copied unchanged from r1790013,
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationAbortTest.java
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationBestEffortTest.java
- copied unchanged from r1790013,
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationBestEffortTest.java
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java
- copied unchanged from r1790013,
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java
Modified:
jackrabbit/oak/branches/1.6/ (props changed)
jackrabbit/oak/branches/1.6/oak-core/ (props changed)
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
Propchange: jackrabbit/oak/branches/1.6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jun 11 14:07:25 2018
@@ -1,3 +1,3 @@
/jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789534,1789925,1789940,1789987,1790006,1790382,1790502-1790503,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799924,1800244,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260,1802262,1802286,1802548,1802905,1802934
,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808022,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809253,1809255-1809256,1809289,1809745,1811071-1811072,1811155,1811380,1811655,1811952,1811963,1811986,1813192,1814189,1814332,1814397,1815201,1815438,1815926,1817326,1817919,1817987-1817988,1817990,1818038,1818042,1818056,1818124,1818554,1818576,1818645,1819048,1819050,1821325,1821358,1821495,1821516,1822850,1823172,1825471,1826237,1826338,1826532,1826640,1826932,1826957,1827472,1827486,1827977,1829569,1829987,1830019,1830160,1830748,1831374,1832379,1832535
+/jackrabbit/oak/trunk:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789534,1789925,1789940,1789987,1790006,1790013,1790069,1790077,1790382,1790502-1790503,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799924,1800244,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260,1802262,1802286
,1802548,1802905,1802934,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808022,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809253,1809255-1809256,1809289,1809745,1811071-1811072,1811155,1811380,1811655,1811952,1811963,1811986,1813192,1814189,1814332,1814397,1815201,1815438,1815926,1817326,1817919,1817987-1817988,1817990,1818038,1818042,1818056,1818124,1818554,1818576,1818645,1819048,1819050,1821325,1821358,1821495,1821516,1822850,1823172,1825471,1826237,1826338,1826532,1826640,1826932,1826957,1827472,1827486,1827977,1829569,1829987,1830019,1830160,1830748,1831374,1832379,1832535
/jackrabbit/trunk:1345480
Propchange: jackrabbit/oak/branches/1.6/oak-core/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jun 11 14:07:25 2018
@@ -1,5 +1,5 @@
/jackrabbit/oak/branches/1.0/oak-core:1665962
/jackrabbit/oak/trunk/oak-blob-plugins:1819950
-/jackrabbit/oak/trunk/oak-core:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789441,1789534,1789925,1789940,1789987,1790006,1790382,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799861,1799924,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260,1802262,1802286,1802548,1802905,180293
4,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809253,1809255-1809256,1811380,1811952,1811963,1811986,1814332,1818645,1821325,1821358,1821516,1830160
+/jackrabbit/oak/trunk/oak-core:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789441,1789534,1789925,1789940,1789987,1790006,1790013,1790069,1790077,1790382,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799861,1799924,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260,1802262,180228
6,1802548,1802905,1802934,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809253,1809255-1809256,1811380,1811952,1811963,1811986,1814332,1818645,1821325,1821358,1821516,1830160
/jackrabbit/oak/trunk/oak-store-document:1809866,1811575,1811702,1811709,1811823,1811835,1811931,1812739,1812750,1812753,1814407,1814499,1814579,1815450,1815466,1815940,1816436,1817379,1818301,1818303,1818903,1818906,1819421,1820199,1820661,1821130,1821477,1821487,1823163,1823169,1824962,1825442,1825470
/jackrabbit/trunk/oak-core:1345480
Modified:
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java?rev=1833331&r1=1833330&r2=1833331&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
(original)
+++
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
Mon Jun 11 14:07:25 2018
@@ -26,6 +26,7 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
+import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.jcr.ImportUUIDBehavior;
@@ -389,31 +390,25 @@ class UserImporter implements ProtectedP
// ---------------------------------------------< ProtectedNodeImporter
>---
@Override
public boolean start(@Nonnull Tree protectedParent) throws
RepositoryException {
+ Authorizable auth = null;
if (isMemberNode(protectedParent)) {
Tree groupTree = protectedParent;
while (isMemberNode(groupTree) && !groupTree.isRoot()) {
groupTree = groupTree.getParent();
}
- Authorizable auth = userManager.getAuthorizable(groupTree);
- if (auth == null) {
- log.debug("Cannot handle protected node " + protectedParent +
". It nor one of its parents represent a valid Authorizable.");
- return false;
- } else {
- currentMembership = getMembership(auth.getPath());
- return true;
- }
+ auth = userManager.getAuthorizable(groupTree);
} else if (isMemberReferencesListNode(protectedParent)) {
- Authorizable auth =
userManager.getAuthorizable(protectedParent.getParent());
- if (auth == null) {
- log.debug("Cannot handle protected node " + protectedParent +
". It nor one of its parents represent a valid Authorizable.");
- return false;
- } else {
- currentMembership = getMembership(auth.getPath());
- return true;
- }
+ auth = userManager.getAuthorizable(protectedParent.getParent());
+
} // else: parent node is not of type rep:Members or
rep:MemberReferencesList
- return false;
+ if (auth == null || !auth.isGroup()) {
+ log.debug("Cannot handle protected node " + protectedParent + ".
It nor one of its parents represent a valid Group.");
+ return false;
+ } else {
+ currentMembership = getMembership(auth.getPath());
+ return true;
+ }
}
@Override
@@ -480,18 +475,18 @@ class UserImporter implements ProtectedP
}
}
- private boolean isValid(PropertyDefinition definition, String
oakNodeTypeName, boolean multipleStatus) {
+ private boolean isValid(@Nonnull PropertyDefinition definition, @Nonnull
String oakNodeTypeName, boolean multipleStatus) {
return multipleStatus == definition.isMultiple() &&
definition.getDeclaringNodeType().isNodeType(namePathMapper.getJcrName(oakNodeTypeName));
}
- private static boolean isMemberNode(@Nullable Tree tree) {
+ private static boolean isMemberNode(@Nonnull Tree tree) {
//noinspection deprecation
- return tree != null &&
NT_REP_MEMBERS.equals(TreeUtil.getPrimaryTypeName(tree));
+ return tree.exists() &&
NT_REP_MEMBERS.equals(TreeUtil.getPrimaryTypeName(tree));
}
- private static boolean isMemberReferencesListNode(@Nullable Tree tree) {
- return tree != null &&
NT_REP_MEMBER_REFERENCES_LIST.equals(TreeUtil.getPrimaryTypeName(tree));
+ private static boolean isMemberReferencesListNode(@Nonnull Tree tree) {
+ return tree.exists() &&
NT_REP_MEMBER_REFERENCES_LIST.equals(TreeUtil.getPrimaryTypeName(tree));
}
private static boolean isPwdNode(@Nonnull Tree tree) {
Modified:
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java?rev=1833331&r1=1833330&r2=1833331&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
(original)
+++
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
Mon Jun 11 14:07:25 2018
@@ -74,131 +74,7 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;
-public class UserImporterTest extends AbstractSecurityTest implements
UserConstants {
-
- private static final String TEST_USER_ID = "uid";
- private static final String TEST_GROUP_ID = "gid";
-
- private TestAction testAction;
- AuthorizableActionProvider actionProvider = new
AuthorizableActionProvider() {
- @Nonnull
- @Override
- public List<? extends AuthorizableAction>
getAuthorizableActions(@Nonnull SecurityProvider securityProvider) {
- return (testAction == null) ?
ImmutableList.<AuthorizableAction>of() : ImmutableList.of(testAction);
- }
- };
-
- private User testUser;
-
- private ReferenceChangeTracker refTracker = new ReferenceChangeTracker();
-
- UserImporter importer;
-
- @Override
- public void before() throws Exception {
- super.before();
-
- testUser = getTestUser();
- importer = new UserImporter(getImportConfig());
- }
-
- @Override
- public void after() throws Exception {
- try {
- refTracker.clear();
- root.refresh();
- } finally {
- super.after();
- }
- }
-
- ConfigurationParameters getImportConfig() {
- return
getSecurityConfigParameters().getConfigValue(UserConfiguration.NAME,
ConfigurationParameters.EMPTY);
- }
-
- String getImportBehavior() {
- return ImportBehavior.NAME_IGNORE;
- }
-
- @Override
- protected ConfigurationParameters getSecurityConfigParameters() {
- ConfigurationParameters userParams = ConfigurationParameters.of(
- UserConstants.PARAM_AUTHORIZABLE_ACTION_PROVIDER,
actionProvider,
- ProtectedItemImporter.PARAM_IMPORT_BEHAVIOR,
getImportBehavior()
- );
- return ConfigurationParameters.of(UserConfiguration.NAME, userParams);
- }
-
- Session mockJackrabbitSession() throws Exception {
- JackrabbitSession s = Mockito.mock(JackrabbitSession.class);
- when(s.getUserManager()).thenReturn(getUserManager(root));
- return s;
- }
-
- boolean isWorkspaceImport() {
- return false;
- }
-
-
- boolean init() throws Exception {
- return init(false);
- }
-
- boolean init(boolean createAction) throws Exception {
- if (createAction) {
- testAction = new TestAction();
- }
- return importer.init(mockJackrabbitSession(), root,
getNamePathMapper(), isWorkspaceImport(),
ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING, refTracker,
getSecurityProvider());
- }
-
- private Tree createUserTree() {
- Tree folder =
root.getTree(getUserConfiguration().getParameters().getConfigValue(PARAM_USER_PATH,
DEFAULT_USER_PATH));
- Tree userTree = folder.addChild("userTree");
- userTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_USER,
Type.NAME);
- userTree.setProperty(JcrConstants.JCR_UUID, new UserProvider(root,
ConfigurationParameters.EMPTY).getContentID(TEST_USER_ID));
- return userTree;
- }
-
- private Tree createGroupTree() throws Exception {
- String groupPath =
getUserConfiguration().getParameters().getConfigValue(PARAM_GROUP_PATH,
DEFAULT_GROUP_PATH);
-
- NodeUtil node = new NodeUtil(root.getTree(PathUtils.ROOT_PATH));
- NodeUtil groupRoot =
node.getOrAddTree(PathUtils.relativize(PathUtils.ROOT_PATH, groupPath),
NT_REP_AUTHORIZABLE_FOLDER);
-
- Tree groupTree = groupRoot.addChild("testGroup",
NT_REP_GROUP).getTree();
- groupTree.setProperty(JcrConstants.JCR_UUID, new UserProvider(root,
ConfigurationParameters.EMPTY).getContentID(TEST_GROUP_ID));
- return groupTree;
- }
-
- private PropInfo createPropInfo(@Nonnull String name, final String...
values) {
- List<TextValue> txtValues = Lists.newArrayList();
- for (final String v : values) {
- txtValues.add(new TextValue() {
- @Override
- public String getString() {
- return v;
- }
-
- @Override
- public Value getValue(int targetType) throws
RepositoryException {
- return getValueFactory(root).createValue(v, targetType);
- }
-
- @Override
- public void dispose() {
- //nop
- }
- });
- }
- return new PropInfo(name, PropertyType.STRING, txtValues);
- }
-
- private PropertyDefinition mockPropertyDefinition(@Nonnull String
declaringNt, boolean mv) throws Exception {
- PropertyDefinition def = Mockito.mock(PropertyDefinition.class);
- when(def.isMultiple()).thenReturn(mv);
-
when(def.getDeclaringNodeType()).thenReturn(ReadOnlyNodeTypeManager.getInstance(root,
getNamePathMapper()).getNodeType(declaringNt));
- return def;
- }
+public class UserImporterTest extends UserImporterBaseTest implements
UserConstants {
//---------------------------------------------------------------< init
>---
@Test
@@ -405,6 +281,38 @@ public class UserImporterTest extends Ab
}
@Test
+ public void testHandleMembers() throws Exception {
+ init();
+ Tree groupTree = createGroupTree();
+ assertTrue(importer.handlePropInfo(groupTree,
createPropInfo(REP_MEMBERS, "member1", "member2"),
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+ // writing is postponed though
+ assertNull(groupTree.getProperty(REP_MEMBERS));
+ }
+
+ @Test
+ public void testHandleMembersOnUser() throws Exception {
+ init();
+ Tree userTree = createUserTree();
+ assertFalse(importer.handlePropInfo(userTree,
createPropInfo(REP_MEMBERS, "member1"),
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+ }
+
+ @Test
+ public void testHandleMembersSinglePropertyDef() throws Exception {
+ init();
+ Tree groupTree = createGroupTree();
+ assertFalse(importer.handlePropInfo(groupTree,
createPropInfo(REP_MEMBERS, "member1"),
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, false)));
+ assertNull(groupTree.getProperty(REP_MEMBERS));
+ }
+
+ @Test
+ public void testHandleMembersOtherDeclNtDef() throws Exception {
+ init();
+ Tree groupTree = createGroupTree();
+ assertFalse(importer.handlePropInfo(groupTree,
createPropInfo(REP_MEMBERS, "member1"),
mockPropertyDefinition(NT_REP_AUTHORIZABLE, true)));
+ assertNull(groupTree.getProperty(REP_MEMBERS));
+ }
+
+ @Test
public void testHandleDisabled() throws Exception {
init();
Tree userTree = createUserTree();
@@ -460,32 +368,6 @@ public class UserImporterTest extends Ab
importer.processReferences();
}
- @Test
- public void testProcessUnknownImpersonators() throws Exception {
- init();
- Tree userTree = createUserTree();
- assertTrue(importer.handlePropInfo(userTree,
createPropInfo(REP_IMPERSONATORS, "impersonator1", "impersonator2"),
mockPropertyDefinition(NT_REP_USER, true)));
-
- importer.processReferences();
-
- // default importbehavior == IGNORE
- PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
- assertNull(impersonators);
- }
-
- @Test
- public void testProcessImpersonators() throws Exception {
- init();
- Tree userTree = createUserTree();
- assertTrue(importer.handlePropInfo(userTree,
createPropInfo(REP_IMPERSONATORS, testUser.getPrincipal().getName()),
mockPropertyDefinition(NT_REP_USER, true)));
-
- importer.processReferences();
-
- PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
- assertNotNull(impersonators);
- assertEquals(ImmutableList.of(testUser.getPrincipal().getName()),
impersonators.getValue(Type.STRINGS));
- }
-
//------------------------------------------------< propertiesCompleted
>---
@Test
@@ -551,67 +433,83 @@ public class UserImporterTest extends Ab
testAction.checkMethods();
}
-
//--------------------------------------------------------------------------
+ //--------------------------------------------------------------< start
>---
+ @Test
+ public void testStartUserTree() throws Exception {
+ init(true);
+ assertFalse(importer.start(createUserTree()));
+ }
+
+ @Test
+ public void testStartGroupTree() throws Exception {
+ init(true);
+ assertFalse(importer.start(createGroupTree()));
+ }
+
+ @Test
+ public void testStartMembersRefListTree() throws Exception {
+ init(true);
+ Tree groupTree = createGroupTree();
+ Tree memberRefList = groupTree.addChild(REP_MEMBERS_LIST);
+ memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE,
NT_REP_MEMBER_REFERENCES_LIST);
- private final class TestAction implements AuthorizableAction, GroupAction {
+ assertTrue(importer.start(memberRefList));
+ }
+
+ @Test
+ public void testStartMembersRefListBelowUserTree() throws Exception {
+ init(true);
+ Tree userTree = createUserTree();
+ Tree memberRefList = userTree.addChild(REP_MEMBERS_LIST);
+ memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE,
NT_REP_MEMBER_REFERENCES_LIST);
+
+ assertFalse(importer.start(memberRefList));
+ }
+
+ @Test
+ public void testStartMembersRefBelowAnyTree() throws Exception {
+ init(true);
+ Tree memberRefList =
root.getTree(PathUtils.ROOT_PATH).addChild(REP_MEMBERS_LIST);
+ memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE,
NT_REP_MEMBER_REFERENCES_LIST);
+
+ assertFalse(importer.start(memberRefList));
+ }
+
+ @Test
+ public void testStartRepMembersTree() throws Exception {
+ init(true);
+ Tree groupTree = createGroupTree();
+ Tree repMembers = groupTree.addChild("memberTree");
+ repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
+
+ repMembers = repMembers.addChild("memberTree");
+ repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
+
+ assertTrue(importer.start(repMembers));
+ }
+
+ @Test
+ public void testStartRepMembersBelowUserTree() throws Exception {
+ init(true);
+ Tree userTree = createUserTree();
+ Tree repMembers = userTree.addChild("memberTree");
+ repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
+
+ repMembers = repMembers.addChild("memberTree");
+ repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
+
+ assertFalse(importer.start(repMembers));
+ }
+
+ @Test
+ public void testStartRepMembersBelowAnyTree() throws Exception {
+ init(true);
+ Tree repMembers =
root.getTree(PathUtils.ROOT_PATH).addChild("memberTree");
+ repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
- private List<String> methodCalls = new ArrayList();
+ repMembers = repMembers.addChild("memberTree");
+ repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
- private void clear() {
- methodCalls.clear();
- }
-
- private void checkMethods(String... expected) {
- assertEquals(ImmutableList.copyOf(expected), methodCalls);
- }
-
- @Override
- public void init(SecurityProvider securityProvider,
ConfigurationParameters config) {
- }
-
- @Override
- public void onCreate(Group group, Root root, NamePathMapper
namePathMapper) throws RepositoryException {
- methodCalls.add("onCreate-Group");
- }
-
- @Override
- public void onCreate(User user, String password, Root root,
NamePathMapper namePathMapper) throws RepositoryException {
- methodCalls.add("onCreate-User");
- }
-
- @Override
- public void onRemove(Authorizable authorizable, Root root,
NamePathMapper namePathMapper) throws RepositoryException {
- methodCalls.add("onRemove");
- }
-
- @Override
- public void onPasswordChange(User user, String newPassword, Root root,
NamePathMapper namePathMapper) throws RepositoryException {
- methodCalls.add("onPasswordChange");
- }
-
- @Override
- public void onMemberAdded(Group group, Authorizable member, Root root,
NamePathMapper namePathMapper) throws RepositoryException {
- methodCalls.add("onMemberAdded");
- }
-
- @Override
- public void onMembersAdded(Group group, Iterable<String> memberIds,
Iterable<String> failedIds, Root root, NamePathMapper namePathMapper) throws
RepositoryException {
- methodCalls.add("onMembersAdded");
- }
-
- @Override
- public void onMembersAddedContentId(Group group, Iterable<String>
memberContentIds, Iterable<String> failedIds, Root root, NamePathMapper
namePathMapper) throws RepositoryException {
- methodCalls.add("onMembersAddedContentId");
- }
-
- @Override
- public void onMemberRemoved(Group group, Authorizable member, Root
root, NamePathMapper namePathMapper) throws RepositoryException {
- methodCalls.add("onMemberRemoved");
- }
-
- @Override
- public void onMembersRemoved(Group group, Iterable<String> memberIds,
Iterable<String> failedIds, Root root, NamePathMapper namePathMapper) throws
RepositoryException {
- methodCalls.add("onMembersRemoved");
- }
+ assertFalse(importer.start(repMembers));
}
}
\ No newline at end of file