Merged 5.2.N (5.2.1) to HEAD (5.2)

129608 mmuller: 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/HEAD/root@129876 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2016-08-25 10:39:50 +00:00
parent 421751d17f
commit b0fe463739
2 changed files with 118 additions and 100 deletions

View File

@@ -428,14 +428,30 @@ public class StreamContent extends AbstractWebScript
{ {
this.ref = new NodeRef(nodeRef); this.ref = new NodeRef(nodeRef);
} }
ObjectReference(StoreRef ref, String id) 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) ObjectReference(StoreRef ref, String[] path)

View File

@@ -23,103 +23,105 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L% * #L%
*/ */
package org.alfresco.repo.web.scripts; package org.alfresco.repo.web.scripts;
import junit.framework.Test; import junit.framework.Test;
import junit.framework.TestSuite; import junit.framework.TestSuite;
import org.alfresco.repo.model.filefolder.RemoteFileFolderLoaderTest; import org.alfresco.repo.model.filefolder.RemoteFileFolderLoaderTest;
import org.alfresco.repo.web.scripts.action.RunningActionRestApiTest; import org.alfresco.repo.web.scripts.action.RunningActionRestApiTest;
import org.alfresco.repo.web.scripts.activities.feed.control.FeedControlTest; import org.alfresco.repo.web.scripts.activities.feed.control.FeedControlTest;
import org.alfresco.repo.web.scripts.admin.AdminWebScriptTest; import org.alfresco.repo.web.scripts.admin.AdminWebScriptTest;
import org.alfresco.repo.web.scripts.audit.AuditWebScriptTest; import org.alfresco.repo.web.scripts.audit.AuditWebScriptTest;
import org.alfresco.repo.web.scripts.blogs.BlogServiceTest; import org.alfresco.repo.web.scripts.blogs.BlogServiceTest;
import org.alfresco.repo.web.scripts.comment.CommentsApiTest; import org.alfresco.repo.web.scripts.comment.CommentsApiTest;
import org.alfresco.repo.web.scripts.custommodel.CustomModelImportTest; import org.alfresco.repo.web.scripts.custommodel.CustomModelImportTest;
import org.alfresco.repo.web.scripts.dictionary.DictionaryRestApiTest; import org.alfresco.repo.web.scripts.dictionary.DictionaryRestApiTest;
import org.alfresco.repo.web.scripts.discussion.DiscussionRestApiTest; import org.alfresco.repo.web.scripts.discussion.DiscussionRestApiTest;
import org.alfresco.repo.web.scripts.facet.FacetRestApiTest; import org.alfresco.repo.web.scripts.facet.FacetRestApiTest;
import org.alfresco.repo.web.scripts.forms.FormRestApiGet_Test; import org.alfresco.repo.web.scripts.forms.FormRestApiGet_Test;
import org.alfresco.repo.web.scripts.forms.FormRestApiJsonPost_Test; import org.alfresco.repo.web.scripts.forms.FormRestApiJsonPost_Test;
import org.alfresco.repo.web.scripts.groups.GroupsTest; import org.alfresco.repo.web.scripts.groups.GroupsTest;
import org.alfresco.repo.web.scripts.invitation.InvitationWebScriptTest; import org.alfresco.repo.web.scripts.invitation.InvitationWebScriptTest;
import org.alfresco.repo.web.scripts.invite.InviteServiceTest; import org.alfresco.repo.web.scripts.invite.InviteServiceTest;
import org.alfresco.repo.web.scripts.links.LinksRestApiTest; import org.alfresco.repo.web.scripts.links.LinksRestApiTest;
import org.alfresco.repo.web.scripts.person.PersonServiceTest; import org.alfresco.repo.web.scripts.person.PersonServiceTest;
import org.alfresco.repo.web.scripts.preference.PreferenceServiceTest; import org.alfresco.repo.web.scripts.preference.PreferenceServiceTest;
import org.alfresco.repo.web.scripts.publishing.PublishingRestApiTest; import org.alfresco.repo.web.scripts.publishing.PublishingRestApiTest;
import org.alfresco.repo.web.scripts.quickshare.QuickShareRestApiTest; import org.alfresco.repo.web.scripts.quickshare.QuickShareRestApiTest;
import org.alfresco.repo.web.scripts.rating.RatingRestApiTest; import org.alfresco.repo.web.scripts.rating.RatingRestApiTest;
import org.alfresco.repo.web.scripts.replication.ReplicationRestApiTest; import org.alfresco.repo.web.scripts.replication.ReplicationRestApiTest;
import org.alfresco.repo.web.scripts.rule.RuleServiceTest; import org.alfresco.repo.web.scripts.rule.RuleServiceTest;
import org.alfresco.repo.web.scripts.search.PersonSearchTest; import org.alfresco.repo.web.scripts.search.PersonSearchTest;
import org.alfresco.repo.web.scripts.site.SiteServiceTest; import org.alfresco.repo.web.scripts.site.SiteServiceTest;
import org.alfresco.repo.web.scripts.site.SurfConfigTest; import org.alfresco.repo.web.scripts.site.SurfConfigTest;
import org.alfresco.repo.web.scripts.solr.SOLRWebScriptTest; import org.alfresco.repo.web.scripts.solr.SOLRWebScriptTest;
import org.alfresco.repo.web.scripts.subscriptions.SubscriptionServiceRestApiTest; import org.alfresco.repo.web.scripts.subscriptions.SubscriptionServiceRestApiTest;
import org.alfresco.repo.web.scripts.tagging.TaggingServiceTest; import org.alfresco.repo.web.scripts.tagging.TaggingServiceTest;
import org.alfresco.repo.web.scripts.thumbnail.ThumbnailServiceTest; import org.alfresco.repo.web.scripts.thumbnail.ThumbnailServiceTest;
import org.alfresco.repo.web.scripts.transfer.TransferWebScriptTest; import org.alfresco.repo.web.scripts.transfer.TransferWebScriptTest;
import org.alfresco.repo.web.scripts.workflow.ActivitiWorkflowRestApiTest; import org.alfresco.repo.web.scripts.workflow.ActivitiWorkflowRestApiTest;
import org.alfresco.repo.web.scripts.workflow.WorkflowModelBuilderTest; import org.alfresco.repo.web.scripts.workflow.WorkflowModelBuilderTest;
import org.alfresco.repo.web.scripts.content.ContentGetTest;
/**
* Web Scripts test suite /**
*/ * Web Scripts test suite
public class WebScriptTestSuite extends TestSuite */
{ public class WebScriptTestSuite extends TestSuite
public static Test suite() {
{ public static Test suite()
TestSuite suite = new TestSuite(); {
TestSuite suite = new TestSuite();
// Ensure that a suitable context is available
TestWebScriptRepoServer.getTestServer(); // Ensure that a suitable context is available
TestWebScriptRepoServer.getTestServer();
// Add the tests
suite.addTestSuite( QuickShareRestApiTest.class ); // Add the tests
suite.addTestSuite( AdminWebScriptTest.class ); suite.addTestSuite( QuickShareRestApiTest.class );
suite.addTestSuite( AuditWebScriptTest.class ); suite.addTestSuite( AdminWebScriptTest.class );
suite.addTestSuite( BlogServiceTest.class ); suite.addTestSuite( AuditWebScriptTest.class );
suite.addTestSuite( DictionaryRestApiTest.class ); suite.addTestSuite( BlogServiceTest.class );
suite.addTestSuite( DiscussionRestApiTest.class ); suite.addTestSuite( DictionaryRestApiTest.class );
suite.addTestSuite( FeedControlTest.class ); suite.addTestSuite( DiscussionRestApiTest.class );
suite.addTestSuite( FormRestApiGet_Test.class ); suite.addTestSuite( FeedControlTest.class );
suite.addTestSuite( FormRestApiJsonPost_Test.class ); suite.addTestSuite( FormRestApiGet_Test.class );
suite.addTestSuite( GroupsTest.class ); suite.addTestSuite( FormRestApiJsonPost_Test.class );
suite.addTestSuite( InvitationWebScriptTest.class ); suite.addTestSuite( GroupsTest.class );
suite.addTestSuite( InviteServiceTest.class ); suite.addTestSuite( InvitationWebScriptTest.class );
suite.addTestSuite( LoginTest.class ); suite.addTestSuite( InviteServiceTest.class );
suite.addTestSuite( PersonSearchTest.class ); suite.addTestSuite( LoginTest.class );
suite.addTestSuite( PersonServiceTest.class ); suite.addTestSuite( PersonSearchTest.class );
suite.addTestSuite( PreferenceServiceTest.class ); suite.addTestSuite( PersonServiceTest.class );
suite.addTestSuite( RatingRestApiTest.class ); suite.addTestSuite( PreferenceServiceTest.class );
suite.addTestSuite( ReplicationRestApiTest.class ); suite.addTestSuite( RatingRestApiTest.class );
suite.addTestSuite( RepositoryContainerTest.class ); suite.addTestSuite( ReplicationRestApiTest.class );
suite.addTestSuite( RuleServiceTest.class ); suite.addTestSuite( RepositoryContainerTest.class );
suite.addTestSuite( RunningActionRestApiTest.class ); suite.addTestSuite( RuleServiceTest.class );
suite.addTestSuite( SiteServiceTest.class ); suite.addTestSuite( RunningActionRestApiTest.class );
suite.addTestSuite( TaggingServiceTest.class ); suite.addTestSuite( SiteServiceTest.class );
suite.addTestSuite( ThumbnailServiceTest.class ); suite.addTestSuite( TaggingServiceTest.class );
suite.addTestSuite( TransferWebScriptTest.class ); suite.addTestSuite( ThumbnailServiceTest.class );
suite.addTestSuite( WorkflowModelBuilderTest.class ); suite.addTestSuite( TransferWebScriptTest.class );
suite.addTestSuite( ActivitiWorkflowRestApiTest.class ); suite.addTestSuite( WorkflowModelBuilderTest.class );
suite.addTestSuite( PublishingRestApiTest.class ); suite.addTestSuite( ActivitiWorkflowRestApiTest.class );
suite.addTestSuite( SOLRWebScriptTest.class ); suite.addTestSuite( PublishingRestApiTest.class );
suite.addTestSuite( SubscriptionServiceRestApiTest.class ); suite.addTestSuite( SOLRWebScriptTest.class );
suite.addTestSuite( FacetRestApiTest.class ); suite.addTestSuite( SubscriptionServiceRestApiTest.class );
suite.addTestSuite( CommentsApiTest.class ); suite.addTestSuite( FacetRestApiTest.class );
suite.addTestSuite( DeclarativeSpreadsheetWebScriptTest.class ); suite.addTestSuite( CommentsApiTest.class );
suite.addTestSuite( XssVulnerabilityTest.class ); suite.addTestSuite( DeclarativeSpreadsheetWebScriptTest.class );
suite.addTestSuite( LinksRestApiTest.class ); suite.addTestSuite( ContentGetTest.class);
suite.addTestSuite( RemoteFileFolderLoaderTest.class ); suite.addTestSuite( XssVulnerabilityTest.class );
suite.addTestSuite( ReadOnlyTransactionInGetRestApiTest.class ); suite.addTestSuite( LinksRestApiTest.class );
suite.addTestSuite( RemoteFileFolderLoaderTest.class );
suite.addTestSuite( ReadOnlyTransactionInGetRestApiTest.class );
suite.addTestSuite( CustomModelImportTest.class ); suite.addTestSuite( CustomModelImportTest.class );
suite.addTestSuite( SurfConfigTest.class ); suite.addTestSuite( SurfConfigTest.class );
// This uses a slightly different context // This uses a slightly different context
// As such, we can't run it in the same suite as the others, // As such, we can't run it in the same suite as the others,
// due to finalisers closing caches when we're not looking // due to finalisers closing caches when we're not looking
//suite.addTestSuite( AssetTest.class ); //suite.addTestSuite( AssetTest.class );
return suite; return suite;
} }
} }