You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2017/08/18 10:56:30 UTC
svn commit: r1805399 - in
/sling/trunk/bundles/extensions/repoinit/parser/src:
main/java/org/apache/sling/repoinit/parser/operations/ main/javacc/
test/java/org/apache/sling/repoinit/parser/test/ test/resources/testcases/
Author: bdelacretaz
Date: Fri Aug 18 10:56:30 2017
New Revision: 1805399
URL: http://svn.apache.org/viewvc?rev=1805399&view=rev
Log:
SLING-6984 - 'disable service user' reason is required
Added:
sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/DisableServiceUserTest.java
- copied, changed from r1805398, sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java
Modified:
sling/trunk/bundles/extensions/repoinit/parser/src/main/java/org/apache/sling/repoinit/parser/operations/DisableServiceUser.java
sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt
sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java
sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61-output.txt
sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61.txt
sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99-output.txt
sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99.txt
Modified: sling/trunk/bundles/extensions/repoinit/parser/src/main/java/org/apache/sling/repoinit/parser/operations/DisableServiceUser.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/main/java/org/apache/sling/repoinit/parser/operations/DisableServiceUser.java?rev=1805399&r1=1805398&r2=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/main/java/org/apache/sling/repoinit/parser/operations/DisableServiceUser.java (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/main/java/org/apache/sling/repoinit/parser/operations/DisableServiceUser.java Fri Aug 18 10:56:30 2017
@@ -18,20 +18,23 @@
package org.apache.sling.repoinit.parser.operations;
public class DisableServiceUser extends ServiceUserOperation {
- private final String message;
+ private final String reason;
- public DisableServiceUser(String username, String message) {
+ public DisableServiceUser(String username, String reason) {
super(username);
- this.message = cleanupQuotedString(message);
+ this.reason = cleanupQuotedString(reason);
+ if(this.reason == null || this.reason.length() == 0) {
+ throw new IllegalArgumentException("A non-empty reason is required");
+ }
}
@Override
protected String getParametersDescription() {
final StringBuilder sb = new StringBuilder();
sb.append(super.getParametersDescription());
- if(message!=null) {
+ if(reason!=null) {
sb.append(" : ");
- sb.append(message);
+ sb.append(reason);
}
return sb.toString();
}
Modified: sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt?rev=1805399&r1=1805398&r2=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt Fri Aug 18 10:56:30 2017
@@ -492,7 +492,7 @@ void disableServiceUserStatement(List<Op
{
<DISABLE> <SERVICE> <USER>
( user = <STRING> )
- ( <COLON> msg = <QUOTED>) ?
+ ( <COLON> msg = <QUOTED> )
{
result.add(new DisableServiceUser(user.image, msg == null ? null : msg.image));
}
Copied: sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/DisableServiceUserTest.java (from r1805398, sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java)
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/DisableServiceUserTest.java?p2=sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/DisableServiceUserTest.java&p1=sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java&r1=1805398&r2=1805399&rev=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/DisableServiceUserTest.java Fri Aug 18 10:56:30 2017
@@ -17,86 +17,25 @@
package org.apache.sling.repoinit.parser.test;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.sling.repoinit.parser.impl.ParseException;
-import org.apache.sling.repoinit.parser.impl.RepoInitParserImpl;
+import org.apache.sling.repoinit.parser.operations.DisableServiceUser;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-/** Test various parsing errors */
-@RunWith(Parameterized.class)
-public class ParsingErrorsTest {
-
- private String input;
- private Class<? extends Throwable> expected;
+public class DisableServiceUserTest {
+
+ public static final String USERNAME = "foo";
- @Parameters
- public static Collection<Object[]> data() {
- @SuppressWarnings("serial")
- final List<Object []> result = new ArrayList<Object []>() {{
- add(new Object[] { "foo", ParseException.class });
- add(new Object[] { "12", ParseException.class });
-
- add(new Object[] { "set ACL on /apps \n remove * for u \n end", null });
- add(new Object[] { "set ACL on /apps \n badkeyword * for u \n end", ParseException.class });
- add(new Object[] { "set ACL on appsWithoutSlash \n remove * for u \n end", ParseException.class });
- add(new Object[] { "set ACL", ParseException.class });
- add(new Object[] { "set ACL \n end", ParseException.class });
-
- add(new Object[] { "create service user bob, alice, tom21", null });
- add(new Object[] { "create service user bob-221_BOB", null });
-
- // this passes since introducing "register namespace" and loosening
- // the PRINCIPAL regexp
- add(new Object[] { "create service user bob/221", null });
-
- add(new Object[] { "create service user bob,/alice, tom21", ParseException.class });
- add(new Object[] { "create service user bob,alice,tom21 # comment not allowed here", ParseException.class });
- add(new Object[] { "CREATE service user bob, alice, tom21", ParseException.class });
- add(new Object[] { "create SERVICE user bob, alice, tom21", ParseException.class });
-
- // Quoted strings in disable service user
- add(new Object[] { "disable service user foo missing colon and quotes", ParseException.class });
- add(new Object[] { "disable service user foo : missing quotes", ParseException.class });
- add(new Object[] { "disable service user foo \"missing colon\"", ParseException.class });
- add(new Object[] { "disable service user foo : missing start quote\"", ParseException.class });
- add(new Object[] { "disable service user foo : \"missing end quote", ParseException.class });
- }};
- return result;
+ @Test
+ public void nonEmptyReason() {
+ new DisableServiceUser(USERNAME, "some reason");
}
- public ParsingErrorsTest(String input, Class<? extends Throwable> expected) {
- this.input = input;
- this.expected = expected;
+ @Test(expected = IllegalArgumentException.class)
+ public void emptyReason() {
+ new DisableServiceUser(USERNAME, "");
}
-
- @Test
- public void checkResult() throws ParseException, IOException {
- final StringReader r = new StringReader(input);
- boolean noException = false;
- try {
- new RepoInitParserImpl(r).parse();
- noException = true;
- } catch(Exception e) {
- assertEquals("for input " + input, expected, e.getClass());
- } catch(Error err) {
- assertEquals("for input " + input, expected, err.getClass());
- } finally {
- r.close();
- }
-
- if(noException && expected != null) {
- fail("Expected a " + expected.getSimpleName() + " for [" + input + "]");
- }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void nullReason() {
+ new DisableServiceUser(USERNAME, null);
}
}
Modified: sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java?rev=1805399&r1=1805398&r2=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/java/org/apache/sling/repoinit/parser/test/ParsingErrorsTest.java Fri Aug 18 10:56:30 2017
@@ -65,6 +65,9 @@ public class ParsingErrorsTest {
add(new Object[] { "CREATE service user bob, alice, tom21", ParseException.class });
add(new Object[] { "create SERVICE user bob, alice, tom21", ParseException.class });
+ // Disable service user with missing reason
+ add(new Object[] { "disable service user foo", ParseException.class });
+
// Quoted strings in disable service user
add(new Object[] { "disable service user foo missing colon and quotes", ParseException.class });
add(new Object[] { "disable service user foo : missing quotes", ParseException.class });
Modified: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61-output.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61-output.txt?rev=1805399&r1=1805398&r2=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61-output.txt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61-output.txt Fri Aug 18 10:56:30 2017
@@ -1,3 +1 @@
-DisableServiceUser svcA : This message explains why it's disabled. Whitespace is preserved.
-DisableServiceUser svcB
-DisableServiceUser svcC
\ No newline at end of file
+DisableServiceUser svcA : This message explains why it's disabled. Whitespace is preserved.
\ No newline at end of file
Modified: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61.txt?rev=1805399&r1=1805398&r2=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61.txt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-61.txt Fri Aug 18 10:56:30 2017
@@ -1,7 +1,2 @@
# Test "disable service user" statements
-
-disable service user svcA : "This message explains why it's disabled. Whitespace is preserved."
-disable service user svcB : ""
-
-# message is optional
-disable service user svcC
+disable service user svcA : "This message explains why it's disabled. Whitespace is preserved."
\ No newline at end of file
Modified: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99-output.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99-output.txt?rev=1805399&r1=1805398&r2=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99-output.txt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99-output.txt Fri Aug 18 10:56:30 2017
@@ -32,4 +32,3 @@ CreateUser userE (with encoded password)
CreateUser one_with-more-chars.ok:/123456 (with encoded password), password=pw-with.ok-:/13456, passwordEncoding=encoding_with.ok-:/12345
CreateServiceUser the-last-one
DisableServiceUser svc1 : This is the message
-DisableServiceUser svc212
Modified: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99.txt?rev=1805399&r1=1805398&r2=1805399&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99.txt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-99.txt Fri Aug 18 10:56:30 2017
@@ -53,5 +53,4 @@ create user userE with password {someEnc
create user one_with-more-chars.ok:/123456 with password {encoding_with.ok-:/12345} pw-with.ok-:/13456
create service user the-last-one
-disable service user svc1 : "This is the message"
-disable service user svc212
+disable service user svc1 : "This is the message"
\ No newline at end of file