Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
caddy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
caddy
Commits
95b4e61a
Commit
95b4e61a
authored
9 years ago
by
Peter Hellberg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
redirect: initial test for Redirect
parent
2501691e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
0 deletions
+66
-0
middleware/redirect/redirect_test.go
middleware/redirect/redirect_test.go
+66
-0
No files found.
middleware/redirect/redirect_test.go
0 → 100644
View file @
95b4e61a
package
redirect
import
(
"fmt"
"net/http"
"net/http/httptest"
"testing"
"github.com/mholt/caddy/middleware"
)
func
TestRedirect
(
t
*
testing
.
T
)
{
re
:=
Redirect
{
Next
:
middleware
.
HandlerFunc
(
urlPrinter
),
Rules
:
[]
Rule
{
{
From
:
"/from"
,
To
:
"/to"
},
{
From
:
"/a"
,
To
:
"/b"
},
},
}
tests
:=
[]
struct
{
from
string
expectedLocation
string
}{
{
"/from"
,
"/to"
},
{
"/a"
,
"/b"
},
{
"/aa"
,
""
},
{
"/"
,
""
},
{
"/a?foo=bar"
,
"/b"
},
{
"/asdf?foo=bar"
,
""
},
{
"/foo#bar"
,
""
},
{
"/a#foo"
,
"/b"
},
}
for
i
,
test
:=
range
tests
{
req
,
err
:=
http
.
NewRequest
(
"GET"
,
test
.
from
,
nil
)
if
err
!=
nil
{
t
.
Fatalf
(
"Test %d: Could not create HTTP request: %v"
,
i
,
err
)
}
rec
:=
httptest
.
NewRecorder
()
re
.
ServeHTTP
(
rec
,
req
)
if
rec
.
Header
()
.
Get
(
"Location"
)
!=
test
.
expectedLocation
{
t
.
Errorf
(
"Test %d: Expected Location header to be %q but was %q"
,
i
,
test
.
expectedLocation
,
rec
.
Header
()
.
Get
(
"Location"
))
}
var
expectedBody
string
if
test
.
expectedLocation
!=
""
{
expectedBody
=
"<a href=
\"
"
+
test
.
expectedLocation
+
"
\"
></a>.
\n\n
"
}
else
{
expectedBody
=
test
.
from
}
if
rec
.
Body
.
String
()
!=
expectedBody
{
t
.
Errorf
(
"Test %d: Expected body to be %q but was %q"
,
i
,
expectedBody
,
rec
.
Body
.
String
())
}
}
}
func
urlPrinter
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
(
int
,
error
)
{
fmt
.
Fprintf
(
w
,
r
.
URL
.
String
())
return
0
,
nil
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment