add (presently failing) tests for discovering a simple site map
This commit is contained in:
1 parent
249aca229b
commit
5ef46be8c4
2 files changed
+40
-4
No files matched your search
@@ -2,5 +2,18 @@ package main
|
|||||||
|
|
||||||
import ()
|
import ()
|
||||||
|
|
||||||
|
// Page is a struct which defines a single page, which URLs (links and assets) it contains
|
||||||
|
type Page struct {
|
||||||
|
URL string
|
||||||
|
Assets []string
|
||||||
|
Links []string
|
||||||
|
}
|
||||||
|
|
||||||
|
// docrawl begins crawling the site at "url"
|
||||||
|
func docrawl(url string) []Page {
|
||||||
|
var result []Page
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
}
|
}
|
||||||
@@ -44,7 +44,7 @@ func TestServerRunning(t *testing.T) {
|
|||||||
resp, err := http.Get(baseURL)
|
resp, err := http.Get(baseURL)
|
||||||
if resp.StatusCode != 200 || err != nil {
|
if resp.StatusCode != 200 || err != nil {
|
||||||
fmt.Printf("got %v, err = %v\n", resp.StatusCode, err)
|
fmt.Printf("got %v, err = %v\n", resp.StatusCode, err)
|
||||||
t.Error(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ func TestBadRequest(t *testing.T) {
|
|||||||
resp, err := http.Get(baseURL + "doesnotexist.html")
|
resp, err := http.Get(baseURL + "doesnotexist.html")
|
||||||
if resp.StatusCode != 404 || err != nil {
|
if resp.StatusCode != 404 || err != nil {
|
||||||
fmt.Printf("got %v, err = %v\n", resp.StatusCode, err)
|
fmt.Printf("got %v, err = %v\n", resp.StatusCode, err)
|
||||||
t.Error("request for non existent file didn't fail properly")
|
t.Fatal("request for non existent file didn't fail properly")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ func TestBadRequest(t *testing.T) {
|
|||||||
func TestSimpleFetch(t *testing.T) {
|
func TestSimpleFetch(t *testing.T) {
|
||||||
body, err := fetch(baseURL + "fetch_test.html")
|
body, err := fetch(baseURL + "fetch_test.html")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
desired := "<html><head></head><body></body></html>\n"
|
desired := "<html><head></head><body></body></html>\n"
|
||||||
if body != desired {
|
if body != desired {
|
||||||
@@ -86,7 +86,7 @@ func TestSimpleParse(t *testing.T) {
|
|||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
if len(matches) != 2 {
|
if len(matches) != 2 {
|
||||||
t.Error("invalid number of matches in parse")
|
t.Fatal("invalid number of matches in parse")
|
||||||
}
|
}
|
||||||
if matches[0] != "/about.html" {
|
if matches[0] != "/about.html" {
|
||||||
t.Error("match text is invalid")
|
t.Error("match text is invalid")
|
||||||
@@ -95,3 +95,26 @@ func TestSimpleParse(t *testing.T) {
|
|||||||
t.Error("match text is invalid")
|
t.Error("match text is invalid")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestSimpleMap figures out the site map for the site in baseURL
|
||||||
|
func TestSimpleMap(t *testing.T) {
|
||||||
|
pages := docrawl(baseURL)
|
||||||
|
if len(pages) != 1 {
|
||||||
|
t.Fatal("got wrong number of pages")
|
||||||
|
}
|
||||||
|
if pages[0].URL != baseURL {
|
||||||
|
t.Error("page URL is invalid")
|
||||||
|
}
|
||||||
|
if len(pages[0].Assets) != 1 {
|
||||||
|
t.Fatal("got wrong number of assets")
|
||||||
|
}
|
||||||
|
if pages[0].Assets[0] != baseURL+"/assets/image.png" {
|
||||||
|
t.Error("asset name is incorrect")
|
||||||
|
}
|
||||||
|
if len(pages[0].Links) != 1 {
|
||||||
|
t.Fatal("got wrong number of links")
|
||||||
|
}
|
||||||
|
if pages[0].Links[0] != baseURL+"/about.html" {
|
||||||
|
t.Error("link name is incorrect")
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user