[exo-jcr-commits] exo-jcr SVN: r2177 - jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Mar 29 05:37:22 EDT 2010


Author: tolusha
Date: 2010-03-29 05:37:22 -0400 (Mon, 29 Mar 2010)
New Revision: 2177

Modified:
   jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java
Log:
EXOJCR-256: add test creating repository with invalid chars

Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java	2010-03-26 16:25:40 UTC (rev 2176)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java	2010-03-29 09:37:22 UTC (rev 2177)
@@ -65,8 +65,7 @@
  * @author <a href="mailto:alex.reshetnyak at exoplatform.com.ua">Alex Reshetnyak</a>
  * @version $Id: RestRepositoryServiceTest.java 111 2008-11-11 11:11:11Z rainf0x $
  */
-public class RestRepositoryServiceTest
-   extends BaseStandaloneTest
+public class RestRepositoryServiceTest extends BaseStandaloneTest
 {
    private String REST_REPOSITORY_SERVICE_PATH = RestRepositoryService.Constants.BASE_URL;
 
@@ -76,10 +75,10 @@
    {
       super.setUp();
 
-      handler = (RequestHandler) container.getComponentInstanceOfType(RequestHandler.class);
+      handler = (RequestHandler)container.getComponentInstanceOfType(RequestHandler.class);
 
       SessionProviderService sessionProviderService =
-               (SessionProviderService) container.getComponentInstanceOfType(ThreadLocalSessionProviderService.class);
+         (SessionProviderService)container.getComponentInstanceOfType(ThreadLocalSessionProviderService.class);
       assertNotNull(sessionProviderService);
       sessionProviderService.setSessionProvider(null, new SessionProvider(new ConversationState(new Identity("root"))));
    }
@@ -88,9 +87,9 @@
    {
       MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.REPOSITORIES_LIST), new URI(""), null,
-                        new InputHeadersMap(headers));
+         new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.REPOSITORIES_LIST), new URI(""), null, new InputHeadersMap(
+            headers));
 
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
@@ -98,7 +97,7 @@
 
       assertEquals(200, cres.getStatus());
 
-      NamesList repositories = (NamesList) getObject(NamesList.class, responseWriter.getBody());
+      NamesList repositories = (NamesList)getObject(NamesList.class, responseWriter.getBody());
 
       assertNotNull(repositories);
       assertEquals(repositoryService.getConfig().getRepositoryConfigurations().size(), repositories.getNames().size());
@@ -110,9 +109,9 @@
 
       MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.WORKSPACES_LIST + "/" + repoName + "/"),
-                        new URI(""), null, new InputHeadersMap(headers));
+         new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.WORKSPACES_LIST + "/" + repoName + "/"), new URI(""), null,
+            new InputHeadersMap(headers));
 
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
@@ -120,11 +119,11 @@
 
       assertEquals(200, cres.getStatus());
 
-      NamesList workspaces = (NamesList) getObject(NamesList.class, responseWriter.getBody());
+      NamesList workspaces = (NamesList)getObject(NamesList.class, responseWriter.getBody());
 
       assertNotNull(workspaces);
       assertEquals(repositoryService.getConfig().getRepositoryConfiguration(repoName).getWorkspaceEntries().size(),
-               workspaces.getNames().size());
+         workspaces.getNames().size());
    }
 
    public void testGetDefaultWorkspaceConfig() throws Exception
@@ -133,9 +132,9 @@
 
       MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.DEFAULT_WS_CONFIG + "/" + repoName + "/"),
-                        new URI(""), null, new InputHeadersMap(headers));
+         new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.DEFAULT_WS_CONFIG + "/" + repoName + "/"), new URI(""),
+            null, new InputHeadersMap(headers));
 
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
@@ -143,20 +142,20 @@
 
       assertEquals(200, cres.getStatus());
 
-      WorkspaceEntry workspaceEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
+      WorkspaceEntry workspaceEntry = (WorkspaceEntry)getObject(WorkspaceEntry.class, responseWriter.getBody());
 
       assertNotNull(workspaceEntry);
       assertEquals(repositoryService.getConfig().getRepositoryConfiguration(repoName).getDefaultWorkspaceName(),
-               workspaceEntry.getName());
+         workspaceEntry.getName());
    }
 
    public void testGetRepositoryServiceConfiguration() throws Exception
    {
       MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.REPOSITORY_SERVICE_CONFIGURATION), new URI(""),
