diff options
author | Kenny Root <kroot@google.com> | 2011-09-15 09:33:06 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-15 09:33:06 -0700 |
commit | 04b08bdf19497c31abdef49100bfe471f8d104d6 (patch) | |
tree | 8239517a46ed1564a03f84381cca719245a26bb5 /core/tests | |
parent | 369711f89b251dd0136e7a2dc6a08b64d31af129 (diff) | |
parent | a0f264e1afa3c0a00a5af0db362f884b122d978d (diff) | |
download | frameworks_base-04b08bdf19497c31abdef49100bfe471f8d104d6.zip frameworks_base-04b08bdf19497c31abdef49100bfe471f8d104d6.tar.gz frameworks_base-04b08bdf19497c31abdef49100bfe471f8d104d6.tar.bz2 |
Merge "Be more forgiving in parsing verifier IDs"
Diffstat (limited to 'core/tests')
-rw-r--r-- | core/tests/coretests/src/android/content/pm/VerifierDeviceIdentityTest.java | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/core/tests/coretests/src/android/content/pm/VerifierDeviceIdentityTest.java b/core/tests/coretests/src/android/content/pm/VerifierDeviceIdentityTest.java index e6a6a26..cb13eb7 100644 --- a/core/tests/coretests/src/android/content/pm/VerifierDeviceIdentityTest.java +++ b/core/tests/coretests/src/android/content/pm/VerifierDeviceIdentityTest.java @@ -25,6 +25,8 @@ public class VerifierDeviceIdentityTest extends android.test.AndroidTestCase { private static final String TEST_1_ENCODED = "HUXY-A75N-FLKV-F"; + private static final String TEST_1_ENCODED_LOWERCASE = "huxy-a75n-flkv-f"; + private static final long TEST_2 = 0x5A05FF5A05F0A555L; private static final long TEST_MAXVALUE = Long.MAX_VALUE; @@ -45,6 +47,10 @@ public class VerifierDeviceIdentityTest extends android.test.AndroidTestCase { private static final String TEST_OVERFLOW_ENCODED = "QAAA-AAAA-AAAA-A"; + private static final String TEST_SUBSTITUTION_CORRECTED = "OIIO-IIOO-IOOI-I"; + + private static final String TEST_SUBSTITUTION_UNCORRECTED = "0110-1100-1001-1"; + public void testVerifierDeviceIdentity_Equals_Success() { VerifierDeviceIdentity id1 = new VerifierDeviceIdentity(TEST_1); VerifierDeviceIdentity id2 = new VerifierDeviceIdentity(TEST_1); @@ -125,6 +131,7 @@ public class VerifierDeviceIdentityTest extends android.test.AndroidTestCase { assertEquals("Original identity and parceled identity should be the same", id1, id2); } + @SuppressWarnings("serial") private static class MockRandom extends Random { private long mNextLong; @@ -181,7 +188,7 @@ public class VerifierDeviceIdentityTest extends android.test.AndroidTestCase { public void testVerifierDeviceIdentity_Parse_TooShort() { try { - VerifierDeviceIdentity id = VerifierDeviceIdentity.parse("AAAA-AAAA-AAAA-"); + VerifierDeviceIdentity.parse("AAAA-AAAA-AAAA-"); fail("Parsing should fail when device identifier is too short"); } catch (IllegalArgumentException e) { // success @@ -190,7 +197,7 @@ public class VerifierDeviceIdentityTest extends android.test.AndroidTestCase { public void testVerifierDeviceIdentity_Parse_WayTooShort() { try { - VerifierDeviceIdentity id = VerifierDeviceIdentity.parse("----------------"); + VerifierDeviceIdentity.parse("----------------"); fail("Parsing should fail when device identifier is too short"); } catch (IllegalArgumentException e) { // success @@ -199,7 +206,7 @@ public class VerifierDeviceIdentityTest extends android.test.AndroidTestCase { public void testVerifierDeviceIdentity_Parse_TooLong() { try { - VerifierDeviceIdentity id = VerifierDeviceIdentity.parse("AAAA-AAAA-AAAA-AA"); + VerifierDeviceIdentity.parse("AAAA-AAAA-AAAA-AA"); fail("Parsing should fail when device identifier is too long"); } catch (IllegalArgumentException e) { // success @@ -208,10 +215,32 @@ public class VerifierDeviceIdentityTest extends android.test.AndroidTestCase { public void testVerifierDeviceIdentity_Parse_Overflow() { try { - VerifierDeviceIdentity id = VerifierDeviceIdentity.parse(TEST_OVERFLOW_ENCODED); + VerifierDeviceIdentity.parse(TEST_OVERFLOW_ENCODED); fail("Parsing should fail when the value will overflow"); } catch (IllegalArgumentException e) { // success } } + + public void testVerifierDeviceIdentity_Parse_SquashToUppercase() { + VerifierDeviceIdentity id1 = new VerifierDeviceIdentity(TEST_1); + + VerifierDeviceIdentity id2 = VerifierDeviceIdentity.parse(TEST_1_ENCODED_LOWERCASE); + + assertEquals("Lowercase should parse to be the same as uppercase", id1, id2); + + assertEquals("Substituted identity should render to the same string", + id1.toString(), id2.toString()); + } + + public void testVerifierDeviceIdentity_Parse_1I_And_0O_Substitution() { + VerifierDeviceIdentity id1 = VerifierDeviceIdentity.parse(TEST_SUBSTITUTION_CORRECTED); + + VerifierDeviceIdentity id2 = VerifierDeviceIdentity.parse(TEST_SUBSTITUTION_UNCORRECTED); + + assertEquals("Substitution should replace 0 with O and 1 with I", id1, id2); + + assertEquals("Substituted identity should render to the same string", + id1.toString(), id2.toString()); + } } |