1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
package dbus
import (
"bufio"
. "gopkg.in/check.v1"
"net"
)
func (s *S) TestAuthenticate(c *C) {
server, client := net.Pipe()
clientWrites := []string{}
complete := make(chan int)
go func() {
r := bufio.NewReader(server)
// Read the nul byte that marks the start of the protocol
zero := []byte{0}
r.Read(zero)
clientWrites = append(clientWrites, string(zero))
line, _, _ := r.ReadLine()
clientWrites = append(clientWrites, string(line))
server.Write([]byte("OK\r\n"))
line, _, _ = r.ReadLine()
clientWrites = append(clientWrites, string(line))
complete <- 1
}()
c.Check(authenticate(client, nil), Equals, nil)
<-complete
c.Check(clientWrites[0], Equals, "\x00")
c.Check(clientWrites[1][:13], Equals, "AUTH EXTERNAL")
c.Check(clientWrites[2], Equals, "BEGIN")
}
|