Merged V3.2 to HEAD

15897: Merged V3.1 to V3.2
      14485: (RECORD ONLY) ETHREEOH-1937
      14915: (RECORD ONLY) Fix for ETHREEOH-2011: chaining-authentication-context.xml.sample
      14954: (RECORD ONLY) Fix merge error
      14966: (RECORD ONLY) Merged V2.2 to V3.1
         14131: *RECORD ONLY*
         14605: Merged HEAD to V2.2 (workaround for ETWOTWO-1137)
            14368: Fix for ETHREEOH-1936
         14607: Fixed NPE in TextMiningContentTransformer: Lead-up to fix for ETWOTWO-1174
      14992: (RECORD ONLY) Updated svn:mergeinfo for V2.1-A
      15080: Applied suggested fix for ETHREEOH-2252: Emailed content created in wrong space
      15131: Merged V2.1-A to V3.1 (ETHREEOH-2270)
         13465: Fix for ADB-161 ACT 7870 - added 'xsd' to mimetype map.
      15134: Merged V2.2 to V3.1
         14332: (RECORD-ONLY)
         14717: (RECORD-ONLY)
         14745: (RECORD-ONLY)
         14746: Fixed error relating to detection and clean-up of duplicate child associations
         14759: Missed check-in: Set transactionService for post-transaction duplicate child assoc cleanup
         14761: (RECORD-ONLY)
         14885: (RECORD-ONLY)
         14893: (RECORD-ONLY)
         14903: (RECORD-ONLY)
      15204: Fixed ETHREEOH-2303: FixNameCrcValuesPatch throws ConstraintViolationException during upgrade ...
      15214: Fixed ETHREEOH-1861: Offline synchronization updates file content without any changes
      15271: Applied patch fix: Imported users don't conform to case-sensitivity switch
      15352: ETHREEOH-2322
      15361: ETHREEOH-1112
      15369: ETHREEOH-2448
      15419: ETHREEOH-2479
      15431: ETHREEOH-2520 and ETHREEOH-2521
      15587: (RECORD ONLY) Moved Enterprise-only scripts to correct location
      15616: Fix ETHREEOH-2581 - WCM layered folder - can't submit deleted file
      15675: WCM fixes (ETHREEOH-2110 & ETHREEOH-2645)
      15836: Check for null username in ContentUsage service getUserUsage() method
      15840: (RECORD ONLY) Merged V3.2 to V3.1
         14760: Fix for ALFCOM-586 - trims and ignores leading/trailing whitespace before validation in JSF client forms.
      15841: Fixes for ETHREEOH-2702 and ETHREEOH-2687
      15860: (RECORD ONLY) Added Oracle and MS SQL Server config
      15891: Removed unused compiler directive
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /alfresco/BRANCHES/DEV/BELARUS/ETHREEOH-2221:r14753
   Merged /alfresco/BRANCHES/V2.1-A: lots
   Merged /alfresco/BRANCHES/V2.2:r14131,14332,14605,14607,14717,14745-14746,14759,14761,14885,14893,14903
   Merged /alfresco/BRANCHES/V3.1:r14485,14915,14954,14966,14992,15080,15131,15134,15204,15214,15271,15352,15361,15369,15419,15431,15587,15616,15675,15818,15836,15840-15841,15860,15891
   Merged /alfresco/BRANCHES/V3.2:r15897


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16886 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-10-13 20:08:41 +00:00
parent 34b82892b5
commit 2dd348a281
20 changed files with 669 additions and 130 deletions

View File

