1
0
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:
DarthSim
2019-05-08 17:42:48 +06:00
parent c5263b1752
commit 3d13e6afb2
93 changed files with 221 additions and 23968 deletions

View File

@ -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)