diff --git a/core/src/main/java/org/kohsuke/stapler/AcceptHeader.java b/core/src/main/java/org/kohsuke/stapler/AcceptHeader.java index 9d32ce6285..b4d627dd06 100644 --- a/core/src/main/java/org/kohsuke/stapler/AcceptHeader.java +++ b/core/src/main/java/org/kohsuke/stapler/AcceptHeader.java @@ -164,8 +164,8 @@ private static boolean wildcardMatch(String a, String b) { int f = a.fit(target); if (f>bestFitness) { best = a; + bestFitness = f; } - bestFitness = f; } return best; diff --git a/core/src/test/java/org/kohsuke/stapler/AcceptHeaderTest.java b/core/src/test/java/org/kohsuke/stapler/AcceptHeaderTest.java index 2bd4610c6a..677f12786d 100644 --- a/core/src/test/java/org/kohsuke/stapler/AcceptHeaderTest.java +++ b/core/src/test/java/org/kohsuke/stapler/AcceptHeaderTest.java @@ -107,4 +107,18 @@ public void qualityFactor5(){ Assert.assertEquals(type, "image/png"); } + + @Test + public void qualityFactor6(){ + AcceptHeader acceptHeader = new AcceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); + + String type = acceptHeader.select("text/plain", "text/html"); + Assert.assertNotNull(type); + Assert.assertEquals(type, "text/html"); // 1 > 0.8 + + type = acceptHeader.select("text/plain", "application/xml"); + Assert.assertNotNull(type); + Assert.assertEquals(type, "application/xml"); //0.9 > 0.8 + } + }