package router
import (
"bytes"
"html/template"
"net/http"
"testing"
"github.com/stretchr/testify/assert"
)
const expectedHome = `
What is my IP Address ?
What is my IP ?
Your IPv4 address is: 127.0.0.1
Client Port | 1000 |
Host | localhost |
Geolocation
Country | A Country |
Country Code | XX |
City | A City |
Latitude | 100 |
Longitude | -100 |
Postal Code | 00000 |
Time Zone | My/Timezone |
Autonomous System
ASN | 0 |
ASN Organization | My ISP |
Headers
Header1 | value1 |
Header2 | value21 |
Header2 | value22 |
Header3 | value3 |
`
func TestDefaultTemplate(t *testing.T) {
req, _ := http.NewRequest("GET", "/", nil)
req.Header = map[string][]string{
"Header1": {"value1"},
"Header2": {"value21", "value22"},
"Header3": {"value3"},
}
tmpl, _ := template.New("home").Parse(home)
response := JSONResponse{
IP: "127.0.0.1",
IPVersion: 4,
ClientPort: "1000",
Country: "A Country",
CountryCode: "XX",
City: "A City",
Latitude: 100,
Longitude: -100,
PostalCode: "00000",
TimeZone: "My/Timezone",
ASN: 0,
ASNOrganization: "My ISP",
Host: "localhost",
Headers: req.Header,
}
buf := &bytes.Buffer{}
err := tmpl.Execute(buf, response)
assert.Nil(t, err)
assert.Equal(t, expectedHome, buf.String())
}