http_test.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package http_test
  2. import (
  3. "testing"
  4. "v2ray.com/core/common/buf"
  5. "v2ray.com/core/common/serial"
  6. "v2ray.com/core/testing/assert"
  7. . "v2ray.com/core/transport/internet/headers/http"
  8. )
  9. func TestReaderWriter(t *testing.T) {
  10. assert := assert.On(t)
  11. cache := buf.New()
  12. b := buf.NewLocal(256)
  13. b.AppendSupplier(serial.WriteString("abcd" + ENDING))
  14. writer := NewHeaderWriter(b)
  15. writer.Write(cache)
  16. cache.Write([]byte{'e', 'f', 'g'})
  17. reader := &HeaderReader{}
  18. buffer, err := reader.Read(cache)
  19. assert.Error(err).IsNil()
  20. assert.Bytes(buffer.Bytes()).Equals([]byte{'e', 'f', 'g'})
  21. }
  22. func TestRequestHeader(t *testing.T) {
  23. assert := assert.On(t)
  24. factory := HttpAuthenticatorFactory{}
  25. auth := factory.Create(&Config{
  26. Request: &RequestConfig{
  27. Uri: []string{"/"},
  28. Header: []*Header{
  29. {
  30. Name: "Test",
  31. Value: []string{"Value"},
  32. },
  33. },
  34. },
  35. }).(HttpAuthenticator)
  36. cache := buf.New()
  37. err := auth.GetClientWriter().Write(cache)
  38. assert.Error(err).IsNil()
  39. assert.String(cache.String()).Equals("GET / HTTP/1.1\r\nTest: Value\r\n\r\n")
  40. }