mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
ACS-4633: Duplicated tag is not detected when tag string contains upper case (#1750)
This commit is contained in:
committed by
GitHub
parent
7c3e8a2549
commit
23de0fefd7
@@ -128,7 +128,7 @@ public class CreateTagsTests extends RestTest
|
|||||||
final String repeatedTagName = getRandomName(TAG_NAME_PREFIX).toLowerCase();
|
final String repeatedTagName = getRandomName(TAG_NAME_PREFIX).toLowerCase();
|
||||||
final List<RestTagModel> tagModels = List.of(
|
final List<RestTagModel> tagModels = List.of(
|
||||||
createTagModelWithName(repeatedTagName),
|
createTagModelWithName(repeatedTagName),
|
||||||
createTagModelWithRandomName(),
|
createTagModelWithName(getRandomName(TAG_NAME_PREFIX).toLowerCase()),
|
||||||
createTagModelWithName(repeatedTagName)
|
createTagModelWithName(repeatedTagName)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -173,13 +173,17 @@ public class CreateTagsTests extends RestTest
|
|||||||
public void testCreateTag_usingAlreadyExistingTagName()
|
public void testCreateTag_usingAlreadyExistingTagName()
|
||||||
{
|
{
|
||||||
STEP("Create some tag in the system");
|
STEP("Create some tag in the system");
|
||||||
final RestTagModel alreadyExistingTag = prepareOrphanTag();
|
final RestTagModel tagToCreate = createTagModelWithRandomName();
|
||||||
|
final RestTagModel alreadyExistingTag = prepareOrphanTag(tagToCreate);
|
||||||
|
// set original name instead the case lowered one
|
||||||
|
alreadyExistingTag.setTag(tagToCreate.getTag());
|
||||||
|
|
||||||
STEP("Try to use already existing tag to create duplicate and expect 409");
|
STEP("Try to use already existing tag to create duplicate and expect 409");
|
||||||
restClient.authenticateUser(admin).withCoreAPI().createSingleTag(alreadyExistingTag);
|
restClient.authenticateUser(admin).withCoreAPI().createSingleTag(alreadyExistingTag);
|
||||||
|
|
||||||
restClient.assertStatusCodeIs(CONFLICT);
|
restClient
|
||||||
restClient.assertLastError().containsSummary("Duplicate child name not allowed: " + alreadyExistingTag.getTag());
|
.assertStatusCodeIs(CONFLICT)
|
||||||
|
.assertLastError().containsSummary("Duplicate child name not allowed: " + alreadyExistingTag.getTag().toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -189,7 +193,7 @@ public class CreateTagsTests extends RestTest
|
|||||||
public void testCreateTag_includingCount()
|
public void testCreateTag_includingCount()
|
||||||
{
|
{
|
||||||
STEP("Create single tag as admin including count and verify if it is 0");
|
STEP("Create single tag as admin including count and verify if it is 0");
|
||||||
final RestTagModel tagModel = createTagModelWithRandomName();
|
final RestTagModel tagModel = createTagModelWithName(getRandomName(TAG_NAME_PREFIX).toLowerCase());
|
||||||
final RestTagModel createdTag = restClient.authenticateUser(admin).withCoreAPI().include(FIELD_COUNT).createSingleTag(tagModel);
|
final RestTagModel createdTag = restClient.authenticateUser(admin).withCoreAPI().include(FIELD_COUNT).createSingleTag(tagModel);
|
||||||
|
|
||||||
restClient.assertStatusCodeIs(CREATED);
|
restClient.assertStatusCodeIs(CREATED);
|
||||||
@@ -198,9 +202,13 @@ public class CreateTagsTests extends RestTest
|
|||||||
.assertThat().field(FIELD_COUNT).is(0);
|
.assertThat().field(FIELD_COUNT).is(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private RestTagModel prepareOrphanTag()
|
private RestTagModel prepareOrphanTagWithRandomName()
|
||||||
|
{
|
||||||
|
return prepareOrphanTag(createTagModelWithRandomName());
|
||||||
|
}
|
||||||
|
|
||||||
|
private RestTagModel prepareOrphanTag(final RestTagModel tagModel)
|
||||||
{
|
{
|
||||||
final RestTagModel tagModel = createTagModelWithRandomName();
|
|
||||||
final RestTagModel tag = restClient.authenticateUser(admin).withCoreAPI().createSingleTag(tagModel);
|
final RestTagModel tag = restClient.authenticateUser(admin).withCoreAPI().createSingleTag(tagModel);
|
||||||
restClient.assertStatusCodeIs(CREATED);
|
restClient.assertStatusCodeIs(CREATED);
|
||||||
return tag;
|
return tag;
|
||||||
@@ -208,7 +216,7 @@ public class CreateTagsTests extends RestTest
|
|||||||
|
|
||||||
private static RestTagModel createTagModelWithRandomName()
|
private static RestTagModel createTagModelWithRandomName()
|
||||||
{
|
{
|
||||||
return createTagModelWithName(getRandomName(TAG_NAME_PREFIX).toLowerCase());
|
return createTagModelWithName(getRandomName(TAG_NAME_PREFIX));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static RestTagModel createTagModelWithName(final String tagName)
|
private static RestTagModel createTagModelWithName(final String tagName)
|
||||||
|
@@ -1586,11 +1586,11 @@ public class TaggingServiceImpl implements TaggingService,
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
return tagNames.stream()
|
return tagNames.stream()
|
||||||
|
.map(String::toLowerCase)
|
||||||
.peek(tagName -> categoryService.getRootCategories(storeRef, ContentModel.ASPECT_TAGGABLE, tagName, false).stream()
|
.peek(tagName -> categoryService.getRootCategories(storeRef, ContentModel.ASPECT_TAGGABLE, tagName, false).stream()
|
||||||
.filter(association -> Objects.nonNull(association.getChildRef()))
|
.filter(association -> Objects.nonNull(association.getChildRef()))
|
||||||
.findAny()
|
.findAny()
|
||||||
.ifPresent(association -> { throw new DuplicateChildNodeNameException(association.getParentRef(), association.getTypeQName(), tagName, null); }))
|
.ifPresent(association -> { throw new DuplicateChildNodeNameException(association.getParentRef(), association.getTypeQName(), tagName, null); }))
|
||||||
.map(String::toLowerCase)
|
|
||||||
.map(tagName -> new Pair<>(tagName, getTagNodeRef(storeRef, tagName, true)))
|
.map(tagName -> new Pair<>(tagName, getTagNodeRef(storeRef, tagName, true)))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user