Merged V3.2 to HEAD

19246: ALF-1940 - case-insensitive AVM path lookups fail on a DB that is (configured by default to be) case-sensitive
    19280: AVM - preserve case on child lookup, add unit tests
    19316: AVM - fix rename (change in 'case') & add unit tests (ALF-1725 & ALF-1767)


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19337 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2010-03-17 11:26:46 +00:00
parent 733cd6e02d
commit 0f0d7a2fe0
18 changed files with 680 additions and 180 deletions

View File

@@ -5976,24 +5976,88 @@ public class AVMServiceTest extends AVMServiceTestBase
*/
public void testCaseInsensitive() throws Exception
{
String storeName = "caseIn";
String storeNameUpper = storeName.toUpperCase();
String storeNameLower = storeName.toLowerCase();
try
{
setupBasicTree();
fService.createStore(storeName);
try
{
fService.createFile("main:/a/b/c", "Foo").close();
fService.createStore(storeNameUpper);
fail();
}
catch (AVMExistsException e)
{
// Do nothing.
}
AVMStoreDescriptor storeDesc1 = fService.getStore(storeNameUpper);
assertNotNull(storeDesc1);
assertEquals(storeName, storeDesc1.getName());
AVMStoreDescriptor storeDesc2 = fService.getStore(storeNameLower);
assertNotNull(storeDesc2);
assertEquals(storeName, storeDesc2.getName());
assertEquals(storeDesc1, storeDesc2); // same id
fService.createDirectory(storeName+":/", "a");
fService.createDirectory(storeName+":/a", "B");
fService.createDirectory(storeName+":/a/B", "c");
fService.createFile(storeName+":/a/B/c", "Foo").close();
AVMNodeDescriptor desc1 = fService.lookup(-1, storeNameUpper+":/A/B/C/FOO");
assertNotNull(desc1);
assertEquals(storeName+":/a/B/c/Foo", desc1.getPath());
try
{
fService.createFile(storeName+":/a/B/c", "FoO").close();
fail();
}
catch (AVMExistsException e)
{
// Do nothing.
}
AVMNodeDescriptor desc2 = fService.lookup(-1, storeNameLower+":/a/b/c/foo");
assertNotNull(desc2);
assertEquals(storeName+":/a/B/c/Foo", desc2.getPath());
assertEquals(desc1, desc2); // same id
desc1 = fService.lookup(-1, storeNameUpper+":/A/B/C");
assertNotNull(desc1);
assertEquals(storeName+":/a/B/c", desc1.getPath());
try
{
fService.createFile(storeName+":/a/b", "C").close();
fail();
}
catch (AVMExistsException e)
{
// Do nothing.
}
desc2 = fService.lookup(-1, storeNameLower+":/a/b/c");
assertNotNull(desc2);
assertEquals(storeName+":/a/B/c", desc2.getPath());
assertEquals(desc1, desc2); // same id
}
catch (Exception e)
{
e.printStackTrace(System.err);
throw e;
}
finally
{
fService.purgeStore(storeName);
}
}
/**