GeoPubby  Version 0.1.0.0
MediaRangeSpecTest Class Reference
Inheritance diagram for MediaRangeSpecTest:
Collaboration diagram for MediaRangeSpecTest:

Public Member Functions

void testSimpleSyntax ()
 
void testGetType ()
 
void testGetSubtype ()
 
void testGetMediaType ()
 
void testSimpleParameters ()
 
void testWithParameters ()
 
void testCaseInsensitive ()
 
void testQuotedParameter ()
 
void testParameterValueEscaping ()
 
void testParameterValueEscapingRoundTrip ()
 
void testSimpleQuality ()
 
void testQualityAfterParameter ()
 
void testParametersAfterQualityAreIgnored ()
 
void testQualityValue ()
 
void testIllegalQualityValue ()
 
void testIllegalSyntax ()
 
void testNoWildcard ()
 
void testWildcard ()
 
void testIllegalWildcard ()
 
void testNoWildcardsInMediaType ()
 
void testAcceptOneRange ()
 
void testAcceptTwoRanges ()
 
void testAcceptIgnoreWSAndJunk ()
 
void testAcceptWithQuality ()
 
void testGetPrecedence ()
 
void testCaseInsensitiveMatch ()
 
void testGetBestMatchSameQuality ()
 

Private Member Functions

void assertIllegalMediaTypeSyntax (String mediaType)
 
void assertMediaRangeInList (List< MediaRangeSpec > list, int index, String mediaType)
 

Member Function Documentation

◆ assertIllegalMediaTypeSyntax()

void assertIllegalMediaTypeSyntax ( String  mediaType)
private
213  {
214  assertNull(MediaRangeSpec.parseRange(mediaType));
215  }

References MediaRangeSpec.parseRange().

Referenced by MediaRangeSpecTest.testIllegalSyntax().

◆ assertMediaRangeInList()

void assertMediaRangeInList ( List< MediaRangeSpec list,
int  index,
String  mediaType 
)
private
218  {
219  MediaRangeSpec range = (MediaRangeSpec) list.get(index);
220  assertEquals(mediaType, range.getMediaType());
221  }

References MediaRangeSpec.getMediaType().

Referenced by MediaRangeSpecTest.testAcceptIgnoreWSAndJunk(), MediaRangeSpecTest.testAcceptOneRange(), MediaRangeSpecTest.testAcceptTwoRanges(), and MediaRangeSpecTest.testAcceptWithQuality().

◆ testAcceptIgnoreWSAndJunk()

void testAcceptIgnoreWSAndJunk ( )
164  {
165  List<MediaRangeSpec> accept = MediaRangeSpec.parseAccept("a/b , asdf , c/d");
166  assertEquals(2, accept.size());
167  assertMediaRangeInList(accept, 0, "a/b");
168  assertMediaRangeInList(accept, 1, "c/d");
169  }
void assertMediaRangeInList(List< MediaRangeSpec > list, int index, String mediaType)
Definition: MediaRangeSpecTest.java:217

References MediaRangeSpecTest.assertMediaRangeInList(), and MediaRangeSpec.parseAccept().

◆ testAcceptOneRange()

void testAcceptOneRange ( )
150  {
151  List<MediaRangeSpec> accept = MediaRangeSpec.parseAccept("a/b");
152  assertNotNull(accept);
153  assertEquals(1, accept.size());
154  assertMediaRangeInList(accept, 0, "a/b");
155  }

References MediaRangeSpecTest.assertMediaRangeInList(), and MediaRangeSpec.parseAccept().

◆ testAcceptTwoRanges()

void testAcceptTwoRanges ( )
157  {
158  List<MediaRangeSpec> accept = MediaRangeSpec.parseAccept("a/b,c/d");
159  assertEquals(2, accept.size());
160  assertMediaRangeInList(accept, 0, "a/b");
161  assertMediaRangeInList(accept, 1, "c/d");
162  }

References MediaRangeSpecTest.assertMediaRangeInList(), and MediaRangeSpec.parseAccept().

◆ testAcceptWithQuality()

void testAcceptWithQuality ( )
171  {
172  List<MediaRangeSpec> accept = MediaRangeSpec.parseAccept("a/b;q=0.6,c/d;q=0.8");
173  assertEquals(2, accept.size());
174  assertMediaRangeInList(accept, 0, "a/b");
175  assertMediaRangeInList(accept, 1, "c/d");
176  assertEquals(0.6, ((MediaRangeSpec) accept.get(0)).getQuality(), 0.00001);
177  assertEquals(0.8, ((MediaRangeSpec) accept.get(1)).getQuality(), 0.00001);
178  }

