Skip to content

Commit

Permalink
Handle all metadata fields in DocumentAndFieldLevelSecurityTests (#71179
Browse files Browse the repository at this point in the history
) (#71345)

This change ensures that we don't break the existing tests when adding
a new metadata field in the distribution. We cannot rely on the list of
builtin metadata fields in an IT tests that loads extra modules in x-pack.
  • Loading branch information
jimczi committed Apr 6, 2021
1 parent 5964825 commit 92fedce
Showing 1 changed file with 9 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.IndexModule;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.indices.IndicesModule;
import org.elasticsearch.search.sort.SortOrder;
import org.elasticsearch.test.SecurityIntegTestCase;
import org.elasticsearch.test.SecuritySettingsSourceField;
Expand All @@ -32,7 +31,6 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
Expand Down Expand Up @@ -461,10 +459,10 @@ private static void assertExpectedFields(ImmutableOpenMap<String, ImmutableOpenM

private static void assertExpectedFields(FieldCapabilitiesResponse fieldCapabilitiesResponse, String... expectedFields) {
Map<String, Map<String, FieldCapabilities>> responseMap = new HashMap<>(fieldCapabilitiesResponse.get());
Set<String> builtInMetadataFields = IndicesModule.getBuiltInMetadataFields();
for (String field : builtInMetadataFields) {
Map<String, FieldCapabilities> remove = responseMap.remove(field);
assertNotNull(" expected field [" + field + "] not found", remove);
for (String field : fieldCapabilitiesResponse.get().keySet()) {
if (fieldCapabilitiesResponse.isMetadataField(field)) {
assertNotNull(" expected field [" + field + "] not found", responseMap.remove(field));
}
}
for (String field : expectedFields) {
Map<String, FieldCapabilities> remove = responseMap.remove(field);
Expand All @@ -477,10 +475,11 @@ private static void assertExpectedFields(Map<String, Map<String, GetFieldMapping
String... expectedFields) {
assertEquals(1, mappings.size());
Map<String, GetFieldMappingsResponse.FieldMappingMetadata> fields = new HashMap<>(mappings.get("type1"));
Set<String> builtInMetadataFields = IndicesModule.getBuiltInMetadataFields();
for (String field : builtInMetadataFields) {
GetFieldMappingsResponse.FieldMappingMetadata fieldMappingMetadata = fields.remove(field);
assertNotNull(" expected field [" + field + "] not found", fieldMappingMetadata);
for (String field : mappings.get("type1").keySet()) {
// best effort to remove metadata fields
if (field.startsWith("_")) {
assertNotNull(" expected field [" + field + "] not found", fields.remove(field));
}
}
for (String field : expectedFields) {
GetFieldMappingsResponse.FieldMappingMetadata fieldMappingMetadata = fields.remove(field);
Expand Down

0 comments on commit 92fedce

Please sign in to comment.