-                        null, new InputHeadersMap(headers));
+         new ContainerRequestUserRole("GET", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.REPOSITORY_SERVICE_CONFIGURATION), new URI(""), null,
+            new InputHeadersMap(headers));
 
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
@@ -165,12 +164,12 @@
       assertEquals(200, cres.getStatus());
 
       RepositoryServiceConf repositoryConf =
-               (RepositoryServiceConf) getObject(RepositoryServiceConf.class, responseWriter.getBody());
+         (RepositoryServiceConf)getObject(RepositoryServiceConf.class, responseWriter.getBody());
 
       assertNotNull(repositoryConf);
       assertEquals(repositoryService.getConfig().getDefaultRepositoryName(), repositoryConf.getDefaultRepositoryName());
       assertEquals(repositoryService.getConfig().getRepositoryConfigurations().size(), repositoryConf.getRepositories()
-               .size());
+         .size());
    }
 
    public void testCreateRepository() throws Exception
@@ -179,8 +178,8 @@
       String rName = "repo_over_rest";
 
       RepositoryEntry rDefault =
-               repositoryService.getConfig().getRepositoryConfiguration(
-                        repositoryService.getConfig().getDefaultRepositoryName());
+         repositoryService.getConfig().getRepositoryConfiguration(
+            repositoryService.getConfig().getDefaultRepositoryName());
 
       RepositoryEntry rEntry = new RepositoryEntry();
 
@@ -192,7 +191,7 @@
       rEntry.setDefaultWorkspaceName(wsName);
 
       WorkspaceEntry wEntry =
-               makeWorkspaceEntry(rDefault.getWorkspaceEntries().get(0), rName, wsName, "jdbcjcr_to_rest_repo_1", true);
+         makeWorkspaceEntry(rDefault.getWorkspaceEntries().get(0), rName, wsName, "jdbcjcr_to_rest_repo_1", true);
       rEntry.addWorkspace(wEntry);
 
       JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
@@ -202,12 +201,12 @@
       headers.putSingle("Content-Type", "application/json; charset=UTF-8");
 
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.CREATE_REPOSITORY), new URI(""),
-                        new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
-      
-      System.out.print("testCreateRepository  : " +json.toString());
+         new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.CREATE_REPOSITORY), new URI(""), new ByteArrayInputStream(
+            json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
 
+      System.out.print("testCreateRepository  : " + json.toString());
+
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
       handler.handleRequest(creq, cres);
@@ -215,20 +214,69 @@
       assertEquals(200, cres.getStatus());
 
       Session session =
-               repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
+         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
       assertNotNull(session);
       assertNotNull(session.getRootNode());
       session.logout();
    }
 
+   public void testCreateRepositoryWithInvalidChars() throws Exception
+   {
+      String wsName = "ws_over:?//\\__rest!!_1";
+      String rName = "repo:?//\\_over:_re??st";
+
+      RepositoryEntry rDefault =
+         repositoryService.getConfig().getRepositoryConfiguration(
+            repositoryService.getConfig().getDefaultRepositoryName());
+
+      RepositoryEntry rEntry = new RepositoryEntry();
+
+      rEntry.setName(rName);
+      rEntry.setSessionTimeOut(3600000);
+      rEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
+      rEntry.setSecurityDomain("exo-domain");
+      rEntry.setSystemWorkspaceName(wsName);
+      rEntry.setDefaultWorkspaceName(wsName);
+
+      WorkspaceEntry wEntry =
+         makeWorkspaceEntry(rDefault.getWorkspaceEntries().get(0), rName, wsName, "jdbcjcr_to_rest_repo_1", true);
+      rEntry.addWorkspace(wEntry);
+
+      JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
+      JsonValue json = generatorImpl.createJsonObject(rEntry);
+
+      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+      headers.putSingle("Content-Type", "application/json; charset=UTF-8");
+
+      ContainerRequestUserRole creq =
+         new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.CREATE_REPOSITORY), new URI(""), new ByteArrayInputStream(
+            json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
+
+      System.out.print("testCreateRepository  : " + json.toString());
+
+      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
+      ContainerResponse cres = new ContainerResponse(responseWriter);
+      handler.handleRequest(creq, cres);
+
+      assertEquals(200, cres.getStatus());
+
+      Session session =
+         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
+      assertNotNull(session);
+      assertNotNull(session.getRootNode());
+      session.logout();
+   }
+
    public void testCreateWorkspace() throws Exception
    {
       String wsName = "ws_over_rest_2";
       String rName = "repo_over_rest";
 
       WorkspaceEntry wEntry =
-               makeWorkspaceEntry(repositoryService.getDefaultRepository().getConfiguration().getWorkspaceEntries()
-                        .get(0), rName, wsName, "jdbcjcr_to_rest_repo_2", true);
+         makeWorkspaceEntry(repositoryService.getDefaultRepository().getConfiguration().getWorkspaceEntries().get(0),
+            rName, wsName, "jdbcjcr_to_rest_repo_2", true);
+      wEntry.setAccessManager(null);
 
       JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
       JsonValue json = generatorImpl.createJsonObject(wEntry);
@@ -237,13 +285,12 @@
       headers.putSingle("Content-Type", "application/json; charset=UTF-8");
 
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.CREATE_WORKSPACE + "/"
-                        + rName), new URI(""),
-                        new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
-      
-      System.out.print("testCreateWorkspace  : " +json.toString());
+         new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.CREATE_WORKSPACE + "/" + rName), new URI(""),
+            new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
 