References MediaRangeSpecTest.assertMediaRangeInList(), and MediaRangeSpec.parseAccept().

◆ testCaseInsensitive()

void testCaseInsensitive ( )
47  {
48  assertEquals("a/b;c=D", MediaRangeSpec.parseRange("A/B;C=D").getMediaType());
49  }

References MediaRangeSpec.getMediaType(), and MediaRangeSpec.parseRange().

◆ testCaseInsensitiveMatch()

void testCaseInsensitiveMatch ( )
197  {
198  assertEquals(4, MediaRangeSpec.parseType("a/b;c=d").getPrecedence(
199  MediaRangeSpec.parseType("A/B;C=d")));
200  }

References MediaRangeSpec.getPrecedence(), and MediaRangeSpec.parseType().

◆ testGetBestMatchSameQuality()

void testGetBestMatchSameQuality ( )
202  {
203  List<MediaRangeSpec> accept = MediaRangeSpec.parseAccept("*/*,a/*,a/b,a/b;c=d");
204  assertEquals("*/*", MediaRangeSpec.parseType("z/b").getBestMatch(accept).getMediaType());
205  assertEquals("a/*", MediaRangeSpec.parseType("a/z").getBestMatch(accept).getMediaType());
206  assertEquals("a/b", MediaRangeSpec.parseType("a/b").getBestMatch(accept).getMediaType());
207  assertEquals("a/b", MediaRangeSpec.parseType("a/b;c=z").getBestMatch(accept).getMediaType());
208  assertEquals("a/b", MediaRangeSpec.parseType("a/b;z=d").getBestMatch(accept).getMediaType());
209  assertEquals("a/b;c=d", MediaRangeSpec.parseType("a/b;c=d").getBestMatch(accept).getMediaType());
210  assertEquals("a/b;c=d", MediaRangeSpec.parseType("a/b;c=d;z=z").getBestMatch(accept).getMediaType());
211  }

References MediaRangeSpec.getBestMatch(), MediaRangeSpec.getMediaType(), MediaRangeSpec.parseAccept(), and MediaRangeSpec.parseType().

◆ testGetMediaType()

void testGetMediaType ( )
27  {
28  assertEquals("foo-123_x/foo-123_y",
29  MediaRangeSpec.parseRange("foo-123_x/foo-123_y").getMediaType());
30  }

References MediaRangeSpec.getMediaType(), and MediaRangeSpec.parseRange().

◆ testGetPrecedence()

void testGetPrecedence ( )
180  {
181  MediaRangeSpec m = MediaRangeSpec.parseType("a/b;c=d;e=f");
182  assertEquals(0, m.getPrecedence(MediaRangeSpec.parseRange("z/b;c=d;e=f")));
183  assertEquals(0, m.getPrecedence(MediaRangeSpec.parseRange("a/z;c=d;e=f")));
184  assertEquals(0, m.getPrecedence(MediaRangeSpec.parseRange("a/b;x=y")));
185  assertEquals(0, m.getPrecedence(MediaRangeSpec.parseRange("a/b;c=z;e=f")));
186  assertEquals(0, m.getPrecedence(MediaRangeSpec.parseRange("a/b;c=z;e=z")));
187  assertEquals(0, m.getPrecedence(MediaRangeSpec.parseRange("a/b;x=y;c=d")));
188  assertEquals(0, m.getPrecedence(MediaRangeSpec.parseRange("a/b;c=d;e=z")));
189  assertEquals(1, m.getPrecedence(MediaRangeSpec.parseRange("*/*;c=d;e=f")));
190  assertEquals(2, m.getPrecedence(MediaRangeSpec.parseRange("a/*;c=d;e=f")));
191  assertEquals(3, m.getPrecedence(MediaRangeSpec.parseRange("a/b")));
192  assertEquals(4, m.getPrecedence(MediaRangeSpec.parseRange("a/b;c=d")));
193  assertEquals(4, m.getPrecedence(MediaRangeSpec.parseRange("a/b;e=f")));
194  assertEquals(5, m.getPrecedence(MediaRangeSpec.parseRange("a/b;e=f;c=d")));
195  }

References MediaRangeSpec.getPrecedence(), MediaRangeSpec.parseRange(), and MediaRangeSpec.parseType().

◆ testGetSubtype()

void testGetSubtype ( )
23  {
24  assertEquals("foo-123_x", MediaRangeSpec.parseRange("bar/foo-123_x").getSubtype());
25  }

References MediaRangeSpec.getSubtype(), and MediaRangeSpec.parseRange().

◆ testGetType()

void testGetType ( )
19  {
20  assertEquals("foo-123_x", MediaRangeSpec.parseRange("foo-123_x/bar").getType());
21  }

