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.

PlainMechanismTest.kt 1.1KB

12345678910111213141516171819202122232425262728293031323334
  1. package com.dmdirc.ktirc.sasl
  2. import com.dmdirc.ktirc.IrcClient
  3. import com.dmdirc.ktirc.SaslConfig
  4. import com.dmdirc.ktirc.model.ServerState
  5. import com.nhaarman.mockitokotlin2.*
  6. import org.junit.jupiter.api.Assertions.assertEquals
  7. import org.junit.jupiter.api.Test
  8. internal class PlainMechanismTest {
  9. private val serverState = ServerState("", "")
  10. private val ircClient = mock<IrcClient> {
  11. on { serverState } doReturn serverState
  12. }
  13. private val mechanism = PlainMechanism(SaslConfig().apply {
  14. username = "acidB"
  15. password = "HackThePlan3t!"
  16. })
  17. @Test
  18. fun `sends encoded username and password when first message received`() {
  19. mechanism.handleAuthenticationEvent(ircClient, null)
  20. val captor = argumentCaptor<String>()
  21. verify(ircClient).send(eq("AUTHENTICATE"), captor.capture())
  22. val data = String(captor.firstValue.fromBase64()).split('\u0000')
  23. assertEquals("acidB", data[0])
  24. assertEquals("acidB", data[1])
  25. assertEquals("HackThePlan3t!", data[2])
  26. }
  27. }