This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
require 'em_test_helper'
|
||||
|
||||
|
||||
class TestSASL < Test::Unit::TestCase
|
||||
|
||||
# SASL authentication is usually done with UNIX-domain sockets, but
|
||||
# we'll use TCP so this test will work on Windows. As far as the
|
||||
# protocol handlers are concerned, there's no difference.
|
||||
|
||||
TestUser,TestPsw = "someone", "password"
|
||||
|
||||
class SaslServer < EM::Connection
|
||||
include EM::Protocols::SASLauth
|
||||
def validate usr, psw, sys, realm
|
||||
usr == TestUser and psw == TestPsw
|
||||
end
|
||||
end
|
||||
|
||||
class SaslClient < EM::Connection
|
||||
include EM::Protocols::SASLauthclient
|
||||
end
|
||||
|
||||
def setup
|
||||
@port = next_port
|
||||
end
|
||||
|
||||
def test_sasl
|
||||
resp = nil
|
||||
EM.run {
|
||||
EM.start_server( "127.0.0.1", @port, SaslServer )
|
||||
|
||||
c = EM.connect( "127.0.0.1", @port, SaslClient )
|
||||
d = c.validate?( TestUser, TestPsw )
|
||||
d.timeout 1
|
||||
d.callback {
|
||||
resp = true
|
||||
EM.stop
|
||||
}
|
||||
d.errback {
|
||||
resp = false
|
||||
EM.stop
|
||||
}
|
||||
}
|
||||
assert_equal( true, resp )
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user