mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-07-02 22:46:50 +02:00
Back to net/http
Month of testing and profiling show that fasthttp doesn't gives us significatnt profit in memory and performance while being incompatible with many third-side packages and http/2
This commit is contained in:
@ -4,26 +4,20 @@ import (
|
||||
"context"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/stretchr/testify/suite"
|
||||
"github.com/valyala/fasthttp"
|
||||
)
|
||||
|
||||
type ProcessingOptionsTestSuite struct{ MainTestSuite }
|
||||
|
||||
func (s *ProcessingOptionsTestSuite) getRequest(url string) *fasthttp.RequestCtx {
|
||||
ctx := fasthttp.RequestCtx{
|
||||
Request: fasthttp.Request{},
|
||||
Response: fasthttp.Response{},
|
||||
}
|
||||
|
||||
ctx.Request.SetRequestURI(url)
|
||||
|
||||
return &ctx
|
||||
func (s *ProcessingOptionsTestSuite) getRequest(url string) *http.Request {
|
||||
req, _ := http.NewRequest("GET", url, nil)
|
||||
return req
|
||||
}
|
||||
|
||||
func (s *ProcessingOptionsTestSuite) TestParseBase64URL() {
|
||||
@ -411,7 +405,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathWebpDetection() {
|
||||
conf.EnableWebpDetection = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg")
|
||||
req.Request.Header.Set("Accept", "image/webp")
|
||||
req.Header.Set("Accept", "image/webp")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -424,7 +418,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathWebpDetectionRedefine() {
|
||||
conf.EnableWebpDetection = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Accept", "image/webp")
|
||||
req.Header.Set("Accept", "image/webp")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -437,7 +431,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathWebpEnforce() {
|
||||
conf.EnforceWebp = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Accept", "image/webp")
|
||||
req.Header.Set("Accept", "image/webp")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -450,7 +444,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathWidthHeader() {
|
||||
conf.EnableClientHints = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Width", "100")
|
||||
req.Header.Set("Width", "100")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -461,7 +455,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathWidthHeader() {
|
||||
|
||||
func (s *ProcessingOptionsTestSuite) TestParsePathWidthHeaderDisabled() {
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Width", "100")
|
||||
req.Header.Set("Width", "100")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -474,7 +468,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathWidthHeaderRedefine() {
|
||||
conf.EnableClientHints = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/width:150/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Width", "100")
|
||||
req.Header.Set("Width", "100")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -487,7 +481,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathViewportWidthHeader() {
|
||||
conf.EnableClientHints = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Viewport-Width", "100")
|
||||
req.Header.Set("Viewport-Width", "100")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -498,7 +492,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathViewportWidthHeader() {
|
||||
|
||||
func (s *ProcessingOptionsTestSuite) TestParsePathViewportWidthHeaderDisabled() {
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Viewport-Width", "100")
|
||||
req.Header.Set("Viewport-Width", "100")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -511,7 +505,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathViewportWidthHeaderRedefine()
|
||||
conf.EnableClientHints = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/width:150/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("Viewport-Width", "100")
|
||||
req.Header.Set("Viewport-Width", "100")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -524,7 +518,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathDprHeader() {
|
||||
conf.EnableClientHints = true
|
||||
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("DPR", "2")
|
||||
req.Header.Set("DPR", "2")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
@ -535,7 +529,7 @@ func (s *ProcessingOptionsTestSuite) TestParsePathDprHeader() {
|
||||
|
||||
func (s *ProcessingOptionsTestSuite) TestParsePathDprHeaderDisabled() {
|
||||
req := s.getRequest("http://example.com/unsafe/plain/http://images.dev/lorem/ipsum.jpg@png")
|
||||
req.Request.Header.Set("DPR", "2")
|
||||
req.Header.Set("DPR", "2")
|
||||
ctx, err := parsePath(context.Background(), req)
|
||||
|
||||
require.Nil(s.T(), err)
|
||||
|
Reference in New Issue
Block a user