From 36b7a3fe07dd7bbc1bc4a3ea9fb3273e20cb62a0 Mon Sep 17 00:00:00 2001
From: v2ray <admin@v2ray.com>
Date: Thu, 3 Dec 2015 23:31:04 +0100
Subject: [PATCH] test case for socks protocol

---
 proxy/socks/protocol/socks_test.go | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/proxy/socks/protocol/socks_test.go b/proxy/socks/protocol/socks_test.go
index d904849e..875c9c1a 100644
--- a/proxy/socks/protocol/socks_test.go
+++ b/proxy/socks/protocol/socks_test.go
@@ -100,6 +100,32 @@ func TestResponseWrite(t *testing.T) {
 	assert.Bytes(buffer.Value).Named("raw response").Equals(expectedBytes)
 }
 
+func TestSetIPv6(t *testing.T) {
+	v2testing.Current(t)
+
+	response := NewSocks5Response()
+	response.SetIPv6([]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15})
+
+	buffer := alloc.NewSmallBuffer().Clear()
+	defer buffer.Release()
+	response.Write(buffer)
+	assert.Bytes(buffer.Value).Equals([]byte{
+		socksVersion, 0, 0, AddrTypeIPv6, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0})
+}
+
+func TestSetDomain(t *testing.T) {
+	v2testing.Current(t)
+
+	response := NewSocks5Response()
+	response.SetDomain("v2ray.com")
+
+	buffer := alloc.NewSmallBuffer().Clear()
+	defer buffer.Release()
+	response.Write(buffer)
+	assert.Bytes(buffer.Value).Equals([]byte{
+		socksVersion, 0, 0, AddrTypeDomain, 9, 118, 50, 114, 97, 121, 46, 99, 111, 109, 0, 0})
+}
+
 func TestEOF(t *testing.T) {
 	v2testing.Current(t)