Merge branch '6.1.x'
This commit is contained in:
commit
e53ed3e3c6
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -44,9 +44,6 @@ public class LockMixin extends DelegatingIntroductionInterceptor implements Lock
|
|||
this.locked = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see test.mixin.AopProxyTests.Lockable#locked()
|
||||
*/
|
||||
@Override
|
||||
public boolean locked() {
|
||||
return this.locked;
|
||||
|
@ -54,10 +51,8 @@ public class LockMixin extends DelegatingIntroductionInterceptor implements Lock
|
|||
|
||||
/**
|
||||
* Note that we need to override around advice.
|
||||
* If the method is a setter and we're locked, prevent execution.
|
||||
* Otherwise let super.invoke() handle it, and do normal
|
||||
* Lockable(this) then target behaviour.
|
||||
* @see org.aopalliance.MethodInterceptor#invoke(org.aopalliance.MethodInvocation)
|
||||
* If the method is a setter, and we're locked, prevent execution.
|
||||
* Otherwise, let super.invoke() handle it.
|
||||
*/
|
||||
@Override
|
||||
public Object invoke(MethodInvocation invocation) throws Throwable {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -16,10 +16,12 @@
|
|||
|
||||
package org.springframework.beans.factory.support;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
/**
|
||||
* Descriptor for a {@link java.lang.reflect.Method Method} which holds a
|
||||
* Descriptor for a {@link Method Method} which holds a
|
||||
* reference to the method's {@linkplain #declaringClass declaring class},
|
||||
* {@linkplain #methodName name}, and {@linkplain #parameterTypes parameter types}.
|
||||
*
|
||||
|
@ -34,8 +36,7 @@ record MethodDescriptor(Class<?> declaringClass, String methodName, Class<?>...
|
|||
/**
|
||||
* Create a {@link MethodDescriptor} for the supplied bean class and method name.
|
||||
* <p>The supplied {@code methodName} may be a {@linkplain Method#getName()
|
||||
* simple method name} or a
|
||||
* {@linkplain org.springframework.util.ClassUtils#getQualifiedMethodName(Method)
|
||||
* simple method name} or a {@linkplain ClassUtils#getQualifiedMethodName(Method)
|
||||
* qualified method name}.
|
||||
* <p>If the method name is fully qualified, this utility will parse the
|
||||
* method name and its declaring class from the qualified method name and then
|
||||
|
|
|
@ -554,7 +554,7 @@ class ExtendedBeanInfoTests {
|
|||
* IntrospectionException regarding a "type mismatch between indexed and non-indexed
|
||||
* methods" intermittently (approximately one out of every four times) under JDK 7
|
||||
* due to non-deterministic results from {@link Class#getDeclaredMethods()}.
|
||||
* See https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7023180
|
||||
* @see <a href="https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7023180">JDK-7023180</a>
|
||||
* @see #cornerSpr9702()
|
||||
*/
|
||||
@Test
|
||||
|
|
|
@ -266,8 +266,8 @@ public final class BridgeMethodResolver {
|
|||
/**
|
||||
* Compare the signatures of the bridge method and the method which it bridges. If
|
||||
* the parameter and return types are the same, it is a 'visibility' bridge method
|
||||
* introduced in Java 6 to fix https://bugs.openjdk.org/browse/JDK-6342411.
|
||||
* See also https://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html
|
||||
* introduced in Java 6 to fix <a href="https://bugs.openjdk.org/browse/JDK-6342411">
|
||||
* JDK-6342411</a>.
|
||||
* @return whether signatures match as described
|
||||
*/
|
||||
public static boolean isVisibilityBridgeMethodPair(Method bridgeMethod, Method bridgedMethod) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -39,7 +39,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
*
|
||||
* @author Sam Brannen
|
||||
* @since 5.3.24
|
||||
* @see https://github.com/spring-projects/spring-framework/issues/20279
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
class NestedRepeatableAnnotationsTests {
|
||||
|
|
|
@ -163,8 +163,8 @@ public class FunctionReference extends SpelNodeImpl {
|
|||
/**
|
||||
* Execute a function represented as {@link MethodHandle}.
|
||||
* <p>Method types that take no arguments (fully bound handles or static methods
|
||||
* with no parameters) can use {@link MethodHandle#invoke()} which is the most
|
||||
* efficient. Otherwise, {@link MethodHandle#invokeWithArguments()} is used.
|
||||
* with no parameters) can use {@link MethodHandle#invoke(Object...)} which is the most
|
||||
* efficient. Otherwise, {@link MethodHandle#invokeWithArguments(Object...)} is used.
|
||||
* @param state the expression evaluation state
|
||||
* @param methodHandle the method handle to invoke
|
||||
* @return the return value of the invoked Java method
|
||||
|
|
|
@ -37,11 +37,11 @@ import org.springframework.expression.spel.support.StandardEvaluationContext;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
///CLOVER:OFF
|
||||
/**
|
||||
* Spring Security scenarios from https://docs.spring.io/spring-security/reference/servlet/authorization/expression-based.html
|
||||
* SpEL expression tests for Spring Security scenarios.
|
||||
*
|
||||
* @author Andy Clement
|
||||
* @see <a href="https://docs.spring.io/spring-security/reference/servlet/authorization/authorize-http-requests.html#authorization-expressions">Expressing Authorization with SpEL</a>
|
||||
*/
|
||||
class ScenariosForSpringSecurityExpressionTests extends AbstractExpressionTests {
|
||||
|
||||
|
|
|
@ -43,12 +43,7 @@ class H2DatabasePopulatorTests extends AbstractDatabasePopulatorTests {
|
|||
return EmbeddedDatabaseType.H2;
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-15896
|
||||
*
|
||||
* @since 5.0
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-15896
|
||||
void scriptWithH2Alias() {
|
||||
databasePopulator.addScript(usersSchema());
|
||||
databasePopulator.addScript(resource("db-test-data-h2-alias.sql"));
|
||||
|
@ -61,12 +56,7 @@ class H2DatabasePopulatorTests extends AbstractDatabasePopulatorTests {
|
|||
assertThat(jdbcTemplate.queryForObject(sql, String.class)).isEqualTo("maS");
|
||||
}
|
||||
|
||||
/**
|
||||
* https://github.com/spring-projects/spring-framework/issues/27008
|
||||
*
|
||||
* @since 5.3.11
|
||||
*/
|
||||
@Test
|
||||
@Test // gh-27008
|
||||
void automaticallyCommitsIfAutoCommitIsDisabled() throws Exception {
|
||||
EmbeddedDatabase database = null;
|
||||
try {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -130,8 +130,8 @@ public class SimpMessagingTemplate extends AbstractMessageSendingTemplate<String
|
|||
* SimpMessageHeaderAccessor#DESTINATION_HEADER} then the message is sent without
|
||||
* further changes.
|
||||
* <p>If a destination header is not already present ,the message is sent
|
||||
* to the configured {@link #setDefaultDestination(Object) defaultDestination}
|
||||
* or an exception an {@code IllegalStateException} is raised if that isn't
|
||||
* to the configured {@link AbstractMessageSendingTemplate#setDefaultDestination(Object)
|
||||
* defaultDestination} or an {@code IllegalStateException} is raised if that isn't
|
||||
* configured.
|
||||
* @param message the message to send (never {@code null})
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -49,7 +49,7 @@ import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass
|
|||
*
|
||||
* @author Sam Brannen
|
||||
* @since 5.3.17
|
||||
* @see https://github.com/spring-projects/spring-framework/issues/27757
|
||||
* @see <a href="https://github.com/spring-projects/spring-framework/issues/27757">gh-27757</a>
|
||||
*/
|
||||
class DirtiesContextEventPublishingTests {
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -50,7 +50,6 @@ import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass
|
|||
*
|
||||
* @author Sam Brannen
|
||||
* @since 5.3.17
|
||||
* @see https://github.com/spring-projects/spring-framework/issues/27757
|
||||
*/
|
||||
class EagerTestExecutionEventPublishingTests {
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -39,7 +39,7 @@ import static org.springframework.test.transaction.TransactionAssert.assertThatT
|
|||
*
|
||||
* @author Sam Brannen
|
||||
* @since 4.3
|
||||
* @see org.springframework.test.context.transaction.PrimaryTransactionManagerTests
|
||||
* @see org.springframework.test.context.transaction.manager.PrimaryTransactionManagerTests
|
||||
*/
|
||||
@SpringJUnitConfig
|
||||
@DirtiesContext
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -30,12 +30,12 @@ import org.springframework.context.annotation.Configuration;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Integration tests for an issue raised in https://jira.spring.io/browse/SPR-15927.
|
||||
* Integration tests for {@code SPR-15927}.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 5.0
|
||||
*/
|
||||
public class AutowiredRuleTests {
|
||||
public class AutowiredRuleSpr15927Tests {
|
||||
|
||||
@ClassRule
|
||||
public static final SpringClassRule springClassRule = new SpringClassRule();
|
|
@ -327,10 +327,7 @@ class ContextLoaderUtilsContextHierarchyTests extends AbstractContextConfigurati
|
|||
assertContextConfigEntriesAreNotUnique(SingleTestClassWithMultiLevelContextHierarchyWithDuplicatedContextConfig.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to reproduce bug reported in https://jira.spring.io/browse/SPR-10997
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-10997
|
||||
void buildContextHierarchyMapForTestClassHierarchyWithMultiLevelContextHierarchiesAndOverriddenInitializers() {
|
||||
Map<String, List<ContextConfigurationAttributes>> map = buildContextHierarchyMap(TestClass2WithMultiLevelContextHierarchyWithOverriddenInitializers.class);
|
||||
|
||||
|
@ -504,32 +501,24 @@ class ContextLoaderUtilsContextHierarchyTests extends AbstractContextConfigurati
|
|||
private static class SingleTestClassWithMultiLevelContextHierarchyWithDuplicatedContextConfig {
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to reproduce bug reported in https://jira.spring.io/browse/SPR-10997
|
||||
*/
|
||||
@ContextHierarchy({//
|
||||
//
|
||||
@ContextConfiguration(name = "alpha", locations = "1-A.xml"),//
|
||||
@ContextConfiguration(name = "beta", locations = "1-B.xml") //
|
||||
})
|
||||
}) // SPR-10997
|
||||
private static class TestClass1WithMultiLevelContextHierarchyWithUniqueContextConfig {
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to reproduce bug reported in https://jira.spring.io/browse/SPR-10997
|
||||
*/
|
||||
@ContextHierarchy({//
|
||||
//
|
||||
@ContextConfiguration(name = "alpha", initializers = DummyApplicationContextInitializer.class),//
|
||||
@ContextConfiguration(name = "beta", initializers = DummyApplicationContextInitializer.class) //
|
||||
})
|
||||
}) // SPR-10997
|
||||
private static class TestClass2WithMultiLevelContextHierarchyWithOverriddenInitializers extends
|
||||
TestClass1WithMultiLevelContextHierarchyWithUniqueContextConfig {
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to reproduce bug reported in https://jira.spring.io/browse/SPR-10997
|
||||
*/
|
||||
// SPR-10997
|
||||
private static class DummyApplicationContextInitializer implements
|
||||
ApplicationContextInitializer<ConfigurableApplicationContext> {
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -16,6 +16,7 @@
|
|||
|
||||
package org.springframework.web.bind;
|
||||
|
||||
import jakarta.servlet.ServletRequest;
|
||||
import org.openjdk.jmh.annotations.Benchmark;
|
||||
import org.openjdk.jmh.annotations.BenchmarkMode;
|
||||
import org.openjdk.jmh.annotations.Mode;
|
||||
|
@ -26,7 +27,8 @@ import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
|
|||
|
||||
|
||||
/**
|
||||
* Benchmarks for extracting parameters from {@libnk ServletRequest}.
|
||||
* Benchmarks for extracting parameters from {@link ServletRequest}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
@BenchmarkMode(Mode.Throughput)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -69,8 +69,7 @@ public abstract class AbstractListenerWriteProcessor<T> implements Processor<T,
|
|||
/**
|
||||
* Indicates we're waiting for one last isReady-onWritePossible cycle
|
||||
* after "onComplete" because some Servlet containers expect this to take
|
||||
* place prior to calling AsyncContext.complete().
|
||||
* See https://github.com/eclipse-ee4j/servlet-api/issues/273
|
||||
* place prior to calling AsyncContext.complete(). See also gh-273.
|
||||
*/
|
||||
private volatile boolean readyToCompleteAfterLastWrite;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -31,7 +31,7 @@ import org.springframework.util.Assert;
|
|||
* HTML 4.0 standard.
|
||||
*
|
||||
* <p>A complete description of the HTML 4.0 character set can be found
|
||||
* at https://www.w3.org/TR/html4/charset.html.
|
||||
* at <a href="https://www.w3.org/TR/html4/charset.html">https://www.w3.org/TR/html4/charset.html</a>.
|
||||
*
|
||||
* @author Juergen Hoeller
|
||||
* @author Martin Kersten
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -29,7 +29,7 @@ import org.springframework.util.ClassUtils;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Web-related tests for {@link BeanUtilsRuntimeHints}.
|
||||
* Web-related tests for {@link org.springframework.beans.BeanUtilsRuntimeHints}.
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
* @since 6.0.10
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -170,9 +170,8 @@ class UrlFilenameViewControllerTests {
|
|||
|
||||
/**
|
||||
* This is the expected behavior, and it now has a test to prove it.
|
||||
* https://opensource.atlassian.com/projects/spring/browse/SPR-2789
|
||||
*/
|
||||
@PathPatternsParameterizedTest
|
||||
@PathPatternsParameterizedTest // SPR-2789
|
||||
void nestedPathisUsedAsViewName_InBreakingChangeFromSpring12Line(
|
||||
Function<String, MockHttpServletRequest> requestFactory) throws Exception {
|
||||
|
||||
|
|
|
@ -355,10 +355,7 @@ public class ErrorsTagTests extends AbstractFormTagTests {
|
|||
assertThat(getPageContext().getAttribute(ErrorsTag.MESSAGES_ATTRIBUTE)).isEqualTo(existingAttribute);
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2788
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2788
|
||||
void asBodyTagWithErrorsAndExistingMessagesAttributeInNonPageScopeAreNotClobbered() throws Exception {
|
||||
String existingAttribute = "something";
|
||||
getPageContext().setAttribute(ErrorsTag.MESSAGES_ATTRIBUTE, existingAttribute, PageContext.APPLICATION_SCOPE);
|
||||
|
@ -379,42 +376,27 @@ public class ErrorsTagTests extends AbstractFormTagTests {
|
|||
assertThat(getPageContext().getAttribute(ErrorsTag.MESSAGES_ATTRIBUTE, PageContext.APPLICATION_SCOPE)).isEqualTo(existingAttribute);
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2788
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2788
|
||||
void asBodyTagWithNoErrorsAndExistingMessagesAttributeInApplicationScopeAreNotClobbered() throws Exception {
|
||||
assertWhenNoErrorsExistingMessagesInScopeAreNotClobbered(PageContext.APPLICATION_SCOPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2788
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2788
|
||||
void asBodyTagWithNoErrorsAndExistingMessagesAttributeInSessionScopeAreNotClobbered() throws Exception {
|
||||
assertWhenNoErrorsExistingMessagesInScopeAreNotClobbered(PageContext.SESSION_SCOPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2788
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2788
|
||||
void asBodyTagWithNoErrorsAndExistingMessagesAttributeInPageScopeAreNotClobbered() throws Exception {
|
||||
assertWhenNoErrorsExistingMessagesInScopeAreNotClobbered(PageContext.PAGE_SCOPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2788
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2788
|
||||
void asBodyTagWithNoErrorsAndExistingMessagesAttributeInRequestScopeAreNotClobbered() throws Exception {
|
||||
assertWhenNoErrorsExistingMessagesInScopeAreNotClobbered(PageContext.REQUEST_SCOPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-4005
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-4005
|
||||
void omittedPathMatchesObjectErrorsOnly() throws Exception {
|
||||
this.tag.setPath(null);
|
||||
Errors errors = new BeanPropertyBindingResult(new TestBean(), "COMMAND_NAME");
|
||||
|
|
|
@ -31,10 +31,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
|
|||
*/
|
||||
class PasswordInputTagTests extends InputTagTests {
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2866
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2866
|
||||
void passwordValueIsNotRenderedByDefault() throws Exception {
|
||||
this.getTag().setPath("name");
|
||||
|
||||
|
@ -48,10 +45,7 @@ class PasswordInputTagTests extends InputTagTests {
|
|||
assertValueAttribute(output, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2866
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2866
|
||||
void passwordValueIsRenderedIfShowPasswordAttributeIsSetToTrue() throws Exception {
|
||||
this.getTag().setPath("name");
|
||||
this.getPasswordTag().setShowPassword(true);
|
||||
|
@ -66,10 +60,7 @@ class PasswordInputTagTests extends InputTagTests {
|
|||
assertValueAttribute(output, "Rob");
|
||||
}
|
||||
|
||||
/**
|
||||
* https://jira.spring.io/browse/SPR-2866
|
||||
*/
|
||||
@Test
|
||||
@Test // >SPR-2866
|
||||
void passwordValueIsNotRenderedIfShowPasswordAttributeIsSetToFalse() throws Exception {
|
||||
this.getTag().setPath("name");
|
||||
this.getPasswordTag().setShowPassword(false);
|
||||
|
|
Loading…
Reference in New Issue