You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package shrty
|
|
|
|
import (
|
|
"testing"
|
|
"github.com/stretchr/testify/assert"
|
|
"net/http/httptest"
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
func TestCheckURL(t *testing.T) {
|
|
data := Data{
|
|
URL: "https://t.co/kA45uWnKkg",
|
|
}
|
|
|
|
expected := Data{
|
|
URL: "https://t.co/kA45uWnKkg",
|
|
URLFetched: "https://www.youtube.com/watch?v=Qg0pO9VG1J8&utm_content=buffera4269&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer",
|
|
OriginalURL: "https://www.youtube.com/watch?v=Qg0pO9VG1J8&utm_content=buffera4269&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer",
|
|
HTTPStatusCode: 200,
|
|
Domain: "www.youtube.com",
|
|
}
|
|
|
|
err := CheckURL(&data)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, expected, data)
|
|
}
|
|
|
|
func TestCheckURL2(t *testing.T) {
|
|
svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
time.Sleep(time.Second * 20)
|
|
}))
|
|
defer svr.Close()
|
|
|
|
data := Data{
|
|
URL: svr.URL,
|
|
}
|
|
|
|
expected := Data{
|
|
URL: svr.URL,
|
|
URLFetched: svr.URL,
|
|
HTTPStatusCode: http.StatusGatewayTimeout,
|
|
}
|
|
|
|
err := CheckURL(&data)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, expected, data)
|
|
}
|