You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by en...@apache.org on 2023/12/13 23:18:03 UTC
(sling-org-apache-sling-testing-jcr-mock) branch master updated: SLING-12195 MockUser use a home node property for the disabled state (#33)
This is an automated email from the ASF dual-hosted git repository.
enorman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-jcr-mock.git
The following commit(s) were added to refs/heads/master by this push:
new 3b2a6bf SLING-12195 MockUser use a home node property for the disabled state (#33)
3b2a6bf is described below
commit 3b2a6bf5131cd82bab50939ed7f2e79aeb0bf08a
Author: Eric Norman <en...@apache.org>
AuthorDate: Wed Dec 13 15:17:59 2023 -0800
SLING-12195 MockUser use a home node property for the disabled state (#33)
---
.../java/org/apache/sling/testing/mock/jcr/MockUser.java | 16 +++++++++-------
.../sling/testing/mock/jcr/MockUserManagerTest.java | 8 +++++++-
.../org/apache/sling/testing/mock/jcr/MockUserTest.java | 5 +++++
3 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/src/main/java/org/apache/sling/testing/mock/jcr/MockUser.java b/src/main/java/org/apache/sling/testing/mock/jcr/MockUser.java
index 88ed311..3645b03 100644
--- a/src/main/java/org/apache/sling/testing/mock/jcr/MockUser.java
+++ b/src/main/java/org/apache/sling/testing/mock/jcr/MockUser.java
@@ -41,8 +41,6 @@ import org.slf4j.LoggerFactory;
*/
class MockUser extends MockAuthorizable implements User {
private Logger logger = LoggerFactory.getLogger(getClass());
- private boolean disabled;
- private String disabledReason;
public MockUser(@Nullable String id, @Nullable Principal principal,
@NotNull Node homeNode,
@@ -124,21 +122,25 @@ class MockUser extends MockAuthorizable implements User {
@Override
public void disable(@Nullable String reason) throws RepositoryException {
if (reason == null) {
- this.disabled = false;
- this.disabledReason = null;
+ if (homeNode.hasProperty(UserConstants.REP_DISABLED)) {
+ homeNode.getProperty(UserConstants.REP_DISABLED).remove();
+ }
} else {
- this.disabled = true;
- this.disabledReason = reason;
+ homeNode.setProperty(UserConstants.REP_DISABLED, reason);
}
}
@Override
public boolean isDisabled() throws RepositoryException {
- return disabled;
+ return homeNode.hasProperty(UserConstants.REP_DISABLED);
}
@Override
public @Nullable String getDisabledReason() throws RepositoryException {
+ String disabledReason = null;
+ if (homeNode.hasProperty(UserConstants.REP_DISABLED)) {
+ disabledReason = homeNode.getProperty(UserConstants.REP_DISABLED).getString();
+ }
return disabledReason;
}
diff --git a/src/test/java/org/apache/sling/testing/mock/jcr/MockUserManagerTest.java b/src/test/java/org/apache/sling/testing/mock/jcr/MockUserManagerTest.java
index 33278ea..d63e626 100644
--- a/src/test/java/org/apache/sling/testing/mock/jcr/MockUserManagerTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/jcr/MockUserManagerTest.java
@@ -104,6 +104,8 @@ public class MockUserManagerTest {
Node testuser2 = usersNode.addNode("testuser2", UserConstants.NT_REP_USER);
testuser2.setProperty(UserConstants.REP_AUTHORIZABLE_ID, "testuser2");
testuser2.setProperty(UserConstants.REP_PRINCIPAL_NAME, "testuser2");
+ // also disabled to verify this state is restored after loading
+ testuser2.setProperty(UserConstants.REP_DISABLED, "Bad Behavior");
Node testsystemuser1 = usersNode.addNode("testsystemuser1", UserConstants.NT_REP_SYSTEM_USER);
testsystemuser1.setProperty(UserConstants.REP_AUTHORIZABLE_ID, "testsystemuser1");
@@ -121,7 +123,11 @@ public class MockUserManagerTest {
// verify password state was stored
SimpleCredentials creds = (SimpleCredentials)((User)authorizable).getCredentials();
assertTrue(PasswordUtil.isSame(String.valueOf(creds.getPassword()), "testPwd"));
- assertNotNull(userManager.getAuthorizable("testuser2"));
+ @Nullable Authorizable authorizable2 = userManager.getAuthorizable("testuser2");
+ assertTrue(authorizable2 instanceof User);
+ // verify disabled state was stored
+ assertTrue(((User)authorizable2).isDisabled());
+ assertEquals("Bad Behavior", ((User)authorizable2).getDisabledReason());
assertNotNull(userManager.getAuthorizable("testsystemuser1"));
assertNotNull(userManager.getAuthorizable("testgroup1"));
}
diff --git a/src/test/java/org/apache/sling/testing/mock/jcr/MockUserTest.java b/src/test/java/org/apache/sling/testing/mock/jcr/MockUserTest.java
index a53ba15..dc803a0 100644
--- a/src/test/java/org/apache/sling/testing/mock/jcr/MockUserTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/jcr/MockUserTest.java
@@ -199,6 +199,11 @@ public class MockUserTest extends MockAuthorizableTest<User> {
authorizable.disable(null);
assertFalse(authorizable.isDisabled());
assertNull(authorizable.getDisabledReason());
+
+ // one more time for code coverage of user not previously disabled
+ authorizable.disable(null);
+ assertFalse(authorizable.isDisabled());
+ assertNull(authorizable.getDisabledReason());
}
/**