+      System.out.print("testCreateWorkspace  : " + json.toString());
+
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
       handler.handleRequest(creq, cres);
@@ -251,7 +298,7 @@
       assertEquals(200, cres.getStatus());
 
       Session session =
-               repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
+         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
       assertNotNull(session);
       assertNotNull(session.getRootNode());
 
@@ -263,16 +310,16 @@
       String wsName = "ws_over_rest_2";
       String rName = "repo_over_rest";
       Session session =
-               repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
+         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
       assertNotNull(session);
       assertNotNull(session.getRootNode());
 
       MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
 
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rName + "/"
-                        + wsName + "/false/"), new URI(""), null, new InputHeadersMap(headers));
+         new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rName + "/" + wsName + "/false/"),
+            new URI(""), null, new InputHeadersMap(headers));
 
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
@@ -282,9 +329,9 @@
 
       //remove with prepare close sessions
       creq =
-               new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rName + "/"
-                        + wsName + "/true/"), new URI(""), null, new InputHeadersMap(headers));
+         new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rName + "/" + wsName + "/true/"),
+            new URI(""), null, new InputHeadersMap(headers));
 
       responseWriter = new ByteArrayContainerResponseWriter();
       cres = new ContainerResponse(responseWriter);
@@ -309,18 +356,16 @@
       String repoName = "db2";
 
       Session session =
-               repositoryService.getRepository(repoName)
-                        .login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
+         repositoryService.getRepository(repoName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
       assertNotNull(session);
       assertNotNull(session.getRootNode());
 
       MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
 
       ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("POST",
-                        new URI(REST_REPOSITORY_SERVICE_PATH
-                                 + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY + "/" + repoName
-                                 + "/false/"), new URI(""), null, new InputHeadersMap(headers));
+         new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY + "/" + repoName + "/false/"),
+            new URI(""), null, new InputHeadersMap(headers));
 
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
@@ -330,9 +375,9 @@
 
       //remove with prepare close sessions
       creq =
-               new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-                        + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY + "/" + repoName + "/true/"),
-                        new URI(""), null, new InputHeadersMap(headers));
+         new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
+            + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY + "/" + repoName + "/true/"),
+            new URI(""), null, new InputHeadersMap(headers));
 
       responseWriter = new ByteArrayContainerResponseWriter();
       cres = new ContainerResponse(responseWriter);
@@ -374,7 +419,7 @@
    }
 
    protected WorkspaceEntry makeWorkspaceEntry(WorkspaceEntry defWEntry, String repoNmae, String wsName,
-            String sourceName, boolean multiDb)
+      String sourceName, boolean multiDb)
    {
       WorkspaceEntry ws1back = new WorkspaceEntry();
       ws1back.setName(wsName);
@@ -396,7 +441,7 @@
       ArrayList params = new ArrayList();
       for (Iterator i = defWEntry.getContainer().getParameters().iterator(); i.hasNext();)
       {
-         SimpleParameterEntry p = (SimpleParameterEntry) i.next();
+         SimpleParameterEntry p = (SimpleParameterEntry)i.next();
          SimpleParameterEntry newp = new SimpleParameterEntry(p.getName(), p.getValue());
 
          if (newp.getName().equals("source-name"))



More information about the exo-jcr-commits mailing list