References MediaRangeSpec.getType(), and MediaRangeSpec.parseRange().

◆ testIllegalQualityValue()

void testIllegalQualityValue ( )
108  {
109  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=\"\"").getQuality(), 0.00001);
110  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=a").getQuality(), 0.00001);
111  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=2").getQuality(), 0.00001);
112  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=0.1000").getQuality(), 0.00001);
113  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=-0.1").getQuality(), 0.00001);
114  }

References MediaRangeSpec.getQuality(), and MediaRangeSpec.parseRange().

◆ testIllegalSyntax()

void testIllegalSyntax ( )
116  {
120  assertIllegalMediaTypeSyntax("\u00E4/b");
124  assertIllegalMediaTypeSyntax("a/b;c = d");
125  assertIllegalMediaTypeSyntax("a/b;c=d e");
126  assertIllegalMediaTypeSyntax("a/b;c=\"d\"e");
127  assertIllegalMediaTypeSyntax("a/b;c=\"d\"\"");
128  }
void assertIllegalMediaTypeSyntax(String mediaType)
Definition: MediaRangeSpecTest.java:213

References MediaRangeSpecTest.assertIllegalMediaTypeSyntax().

◆ testIllegalWildcard()

void testIllegalWildcard ( )
141  {
142  assertNull(MediaRangeSpec.parseRange("*/b"));
143  }

References MediaRangeSpec.parseRange().

◆ testNoWildcard()

void testNoWildcard ( )
130  {
131  assertFalse(MediaRangeSpec.parseRange("a/b").isWildcardType());
132  assertFalse(MediaRangeSpec.parseRange("a/b").isWildcardSubtype());
133  }

References MediaRangeSpec.isWildcardSubtype(), MediaRangeSpec.isWildcardType(), and MediaRangeSpec.parseRange().

◆ testNoWildcardsInMediaType()

void testNoWildcardsInMediaType ( )
145  {
146  assertNull(MediaRangeSpec.parseType("*/*"));
147  assertNull(MediaRangeSpec.parseType("a/*"));
148  }

References MediaRangeSpec.parseType().

◆ testParametersAfterQualityAreIgnored()

void testParametersAfterQualityAreIgnored ( )
84  {
85  MediaRangeSpec m = MediaRangeSpec.parseRange("a/b;q=0.5;c=d");
86  assertNotNull(m);
87  assertNull(m.getParameter("c"));
88  assertEquals(0.5, m.getQuality(), 0.00001);
89  }

References MediaRangeSpec.getParameter(), MediaRangeSpec.getQuality(), and MediaRangeSpec.parseRange().

◆ testParameterValueEscaping()

void testParameterValueEscaping ( )
56  {
57  assertEquals("", MediaRangeSpec.parseRange("a/b;c=\"\"").getParameter("c"));
58  assertEquals("a", MediaRangeSpec.parseRange("a/b;c=\"\\a\"").getParameter("c"));
59  assertEquals("\\", MediaRangeSpec.parseRange("a/b;c=\"\\\\\"").getParameter("c"));
60  assertEquals("\"", MediaRangeSpec.parseRange("a/b;c=\"\\\"\"").getParameter("c"));
61  assertEquals(" \\ \" a ",
62  MediaRangeSpec.parseRange("a/b;c=\" \\\\ \\\" \\a \"").getParameter("c"));
63  }

References MediaRangeSpec.getParameter(), and MediaRangeSpec.parseRange().

◆ testParameterValueEscapingRoundTrip()

void testParameterValueEscapingRoundTrip ( )
65  {
66  assertEquals("a/b;c=\" \\\\ \\\" a \"",
67  MediaRangeSpec.parseRange("a/b;c=\" \\\\ \\\" \\a \"").getMediaType());
68  }

References MediaRangeSpec.getMediaType(), and MediaRangeSpec.parseRange().

◆ testQualityAfterParameter()

void testQualityAfterParameter ( )
77  {
78  MediaRangeSpec m = MediaRangeSpec.parseRange("a/b;c=d;q=0.5");
79  assertNotNull(m);
80  assertEquals("d", m.getParameter("c"));
81  assertEquals(0.5, m.getQuality(), 0.00001);
82  }

References MediaRangeSpec.getParameter(), MediaRangeSpec.getQuality(), and MediaRangeSpec.parseRange().

◆ testQualityValue()

void testQualityValue ( )
91  {
92  assertEquals(1, MediaRangeSpec.parseRange("a/b").getQuality(), 0.00001);
93  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=1").getQuality(), 0.00001);
94  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=1.").getQuality(), 0.00001);
95  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=1.0").getQuality(), 0.00001);
96  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=1.00").getQuality(), 0.00001);
97  assertEquals(1, MediaRangeSpec.parseRange("a/b;q=1.000").getQuality(), 0.00001);
98  assertEquals(0, MediaRangeSpec.parseRange("a/b;q=0").getQuality(), 0.00001);
99  assertEquals(0, MediaRangeSpec.parseRange("a/b;q=0.").getQuality(), 0.00001);
100  assertEquals(0, MediaRangeSpec.parseRange("a/b;q=0.0").getQuality(), 0.00001);
101  assertEquals(0, MediaRangeSpec.parseRange("a/b;q=0.00").getQuality(), 0.00001);
102  assertEquals(0, MediaRangeSpec.parseRange("a/b;q=0.000").getQuality(), 0.00001);
103  assertEquals(0.5, MediaRangeSpec.parseRange("a/b;q=0.5").getQuality(), 0.00001);
104  assertEquals(0.55, MediaRangeSpec.parseRange("a/b;q=0.55").getQuality(), 0.00001);
105  assertEquals(0.555, MediaRangeSpec.parseRange("a/b;q=0.555").getQuality(), 0.00001);
106  }

References MediaRangeSpec.getQuality(), and MediaRangeSpec.parseRange().

◆ testQuotedParameter()

void testQuotedParameter ( )
51  {
52  assertEquals("a/b;c=d", MediaRangeSpec.parseRange("a/b;c=\"d\"").getMediaType());
53  assertEquals("a/b;c=\"d e\"", MediaRangeSpec.parseRange("a/b;c=\"d e\"").getMediaType());
54  }

References MediaRangeSpec.getMediaType(), and MediaRangeSpec.parseRange().

◆ testSimpleParameters()

void testSimpleParameters ( )
32  {
33  MediaRangeSpec spec = MediaRangeSpec.parseRange("a/b;c=d;e=f");
34  assertEquals("a", spec.getType());
35  assertEquals("b", spec.getSubtype());
36  assertEquals("a/b;c=d;e=f", spec.getMediaType());
37  assertEquals("d", spec.getParameter("c"));
38  assertEquals("f", spec.getParameter("e"));
39  assertEquals(Arrays.asList(new String[]{"c", "e"}), spec.getParameterNames());
40  }

References MediaRangeSpec.getMediaType(), MediaRangeSpec.getParameter(), MediaRangeSpec.getParameterNames(), MediaRangeSpec.getSubtype(), MediaRangeSpec.getType(), and MediaRangeSpec.parseRange().

◆ testSimpleQuality()

void testSimpleQuality ( )
70  {
71  MediaRangeSpec m = MediaRangeSpec.parseRange("a/b;q=0.5");
72  assertNotNull(m);
73  assertNull(m.getParameter("q"));
74  assertEquals(0.5, m.getQuality(), 0.00001);
75  }

References MediaRangeSpec.getParameter(), MediaRangeSpec.getQuality(), and MediaRangeSpec.parseRange().

◆ testSimpleSyntax()

void testSimpleSyntax ( )
10  {
11  MediaRangeSpec spec = MediaRangeSpec.parseRange("a/b");
12  assertEquals("a", spec.getType());
13  assertEquals("b", spec.getSubtype());
14  assertEquals("a/b", spec.getMediaType());
15  assertNull(spec.getParameter("c"));
16  assertTrue(spec.getParameterNames().isEmpty());
17  }

References MediaRangeSpec.getMediaType(), MediaRangeSpec.getParameter(), MediaRangeSpec.getParameterNames(), MediaRangeSpec.getSubtype(), MediaRangeSpec.getType(), and MediaRangeSpec.parseRange().

◆ testWildcard()

void testWildcard ( )
135  {
136  assertTrue(MediaRangeSpec.parseRange("*/*").isWildcardType());
137  assertFalse(MediaRangeSpec.parseRange("a/*").isWildcardType());
138  assertTrue(MediaRangeSpec.parseRange("a/*").isWildcardSubtype());
139  }

References MediaRangeSpec.isWildcardSubtype(), MediaRangeSpec.isWildcardType(), and MediaRangeSpec.parseRange().

◆ testWithParameters()

void testWithParameters ( )
42  {
43  assertEquals("a/b;c=d", MediaRangeSpec.parseRange("a/b ; c=d").getMediaType());
44  assertEquals("a/b;c=d;e=f", MediaRangeSpec.parseRange("a/b ; c=d ; e=f").getMediaType());
45  }

References MediaRangeSpec.getMediaType(), and MediaRangeSpec.parseRange().