Skip to content

Commit

Permalink
Fix ability to disable "no grammar" message
Browse files Browse the repository at this point in the history
Fixes redhat-developer/vscode-xml#467

Signed-off-by: David Thompson <[email protected]>
  • Loading branch information
datho7561 committed May 6, 2021
1 parent bbe8fb0 commit 1a8c030
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ public XMLValidationSettings merge(XMLValidationSettings settings) {
this.namespaces = settings.namespaces;
this.schema = settings.schema;
this.enabled = settings.enabled;
this.noGrammar = settings.noGrammar;
this.disallowDocTypeDecl = settings.disallowDocTypeDecl;
this.resolveExternalEntities = settings.resolveExternalEntities;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*******************************************************************************
* Copyright (c) 2021 Red Hat Inc. and others.
* All rights reserved. This program and the accompanying materials
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Red Hat Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.lemminx.settings;

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.lang.reflect.Field;
import java.lang.reflect.Type;

import org.eclipse.lemminx.extensions.contentmodel.settings.XMLValidationSettings;
import org.junit.jupiter.api.Test;

public class SettingsMergeTest {

@Test
public void testValidationSettingsMerge() throws IllegalArgumentException, IllegalAccessException {
XMLValidationSettings settings = new XMLValidationSettings();
mutateValues(settings);
XMLValidationSettings mergeTargetSettings = new XMLValidationSettings();
mergeTargetSettings.merge(settings);
assertEquals(settings, mergeTargetSettings);
}

/**
* Mutates all the values of all the fields, under the assumption that all Object fields are non-null
*/
public static void mutateValues(Object obj) throws IllegalArgumentException, IllegalAccessException {
for (Field field : XMLValidationSettings.class.getFields()) {
Type type = field.getGenericType();
switch (type.getTypeName()) {
case "boolean":
field.set(obj, !(Boolean)field.get(obj));
break;
case "int":
case "short":
case "long":
case "char":
case "byte":
case "float":
case "double":
field.set(field, (Integer)field.get(obj) == 0 ? 1 : 0);
break;
default:
field.set(field, null);
}
}
}

}

0 comments on commit 1a8c030

Please sign in to comment.