Refine compareTo for param and header conditions
Issue: SPR-16674
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2012 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
@@ -121,7 +121,7 @@ public class HeadersRequestConditionTests {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
HeadersRequestCondition condition1 = new HeadersRequestCondition("foo", "bar", "baz");
|
||||
HeadersRequestCondition condition2 = new HeadersRequestCondition("foo", "bar");
|
||||
HeadersRequestCondition condition2 = new HeadersRequestCondition("foo=a", "bar");
|
||||
|
||||
int result = condition1.compareTo(condition2, request);
|
||||
assertTrue("Invalid comparison result: " + result, result < 0);
|
||||
@@ -130,6 +130,30 @@ public class HeadersRequestConditionTests {
|
||||
assertTrue("Invalid comparison result: " + result, result > 0);
|
||||
}
|
||||
|
||||
@Test // SPR-16674
|
||||
public void compareToWithMoreSpecificMatchByValue() {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
HeadersRequestCondition condition1 = new HeadersRequestCondition("foo=a");
|
||||
HeadersRequestCondition condition2 = new HeadersRequestCondition("foo");
|
||||
|
||||
int result = condition1.compareTo(condition2, request);
|
||||
assertTrue("Invalid comparison result: " + result, result < 0);
|
||||
|
||||
result = condition2.compareTo(condition1, request);
|
||||
assertTrue("Invalid comparison result: " + result, result > 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void compareToWithNegatedMatch() {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
HeadersRequestCondition condition1 = new HeadersRequestCondition("foo!=a");
|
||||
HeadersRequestCondition condition2 = new HeadersRequestCondition("foo");
|
||||
|
||||
assertEquals("Negated match should not count as more specific",
|
||||
0, condition1.compareTo(condition2, request));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void combine() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
@@ -97,7 +97,7 @@ public class ParamsRequestConditionTests {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
ParamsRequestCondition condition1 = new ParamsRequestCondition("foo", "bar", "baz");
|
||||
ParamsRequestCondition condition2 = new ParamsRequestCondition("foo", "bar");
|
||||
ParamsRequestCondition condition2 = new ParamsRequestCondition("foo=a", "bar");
|
||||
|
||||
int result = condition1.compareTo(condition2, request);
|
||||
assertTrue("Invalid comparison result: " + result, result < 0);
|
||||
@@ -106,6 +106,28 @@ public class ParamsRequestConditionTests {
|
||||
assertTrue("Invalid comparison result: " + result, result > 0);
|
||||
}
|
||||
|
||||
@Test // SPR-16674
|
||||
public void compareToWithMoreSpecificMatchByValue() {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
ParamsRequestCondition condition1 = new ParamsRequestCondition("response_type=code");
|
||||
ParamsRequestCondition condition2 = new ParamsRequestCondition("response_type");
|
||||
|
||||
int result = condition1.compareTo(condition2, request);
|
||||
assertTrue("Invalid comparison result: " + result, result < 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void compareToWithNegatedMatch() {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
ParamsRequestCondition condition1 = new ParamsRequestCondition("response_type!=code");
|
||||
ParamsRequestCondition condition2 = new ParamsRequestCondition("response_type");
|
||||
|
||||
assertEquals("Negated match should not count as more specific",
|
||||
0, condition1.compareTo(condition2, request));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void combine() {
|
||||
ParamsRequestCondition condition1 = new ParamsRequestCondition("foo=bar");
|
||||
|
||||
Reference in New Issue
Block a user