From de1ba8f23bd64fa6c8136aef87b322abe1893569 Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Wed, 17 Aug 2016 19:46:25 +0000 Subject: [PATCH] Merged 5.1.N (5.1.2) to 5.2.N (5.2.1) 129597 mmuller: Merged 5.0.N (5.0.5) to 5.1.N (5.1.2) (PARTIAL MERGE) 129593 mmuller: Merged 5.0.4 (5.0.4) to 5.0.N (5.0.5) 129585 mmuller: Merged 5.0.3 (5.0.3.9) to 5.0.4 (5.0.4) 129514 mmuller: MNT-16380, REPO-927, ESC-469 Regression fix from 4.2 --> 5.0. Can now use relative paths again. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@129608 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../web/scripts/content/StreamContent.java | 24 ++- .../repo/web/scripts/WebScriptTestSuite.java | 194 +++++++++--------- 2 files changed, 118 insertions(+), 100 deletions(-) diff --git a/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java b/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java index 4fc26d46c8..77cafae3b8 100644 --- a/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java +++ b/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java @@ -428,14 +428,30 @@ public class StreamContent extends AbstractWebScript { this.ref = new NodeRef(nodeRef); } - + ObjectReference(StoreRef ref, String id) { - if (id.indexOf('/') != -1) + String[] relativePath = id.split("/"); + + // bug fix MNT-16380 + // for using a relative path to a node id eg. 18cc-.../folder1/.../folderN/fileA.txt + // if only one slash we don't have a relative path + if (relativePath.length <= 2) { - id = id.substring(0, id.indexOf('/')); + if (id.indexOf('/') != -1) + { + id = id.substring(0, id.indexOf('/')); + } + this.ref = new NodeRef(ref, id); + } + else + { + String[] reference = new String[relativePath.length + 2]; + reference[0] = ref.getProtocol(); + reference[1] = ref.getIdentifier(); + System.arraycopy(relativePath, 0, reference, 2, relativePath.length); + this.ref = repository.findNodeRef("node", reference); } - this.ref = new NodeRef(ref, id); } ObjectReference(StoreRef ref, String[] path) diff --git a/source/test-java/org/alfresco/repo/web/scripts/WebScriptTestSuite.java b/source/test-java/org/alfresco/repo/web/scripts/WebScriptTestSuite.java index 811f76b589..a0fa15047d 100644 --- a/source/test-java/org/alfresco/repo/web/scripts/WebScriptTestSuite.java +++ b/source/test-java/org/alfresco/repo/web/scripts/WebScriptTestSuite.java @@ -23,103 +23,105 @@ * along with Alfresco. If not, see . * #L% */ -package org.alfresco.repo.web.scripts; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.alfresco.repo.model.filefolder.RemoteFileFolderLoaderTest; -import org.alfresco.repo.web.scripts.action.RunningActionRestApiTest; -import org.alfresco.repo.web.scripts.activities.feed.control.FeedControlTest; -import org.alfresco.repo.web.scripts.admin.AdminWebScriptTest; -import org.alfresco.repo.web.scripts.audit.AuditWebScriptTest; -import org.alfresco.repo.web.scripts.blogs.BlogServiceTest; -import org.alfresco.repo.web.scripts.comment.CommentsApiTest; -import org.alfresco.repo.web.scripts.custommodel.CustomModelImportTest; -import org.alfresco.repo.web.scripts.dictionary.DictionaryRestApiTest; -import org.alfresco.repo.web.scripts.discussion.DiscussionRestApiTest; -import org.alfresco.repo.web.scripts.facet.FacetRestApiTest; -import org.alfresco.repo.web.scripts.forms.FormRestApiGet_Test; -import org.alfresco.repo.web.scripts.forms.FormRestApiJsonPost_Test; -import org.alfresco.repo.web.scripts.groups.GroupsTest; -import org.alfresco.repo.web.scripts.invitation.InvitationWebScriptTest; -import org.alfresco.repo.web.scripts.invite.InviteServiceTest; -import org.alfresco.repo.web.scripts.links.LinksRestApiTest; -import org.alfresco.repo.web.scripts.person.PersonServiceTest; -import org.alfresco.repo.web.scripts.preference.PreferenceServiceTest; -import org.alfresco.repo.web.scripts.publishing.PublishingRestApiTest; -import org.alfresco.repo.web.scripts.quickshare.QuickShareRestApiTest; -import org.alfresco.repo.web.scripts.rating.RatingRestApiTest; -import org.alfresco.repo.web.scripts.replication.ReplicationRestApiTest; -import org.alfresco.repo.web.scripts.rule.RuleServiceTest; -import org.alfresco.repo.web.scripts.search.PersonSearchTest; +package org.alfresco.repo.web.scripts; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.alfresco.repo.model.filefolder.RemoteFileFolderLoaderTest; +import org.alfresco.repo.web.scripts.action.RunningActionRestApiTest; +import org.alfresco.repo.web.scripts.activities.feed.control.FeedControlTest; +import org.alfresco.repo.web.scripts.admin.AdminWebScriptTest; +import org.alfresco.repo.web.scripts.audit.AuditWebScriptTest; +import org.alfresco.repo.web.scripts.blogs.BlogServiceTest; +import org.alfresco.repo.web.scripts.comment.CommentsApiTest; +import org.alfresco.repo.web.scripts.custommodel.CustomModelImportTest; +import org.alfresco.repo.web.scripts.dictionary.DictionaryRestApiTest; +import org.alfresco.repo.web.scripts.discussion.DiscussionRestApiTest; +import org.alfresco.repo.web.scripts.facet.FacetRestApiTest; +import org.alfresco.repo.web.scripts.forms.FormRestApiGet_Test; +import org.alfresco.repo.web.scripts.forms.FormRestApiJsonPost_Test; +import org.alfresco.repo.web.scripts.groups.GroupsTest; +import org.alfresco.repo.web.scripts.invitation.InvitationWebScriptTest; +import org.alfresco.repo.web.scripts.invite.InviteServiceTest; +import org.alfresco.repo.web.scripts.links.LinksRestApiTest; +import org.alfresco.repo.web.scripts.person.PersonServiceTest; +import org.alfresco.repo.web.scripts.preference.PreferenceServiceTest; +import org.alfresco.repo.web.scripts.publishing.PublishingRestApiTest; +import org.alfresco.repo.web.scripts.quickshare.QuickShareRestApiTest; +import org.alfresco.repo.web.scripts.rating.RatingRestApiTest; +import org.alfresco.repo.web.scripts.replication.ReplicationRestApiTest; +import org.alfresco.repo.web.scripts.rule.RuleServiceTest; +import org.alfresco.repo.web.scripts.search.PersonSearchTest; import org.alfresco.repo.web.scripts.site.SiteServiceTest; import org.alfresco.repo.web.scripts.site.SurfConfigTest; -import org.alfresco.repo.web.scripts.solr.SOLRWebScriptTest; -import org.alfresco.repo.web.scripts.subscriptions.SubscriptionServiceRestApiTest; -import org.alfresco.repo.web.scripts.tagging.TaggingServiceTest; -import org.alfresco.repo.web.scripts.thumbnail.ThumbnailServiceTest; -import org.alfresco.repo.web.scripts.transfer.TransferWebScriptTest; -import org.alfresco.repo.web.scripts.workflow.ActivitiWorkflowRestApiTest; +import org.alfresco.repo.web.scripts.solr.SOLRWebScriptTest; +import org.alfresco.repo.web.scripts.subscriptions.SubscriptionServiceRestApiTest; +import org.alfresco.repo.web.scripts.tagging.TaggingServiceTest; +import org.alfresco.repo.web.scripts.thumbnail.ThumbnailServiceTest; +import org.alfresco.repo.web.scripts.transfer.TransferWebScriptTest; +import org.alfresco.repo.web.scripts.workflow.ActivitiWorkflowRestApiTest; import org.alfresco.repo.web.scripts.workflow.WorkflowModelBuilderTest; - -/** - * Web Scripts test suite - */ -public class WebScriptTestSuite extends TestSuite -{ - public static Test suite() - { - TestSuite suite = new TestSuite(); - - // Ensure that a suitable context is available - TestWebScriptRepoServer.getTestServer(); - - // Add the tests - suite.addTestSuite( QuickShareRestApiTest.class ); - suite.addTestSuite( AdminWebScriptTest.class ); - suite.addTestSuite( AuditWebScriptTest.class ); - suite.addTestSuite( BlogServiceTest.class ); - suite.addTestSuite( DictionaryRestApiTest.class ); - suite.addTestSuite( DiscussionRestApiTest.class ); - suite.addTestSuite( FeedControlTest.class ); - suite.addTestSuite( FormRestApiGet_Test.class ); - suite.addTestSuite( FormRestApiJsonPost_Test.class ); - suite.addTestSuite( GroupsTest.class ); - suite.addTestSuite( InvitationWebScriptTest.class ); - suite.addTestSuite( InviteServiceTest.class ); - suite.addTestSuite( LoginTest.class ); - suite.addTestSuite( PersonSearchTest.class ); - suite.addTestSuite( PersonServiceTest.class ); - suite.addTestSuite( PreferenceServiceTest.class ); - suite.addTestSuite( RatingRestApiTest.class ); - suite.addTestSuite( ReplicationRestApiTest.class ); - suite.addTestSuite( RepositoryContainerTest.class ); - suite.addTestSuite( RuleServiceTest.class ); - suite.addTestSuite( RunningActionRestApiTest.class ); - suite.addTestSuite( SiteServiceTest.class ); - suite.addTestSuite( TaggingServiceTest.class ); - suite.addTestSuite( ThumbnailServiceTest.class ); - suite.addTestSuite( TransferWebScriptTest.class ); - suite.addTestSuite( WorkflowModelBuilderTest.class ); - suite.addTestSuite( ActivitiWorkflowRestApiTest.class ); - suite.addTestSuite( PublishingRestApiTest.class ); - suite.addTestSuite( SOLRWebScriptTest.class ); - suite.addTestSuite( SubscriptionServiceRestApiTest.class ); - suite.addTestSuite( FacetRestApiTest.class ); - suite.addTestSuite( CommentsApiTest.class ); - suite.addTestSuite( DeclarativeSpreadsheetWebScriptTest.class ); - suite.addTestSuite( XssVulnerabilityTest.class ); - suite.addTestSuite( LinksRestApiTest.class ); - suite.addTestSuite( RemoteFileFolderLoaderTest.class ); - suite.addTestSuite( ReadOnlyTransactionInGetRestApiTest.class ); +import org.alfresco.repo.web.scripts.content.ContentGetTest; + +/** + * Web Scripts test suite + */ +public class WebScriptTestSuite extends TestSuite +{ + public static Test suite() + { + TestSuite suite = new TestSuite(); + + // Ensure that a suitable context is available + TestWebScriptRepoServer.getTestServer(); + + // Add the tests + suite.addTestSuite( QuickShareRestApiTest.class ); + suite.addTestSuite( AdminWebScriptTest.class ); + suite.addTestSuite( AuditWebScriptTest.class ); + suite.addTestSuite( BlogServiceTest.class ); + suite.addTestSuite( DictionaryRestApiTest.class ); + suite.addTestSuite( DiscussionRestApiTest.class ); + suite.addTestSuite( FeedControlTest.class ); + suite.addTestSuite( FormRestApiGet_Test.class ); + suite.addTestSuite( FormRestApiJsonPost_Test.class ); + suite.addTestSuite( GroupsTest.class ); + suite.addTestSuite( InvitationWebScriptTest.class ); + suite.addTestSuite( InviteServiceTest.class ); + suite.addTestSuite( LoginTest.class ); + suite.addTestSuite( PersonSearchTest.class ); + suite.addTestSuite( PersonServiceTest.class ); + suite.addTestSuite( PreferenceServiceTest.class ); + suite.addTestSuite( RatingRestApiTest.class ); + suite.addTestSuite( ReplicationRestApiTest.class ); + suite.addTestSuite( RepositoryContainerTest.class ); + suite.addTestSuite( RuleServiceTest.class ); + suite.addTestSuite( RunningActionRestApiTest.class ); + suite.addTestSuite( SiteServiceTest.class ); + suite.addTestSuite( TaggingServiceTest.class ); + suite.addTestSuite( ThumbnailServiceTest.class ); + suite.addTestSuite( TransferWebScriptTest.class ); + suite.addTestSuite( WorkflowModelBuilderTest.class ); + suite.addTestSuite( ActivitiWorkflowRestApiTest.class ); + suite.addTestSuite( PublishingRestApiTest.class ); + suite.addTestSuite( SOLRWebScriptTest.class ); + suite.addTestSuite( SubscriptionServiceRestApiTest.class ); + suite.addTestSuite( FacetRestApiTest.class ); + suite.addTestSuite( CommentsApiTest.class ); + suite.addTestSuite( DeclarativeSpreadsheetWebScriptTest.class ); + suite.addTestSuite( ContentGetTest.class); + suite.addTestSuite( XssVulnerabilityTest.class ); + suite.addTestSuite( LinksRestApiTest.class ); + suite.addTestSuite( RemoteFileFolderLoaderTest.class ); + suite.addTestSuite( ReadOnlyTransactionInGetRestApiTest.class ); suite.addTestSuite( CustomModelImportTest.class ); - suite.addTestSuite( SurfConfigTest.class ); - // This uses a slightly different context - // As such, we can't run it in the same suite as the others, - // due to finalisers closing caches when we're not looking - //suite.addTestSuite( AssetTest.class ); - - return suite; - } -} + suite.addTestSuite( SurfConfigTest.class ); + // This uses a slightly different context + // As such, we can't run it in the same suite as the others, + // due to finalisers closing caches when we're not looking + //suite.addTestSuite( AssetTest.class ); + + return suite; + } +}