Merge "Extend Uri tests"
am: 58f6083027 Change-Id: I659a205aeaea9910115ce48e98cd858e8e8423b7
This commit is contained in:
@@ -164,22 +164,61 @@ public class UriTest extends AndroidTestCase {
|
|||||||
String encoded = Uri.encode("Bob:/", "/");
|
String encoded = Uri.encode("Bob:/", "/");
|
||||||
assertEquals(-1, encoded.indexOf(':'));
|
assertEquals(-1, encoded.indexOf(':'));
|
||||||
assertTrue(encoded.indexOf('/') > -1);
|
assertTrue(encoded.indexOf('/') > -1);
|
||||||
assertDecode(null);
|
assertEncodeDecodeRoundtripExact(null);
|
||||||
assertDecode("");
|
assertEncodeDecodeRoundtripExact("");
|
||||||
assertDecode("Bob");
|
assertEncodeDecodeRoundtripExact("Bob");
|
||||||
assertDecode(":Bob");
|
assertEncodeDecodeRoundtripExact(":Bob");
|
||||||
assertDecode("::Bob");
|
assertEncodeDecodeRoundtripExact("::Bob");
|
||||||
assertDecode("Bob::Lee");
|
assertEncodeDecodeRoundtripExact("Bob::Lee");
|
||||||
assertDecode("Bob:Lee");
|
assertEncodeDecodeRoundtripExact("Bob:Lee");
|
||||||
assertDecode("Bob::");
|
assertEncodeDecodeRoundtripExact("Bob::");
|
||||||
assertDecode("Bob:");
|
assertEncodeDecodeRoundtripExact("Bob:");
|
||||||
assertDecode("::Bob::");
|
assertEncodeDecodeRoundtripExact("::Bob::");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertDecode(String s) {
|
private static void assertEncodeDecodeRoundtripExact(String s) {
|
||||||
assertEquals(s, Uri.decode(Uri.encode(s, null)));
|
assertEquals(s, Uri.decode(Uri.encode(s, null)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testDecode_emptyString_returnsEmptyString() {
|
||||||
|
assertEquals("", Uri.decode(""));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDecode_null_returnsNull() {
|
||||||
|
assertNull(Uri.decode(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDecode_wrongHexDigit() {
|
||||||
|
// %p in the end.
|
||||||
|
assertEquals("ab/$\u0102%\u0840\uFFFD\u0000", Uri.decode("ab%2f$%C4%82%25%e0%a1%80%p"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDecode_secondHexDigitWrong() {
|
||||||
|
// %1p in the end.
|
||||||
|
assertEquals("ab/$\u0102%\u0840\uFFFD\u0001", Uri.decode("ab%2f$%c4%82%25%e0%a1%80%1p"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDecode_endsWithPercent_appendsUnknownCharacter() {
|
||||||
|
// % in the end.
|
||||||
|
assertEquals("ab/$\u0102%\u0840\uFFFD", Uri.decode("ab%2f$%c4%82%25%e0%a1%80%"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDecode_plusNotConverted() {
|
||||||
|
assertEquals("ab/$\u0102%+\u0840", Uri.decode("ab%2f$%c4%82%25+%e0%a1%80"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Last character needs decoding (make sure we are flushing the buffer with chars to decode).
|
||||||
|
public void testDecode_lastCharacter() {
|
||||||
|
assertEquals("ab/$\u0102%\u0840", Uri.decode("ab%2f$%c4%82%25%e0%a1%80"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that a second row of encoded characters is decoded properly (internal buffers are
|
||||||
|
// reset properly).
|
||||||
|
public void testDecode_secondRowOfEncoded() {
|
||||||
|
assertEquals("ab/$\u0102%\u0840aa\u0840",
|
||||||
|
Uri.decode("ab%2f$%c4%82%25%e0%a1%80aa%e0%a1%80"));
|
||||||
|
}
|
||||||
|
|
||||||
public void testFromFile() {
|
public void testFromFile() {
|
||||||
File f = new File("/tmp/bob");
|
File f = new File("/tmp/bob");
|
||||||
Uri uri = Uri.fromFile(f);
|
Uri uri = Uri.fromFile(f);
|
||||||
|
|||||||
Reference in New Issue
Block a user