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