blob: 6888cecd530d1647a57776b7724cb75cee614588 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package cgeo.geocaching.network;
import org.eclipse.jdt.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
public class OAuthTest extends TestCase {
private static final List<Character> UNRESERVED;
static {
// unreserved characters: ALPHA / DIGIT / "-" / "." / "_" / "~"
ArrayList<Character> unreserved = new ArrayList<Character>();
for (int i = 65; i <= 90; i++) {
unreserved.add((char) i); // uppercase
unreserved.add((char) (i + 32)); // lowercase
}
for (int i = 0; i < 10; i++) {
unreserved.add(Character.forDigit(i, 10));
}
unreserved.add('-');
unreserved.add('.');
unreserved.add('_');
unreserved.add('~');
UNRESERVED = unreserved;
}
public static void testUnreservedCharactersMustNotBeEncoded() {
for (Character c : UNRESERVED) {
final @NonNull
String charAsString = String.valueOf(c);
assertEquals("wrong OAuth encoding for " + c, charAsString, OAuth.percentEncode(charAsString));
}
}
public static void testOtherCharactersMustBeEncoded() {
for (int i = 32; i < 127; i++) {
final Character c = (char) i;
if (!UNRESERVED.contains(c)) {
final @NonNull
String charAsString = String.valueOf(c);
final String encoded = OAuth.percentEncode(charAsString);
assertFalse("Character '" + charAsString + "' not encoded", charAsString.equals(encoded));
assertTrue(encoded.startsWith("%"));
}
}
}
public static void testAsterisk() {
assertFalse("*".equals(OAuth.percentEncode("*")));
}
}
|