|
|
@ -333,15 +333,45 @@ func TestBzzFeed(t *testing.T) { |
|
|
|
} |
|
|
|
} |
|
|
|
urlQuery = testUrl.Query() |
|
|
|
urlQuery = testUrl.Query() |
|
|
|
body = updateRequest.AppendValues(urlQuery) // this adds all query parameters
|
|
|
|
body = updateRequest.AppendValues(urlQuery) // this adds all query parameters
|
|
|
|
|
|
|
|
goodQueryParameters := urlQuery.Encode() // save the query parameters for a second attempt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// create bad query parameters in which the signature is missing
|
|
|
|
|
|
|
|
urlQuery.Del("signature") |
|
|
|
testUrl.RawQuery = urlQuery.Encode() |
|
|
|
testUrl.RawQuery = urlQuery.Encode() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 1st attempt with bad query parameters in which the signature is missing
|
|
|
|
resp, err = http.Post(testUrl.String(), "application/octet-stream", bytes.NewReader(body)) |
|
|
|
resp, err = http.Post(testUrl.String(), "application/octet-stream", bytes.NewReader(body)) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
t.Fatal(err) |
|
|
|
t.Fatal(err) |
|
|
|
} |
|
|
|
} |
|
|
|
defer resp.Body.Close() |
|
|
|
defer resp.Body.Close() |
|
|
|
if resp.StatusCode != http.StatusOK { |
|
|
|
expectedCode := http.StatusBadRequest |
|
|
|
t.Fatalf("Update returned %s", resp.Status) |
|
|
|
if resp.StatusCode != expectedCode { |
|
|
|
|
|
|
|
t.Fatalf("Update returned %s. Expected %d", resp.Status, expectedCode) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 2nd attempt with bad query parameters in which the signature is of incorrect length
|
|
|
|
|
|
|
|
urlQuery.Set("signature", "0xabcd") // should be 130 hex chars
|
|
|
|
|
|
|
|
resp, err = http.Post(testUrl.String(), "application/octet-stream", bytes.NewReader(body)) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
t.Fatal(err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
defer resp.Body.Close() |
|
|
|
|
|
|
|
expectedCode = http.StatusBadRequest |
|
|
|
|
|
|
|
if resp.StatusCode != expectedCode { |
|
|
|
|
|
|
|
t.Fatalf("Update returned %s. Expected %d", resp.Status, expectedCode) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 3rd attempt, with good query parameters:
|
|
|
|
|
|
|
|
testUrl.RawQuery = goodQueryParameters |
|
|
|
|
|
|
|
resp, err = http.Post(testUrl.String(), "application/octet-stream", bytes.NewReader(body)) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
t.Fatal(err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
defer resp.Body.Close() |
|
|
|
|
|
|
|
expectedCode = http.StatusOK |
|
|
|
|
|
|
|
if resp.StatusCode != expectedCode { |
|
|
|
|
|
|
|
t.Fatalf("Update returned %s. Expected %d", resp.Status, expectedCode) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// get latest update through bzz-feed directly
|
|
|
|
// get latest update through bzz-feed directly
|
|
|
|