Yet Another OTP generator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Base32Test.kt 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.chameth.yaotp.util
  2. import com.chameth.yaotp.toHexString
  3. import org.junit.Assert.*
  4. import org.junit.Test
  5. class Base32Test {
  6. @Test
  7. fun testPadToEights_withEmptyString_returnsEmptyString() {
  8. assertEquals("", padToEights(""))
  9. }
  10. @Test
  11. fun testPadToEights_withMultipleOfEight_doesNotAddPadding() {
  12. assertEquals("0123456701234567", padToEights("0123456701234567"))
  13. }
  14. @Test
  15. fun testPadToEights_withOddAmounts_padsWithEquals() {
  16. assertEquals("012345==", padToEights("012345"))
  17. assertEquals("0123====", padToEights("0123"))
  18. assertEquals("0=======", padToEights("0"))
  19. }
  20. @Test
  21. fun testBase32_withEmptyString() {
  22. assertEquals(0, base32Decode("").size)
  23. assertEquals(0, base32Decode("====").size)
  24. assertEquals(0, base32Decode("========").size)
  25. }
  26. @Test
  27. fun testBase32_withAlignedStrings() {
  28. assertEquals("00443214c74254b635cf84653a56d9c675be77df", base32Decode("abcdefghijklmnopqrstuvwzyz234567").toHexString())
  29. assertEquals("ffffffffff", base32Decode("77777777").toHexString())
  30. assertEquals("0000000000", base32Decode("AAAAAAAA").toHexString())
  31. }
  32. @Test
  33. fun testBase32_withUnalignedStings() {
  34. assertEquals("08", base32Decode("A").toHexString())
  35. assertEquals("00", base32Decode("AA").toHexString())
  36. assertEquals("0002", base32Decode("AAA").toHexString())
  37. assertEquals("fffffffc", base32Decode("777777").toHexString())
  38. }
  39. @Test
  40. fun testBase32_withSampleInputs() {
  41. assertEquals("28", base32Decode("FA======").toHexString())
  42. assertEquals("d6", base32Decode("2Y======").toHexString())
  43. assertEquals("d6f8", base32Decode("234A====").toHexString())
  44. assertEquals("d6f800", base32Decode("234AA===").toHexString())
  45. assertEquals("d6f810", base32Decode("234BA===").toHexString())
  46. assertEquals("d6f8110c", base32Decode("234BCDA=").toHexString())
  47. assertEquals("d6f8110c80", base32Decode("234BCDEA").toHexString())
  48. assertEquals("d6f8110c8530", base32Decode("234BCDEFGA======").toHexString())
  49. assertEquals("d6f8110c8536b7c0886429", base32Decode("234BCDEFG234BCDEFE======").toHexString())
  50. }
  51. }