@@ -1307,6 +1307,123 @@ public class SandboxServiceImplTest extends AbstractWCMServiceImplTest
assertNotNull(assetService.getAssetWebApp(stagingSandboxId, webApp, "/myDir1/myFile2"));
}
public void testSubmitDeletedItems_mimic_ETHREEOH_2581() throws IOException, InterruptedException
{
// Create Web Project A
WebProjectInfo wpInfoA = wpService.createWebProject(TEST_SANDBOX+"-A", TEST_WEBPROJ_NAME+" A", TEST_WEBPROJ_TITLE, TEST_WEBPROJ_DESCRIPTION);
final String wpStoreIdA = wpInfoA.getStoreId();
final String webAppA = wpInfoA.getDefaultWebApp();
final String stagingSandboxIdA = wpInfoA.getStagingStoreName();
SandboxInfo sbInfoA = sbService.getAuthorSandbox(wpStoreIdA);
String authorSandboxIdA = sbInfoA.getSandboxId();
// no assets
String stagingSandboxPathA = sbInfoA.getSandboxRootPath() + "/" + webAppA;
assertEquals(0, assetService.listAssets(stagingSandboxIdA, -1, stagingSandboxPathA, false).size());
// no changes yet
List<AssetInfo> assets = sbService.listChangedAll(authorSandboxIdA, true);
assertEquals(0, assets.size());
String authorSandboxPathA = sbInfoA.getSandboxRootPath() + "/" + webAppA;
assetService.createFolder(authorSandboxIdA, authorSandboxPathA, "test", null);
final String MYFILE = "This is testfile.txt in AAA";
ContentWriter writer = assetService.createFile(authorSandboxIdA, authorSandboxPathA+"/test", "testfile.txt", null);
writer.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN);
writer.setEncoding("UTF-8");
writer.putContent(MYFILE);
assertEquals(1, assetService.listAssets(authorSandboxIdA, -1, authorSandboxPathA, false).size());
assertEquals(1, assetService.listAssets(authorSandboxIdA, -1, authorSandboxPathA+"/test", false).size());
assets = sbService.listChangedWebApp(authorSandboxIdA, webAppA, false);
assertEquals(1, assets.size());
// check staging before
assertEquals(0, assetService.listAssets(stagingSandboxIdA, -1, stagingSandboxPathA, false).size());
// submit (new assets) !
sbService.submitWebApp(authorSandboxIdA, webAppA, "A1", "A1");
Thread.sleep(SUBMIT_DELAY);
assets = sbService.listChangedWebApp(authorSandboxIdA, webAppA, false);
assertEquals(0, assets.size());
// check staging after
List<AssetInfo> listing = assetService.listAssets(stagingSandboxIdA, -1, stagingSandboxPathA, false);
assertEquals(1, listing.size());
listing = assetService.listAssets(stagingSandboxIdA, -1, stagingSandboxPathA+"/test", false);
assertEquals(1, listing.size());
// Create Web Project B
WebProjectInfo wpInfoB = wpService.createWebProject(TEST_SANDBOX+"-B", TEST_WEBPROJ_NAME+" B", TEST_WEBPROJ_TITLE, TEST_WEBPROJ_DESCRIPTION);
final String wpStoreIdB = wpInfoB.getStoreId();
final String webAppB = wpInfoB.getDefaultWebApp();
final String stagingSandboxIdB = wpInfoB.getStagingStoreName();
SandboxInfo sbInfoB = sbService.getAuthorSandbox(wpStoreIdB);
String authorSandboxIdB = sbInfoB.getSandboxId();
// no assets
String stagingSandboxPathB = sbInfoB.getSandboxRootPath() + "/" + webAppB;
assertEquals(0, assetService.listAssets(stagingSandboxIdB, -1, stagingSandboxPathB, false).size());
// no changes yet
assets = sbService.listChangedAll(authorSandboxIdB, true);
assertEquals(0, assets.size());
// drop to AVM to create WCM layered folder
avmService.createLayeredDirectory(wpStoreIdA+":"+stagingSandboxPathA+"/test", wpStoreIdB+":"+stagingSandboxPathB, "test");
String authorSandboxPathB = sbInfoB.getSandboxRootPath() + "/" + webAppB;
assertEquals(1, assetService.listAssets(authorSandboxIdB, -1, authorSandboxPathB, false).size());
assertEquals(1, assetService.listAssets(authorSandboxIdB, -1, authorSandboxPathB+"/test", false).size());
// modify file
final String MYFILE_MODIFIED = "This is testfile.txt modified in BBB";
writer = assetService.getContentWriter(assetService.getAssetWebApp(authorSandboxIdB, webAppB+"/test", "/testfile.txt"));
writer.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN);
writer.setEncoding("UTF-8");
writer.putContent(MYFILE_MODIFIED);
// submit (modified asset)
sbService.submitWebApp(authorSandboxIdB, webAppB, "B1", "B1");
Thread.sleep(SUBMIT_DELAY);
// Switch back to Web Project A
// delete folder
assetService.deleteAsset(assetService.getAssetWebApp(authorSandboxIdA, webAppA, "test"));
// submit (deleted asset)
sbService.submitWebApp(authorSandboxIdA, webAppA, "A2", "A2");
Thread.sleep(SUBMIT_DELAY);
// Switch back to Web Project B
// delete file
assetService.deleteAsset(assetService.getAssetWebApp(authorSandboxIdB, webAppB+"/test", "testfile.txt"));
// submit (deleted asset)
// ETHREEOH_2581
sbService.submitWebApp(authorSandboxIdB, webAppB, "B2", "B2");
Thread.sleep(SUBMIT_DELAY);
}
// revert/undo (changed) assets in user sandbox
public void testUndo() throws IOException, InterruptedException
{