Add more non-happy-path HTTP tests (round #2)
This commit is contained in:
parent
178e38555f
commit
5dcca9464b
@ -7,6 +7,8 @@ import (
|
||||
"gitlab.com/offline-twitter/twitter_offline_engine/pkg/scraper"
|
||||
)
|
||||
|
||||
// TODO: deprecated-offline-follows
|
||||
|
||||
func (app *Application) UserFollow(w http.ResponseWriter, r *http.Request) {
|
||||
app.traceLog.Printf("'UserFollow' handler (path: %q)", r.URL.Path)
|
||||
|
||||
|
@ -100,7 +100,7 @@ func TestListAddAndDeleteUser(t *testing.T) {
|
||||
assert.Len(cascadia.QueryAll(root, selector(".users-list .author-info")), 3)
|
||||
|
||||
// Delete a user
|
||||
resp_remove := do_request(httptest.NewRequest("GET", "/lists/2/remove_user?user_handle=cernovich", nil))
|
||||
resp_remove := do_request(httptest.NewRequest("GET", "/lists/2/remove_user?user_handle=@cernovich", nil))
|
||||
require.Equal(resp_remove.StatusCode, 302)
|
||||
require.Equal("/lists/2/users", resp_remove.Header.Get("Location"))
|
||||
|
||||
|
@ -52,7 +52,6 @@ func (app *Application) Search(w http.ResponseWriter, r *http.Request) {
|
||||
if search_text == "" {
|
||||
app.error_400_with_message(w, r, "Empty search query")
|
||||
return
|
||||
// TODO: return an actual page
|
||||
}
|
||||
http.Redirect(w, r, fmt.Sprintf("/search/%s", url.PathEscape(search_text)), 302)
|
||||
return
|
||||
@ -116,7 +115,6 @@ func (app *Application) Search(w http.ResponseWriter, r *http.Request) {
|
||||
if err != nil {
|
||||
app.error_400_with_message(w, r, err.Error())
|
||||
return
|
||||
// TODO: return actual page
|
||||
}
|
||||
err = parse_cursor_value(&c, r)
|
||||
if err != nil {
|
||||
|
@ -52,11 +52,22 @@ func TestSearchWithCursor(t *testing.T) {
|
||||
assert.Len(cascadia.QueryAll(root, selector(".timeline > .tweet")), 3)
|
||||
|
||||
// Add a cursor with the 1st tweet's posted_at time
|
||||
resp = do_request(httptest.NewRequest("GET", "/search/who%20are?cursor=1628979529000", nil))
|
||||
req := httptest.NewRequest("GET", "/search/who%20are?cursor=1628979529000", nil)
|
||||
req.Header.Set("HX-Request", "true")
|
||||
resp = do_request(req)
|
||||
require.Equal(resp.StatusCode, 200)
|
||||
root, err = html.Parse(resp.Body)
|
||||
require.NoError(err)
|
||||
assert.Len(cascadia.QueryAll(root, selector(".timeline > .tweet")), 2)
|
||||
assert.Len(cascadia.QueryAll(root, selector(":not(.tweet__quoted-tweet) > .tweet")), 2)
|
||||
}
|
||||
|
||||
func TestSearchWithInvalidCursorShould400(t *testing.T) {
|
||||
require := require.New(t)
|
||||
|
||||
req := httptest.NewRequest("GET", "/search/who%20are?cursor=asdf", nil)
|
||||
req.Header.Set("HX-Request", "true")
|
||||
resp := do_request(req)
|
||||
require.Equal(resp.StatusCode, 400)
|
||||
}
|
||||
|
||||
func TestSearchWithSortOrder(t *testing.T) {
|
||||
|
@ -14,6 +14,8 @@ type TimelineData struct {
|
||||
ActiveTab string
|
||||
}
|
||||
|
||||
// TODO: deprecated-offline-follows
|
||||
|
||||
func (app *Application) OfflineTimeline(w http.ResponseWriter, r *http.Request) {
|
||||
app.traceLog.Printf("'Timeline' handler (path: %q)", r.URL.Path)
|
||||
|
||||
|
@ -11,6 +11,8 @@ import (
|
||||
"golang.org/x/net/html"
|
||||
)
|
||||
|
||||
// TODO: deprecated-offline-follows
|
||||
|
||||
func TestTimeline(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
require := require.New(t)
|
||||
@ -31,15 +33,14 @@ func TestTimelineWithCursor(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
require := require.New(t)
|
||||
|
||||
resp := do_request(httptest.NewRequest("GET", "/timeline/offline?cursor=1631935701000", nil))
|
||||
req := httptest.NewRequest("GET", "/timeline/offline?cursor=1631935701000", nil)
|
||||
req.Header.Set("HX-Request", "true")
|
||||
resp := do_request(req)
|
||||
require.Equal(resp.StatusCode, 200)
|
||||
|
||||
root, err := html.Parse(resp.Body)
|
||||
require.NoError(err)
|
||||
title_node := cascadia.Query(root, selector("title"))
|
||||
assert.Equal(title_node.FirstChild.Data, "Timeline | Offline Twitter")
|
||||
|
||||
tweet_nodes := cascadia.QueryAll(root, selector(".timeline > .tweet"))
|
||||
tweet_nodes := cascadia.QueryAll(root, selector(":not(.tweet__quoted-tweet) > .tweet"))
|
||||
assert.Len(tweet_nodes, 10)
|
||||
}
|
||||
|
||||
|
@ -54,16 +54,14 @@ func TestUserFeedWithCursor(t *testing.T) {
|
||||
require := require.New(t)
|
||||
|
||||
// With a cursor
|
||||
resp := do_request(httptest.NewRequest("GET", "/cernovich?cursor=1631935701000", nil))
|
||||
req := httptest.NewRequest("GET", "/cernovich?cursor=1631935701000", nil)
|
||||
req.Header.Set("HX-Request", "true")
|
||||
resp := do_request(req)
|
||||
require.Equal(resp.StatusCode, 200)
|
||||
|
||||
root, err := html.Parse(resp.Body)
|
||||
require.NoError(err)
|
||||
title_node := cascadia.Query(root, selector("title"))
|
||||
assert.Equal(title_node.FirstChild.Data, "@Cernovich | Offline Twitter")
|
||||
|
||||
tweet_nodes := cascadia.QueryAll(root, selector(".timeline > .tweet"))
|
||||
assert.Len(tweet_nodes, 2)
|
||||
assert.Len(cascadia.QueryAll(root, selector(":not(.tweet__quoted-tweet) > .tweet")), 2)
|
||||
}
|
||||
|
||||
func TestUserFeedWithCursorBadNumber(t *testing.T) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user