diff --git a/front/README.md b/front/README.md index 28a1f739..7fe37c9e 100644 --- a/front/README.md +++ b/front/README.md @@ -16,55 +16,55 @@ Users are authenticated using TLS client certificates; see [Gemini protocol specification](https://gemini.circumlunar.space/docs/specification.html) for more details. The following pages require authentication: -* /users shows posts by followed users, sorted chronologically. -* /users/mentions is like /users but shows only posts that mention the user. -* /users/register creates a new user. -* /users/follows shows a list of followed users, ordered by activity. -* /users/me redirects the user to their outbox. -* /users/resolve looks up federated user *user@domain* or local user *user*. -* /users/dm creates a post visible to mentioned users. -* /users/whisper creates a post visible to followers. -* /users/say creates a public post. -* /users/reply replies to a post. -* /users/edit edits a post. -* /users/delete deletes a post. -* /users/share shares a post. -* /users/unshare removes a shared post. -* /users/follow sends a follow request to a user. -* /users/unfollow deletes a follow request. -* /users/outbox is equivalent to /outbox but also includes a link to /users/follow or /users/unfollow. -* /users/bio allows users to edit their bio. -* /users/name allows users to set their display name. -* /users/alias allows users to set an account alias, to allow migration of accounts to tootik. -* /users/move allows users to notify followers of account migration from tootik. - -Some clients generate a certificate for / (all pages of this capsule) when /foo requests a client certificate, while others use the certificate requested by /foo only for /foo and /foo/bar. Therefore, pages that don't require authentication are also mirrored under /users: - -* /users/local -* /users/hashtag -* /users/hashtags -* /users/fts -* /users/status -* /users/view -* /users/thread - -This way, users who prefer not to provide a client certificate when browsing to /x can reply to public posts by using /users/x instead. - -To make the transition to authenticated pages more seamless, links in the user menu at the bottom of each page point to /users/x rather than /x, if the user is authenticated. - -All pages follow the [subscription convention](https://gemini.circumlunar.space/docs/companion/subscription.gmi), so users can "subscribe" to a user, a hashtag, posts by followed users or other activity. This way, tootik can act as a personal fediverse aggregator. In addition, feeds like /users have separators between days, to interrupt the endless stream of incoming content, make the content consumption more intentional and prevent doomscrolling. +* /login shows posts by followed users, sorted chronologically. +* /login/mentions is like /login but shows only posts that mention the user. +* /login/register creates a new user. +* /login/follows shows a list of followed users, ordered by activity. +* /login/me redirects the user to their outbox. +* /login/resolve looks up federated user *user@domain* or local user *user*. +* /login/dm creates a post visible to mentioned users. +* /login/whisper creates a post visible to followers. +* /login/say creates a public post. +* /login/reply replies to a post. +* /login/edit edits a post. +* /login/delete deletes a post. +* /login/share shares a post. +* /login/unshare removes a shared post. +* /login/follow sends a follow request to a user. +* /login/unfollow deletes a follow request. +* /login/outbox is equivalent to /outbox but also includes a link to /login/follow or /login/unfollow. +* /login/bio allows users to edit their bio. +* /login/name allows users to set their display name. +* /login/alias allows users to set an account alias, to allow migration of accounts to tootik. +* /login/move allows users to notify followers of account migration from tootik. + +Some clients generate a certificate for / (all pages of this capsule) when /foo requests a client certificate, while others use the certificate requested by /foo only for /foo and /foo/bar. Therefore, pages that don't require authentication are also mirrored under /login: + +* /login/local +* /login/hashtag +* /login/hashtags +* /login/fts +* /login/status +* /login/view +* /login/thread + +This way, users who prefer not to provide a client certificate when browsing to /x can reply to public posts by using /login/x instead. + +To make the transition to authenticated pages more seamless, links in the user menu at the bottom of each page point to /login/x rather than /x, if the user is authenticated. + +All pages follow the [subscription convention](https://gemini.circumlunar.space/docs/companion/subscription.gmi), so users can "subscribe" to a user, a hashtag, posts by followed users or other activity. This way, tootik can act as a personal fediverse aggregator. In addition, feeds like /login have separators between days, to interrupt the endless stream of incoming content, make the content consumption more intentional and prevent doomscrolling. ## Authentication -If no client certificate is provided, all pages under /users redirect the client to /users. +If no client certificate is provided, all pages under /login redirect the client to /login. -/users asks the client to provide a certificate. Well-behaved clients should generate a certificate, re-request /users, then reuse this certificate in future requests of /users and pages under it. +/login asks the client to provide a certificate. Well-behaved clients should generate a certificate, re-request /login, then reuse this certificate in future requests of /login and pages under it. -If a certificate is provided but does not belong to any user, the client is redirected to /users/register. +If a certificate is provided but does not belong to any user, the client is redirected to /login/register. -By default, the username associated with a client certificate is the common name specified in the certificate. If invalid or already in use by another user, /users/register asks the user to provide a different username. Once the user is registered, the client is redirected back to /users. +By default, the username associated with a client certificate is the common name specified in the certificate. If invalid or already in use by another user, /login/register asks the user to provide a different username. Once the user is registered, the client is redirected back to /login. -Once the client certificate is associated with a user, all pages under /users look up the authenticated user's data using the certificate hash. +Once the client certificate is associated with a user, all pages under /login look up the authenticated user's data using the certificate hash. ## Posts @@ -91,7 +91,7 @@ tootik has three kinds of posts: ## Post Editing -/users/edit cannot remove recipients from the post audience, only add more. If a post that mentions only `@a` is edited to mention only `@b`, both `a` and `b` will receive the updated post. +/login/edit cannot remove recipients from the post audience, only add more. If a post that mentions only `@a` is edited to mention only `@b`, both `a` and `b` will receive the updated post. ### Polls diff --git a/front/alias.go b/front/alias.go index 1f7686cd..ceeda8fa 100644 --- a/front/alias.go +++ b/front/alias.go @@ -27,7 +27,7 @@ import ( func (h *Handler) alias(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -101,5 +101,5 @@ func (h *Handler) alias(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/outbox/" + strings.TrimPrefix(actor.ID, "https://")) + w.Redirect("/login/outbox/" + strings.TrimPrefix(actor.ID, "https://")) } diff --git a/front/approve.go b/front/approve.go index 2bf39dd1..31a2f5d2 100644 --- a/front/approve.go +++ b/front/approve.go @@ -20,7 +20,7 @@ import "github.com/dimkr/tootik/front/text" func (h *Handler) approve(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -50,5 +50,5 @@ func (h *Handler) approve(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/certificates") + w.Redirect("/login/certificates") } diff --git a/front/avatar.go b/front/avatar.go index eaa3f9c8..c004a335 100644 --- a/front/avatar.go +++ b/front/avatar.go @@ -36,7 +36,7 @@ var supportedImageTypes = map[string]struct{}{ func (h *Handler) uploadAvatar(w text.Writer, r *Request, args ...string) { if r.User == nil || r.Body == nil { - w.Redirectf("gemini://%s/users/oops", h.Domain) + w.Redirectf("gemini://%s/login/oops", h.Domain) return } @@ -149,5 +149,5 @@ func (h *Handler) uploadAvatar(w text.Writer, r *Request, args ...string) { return } - w.Redirectf("gemini://%s/users/outbox/%s", h.Domain, strings.TrimPrefix(r.User.ID, "https://")) + w.Redirectf("gemini://%s/login/outbox/%s", h.Domain, strings.TrimPrefix(r.User.ID, "https://")) } diff --git a/front/bio.go b/front/bio.go index 05af7729..a5ee7166 100644 --- a/front/bio.go +++ b/front/bio.go @@ -28,7 +28,7 @@ import ( func (h *Handler) doBio(w text.Writer, r *Request, readInput func(text.Writer, *Request) (string, bool)) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -86,7 +86,7 @@ func (h *Handler) doBio(w text.Writer, r *Request, readInput func(text.Writer, * return } - w.Redirect("/users/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) + w.Redirect("/login/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) } func (h *Handler) bio(w text.Writer, r *Request, args ...string) { diff --git a/front/bookmark.go b/front/bookmark.go index 8ccae024..35671f64 100644 --- a/front/bookmark.go +++ b/front/bookmark.go @@ -25,7 +25,7 @@ import ( func (h *Handler) bookmark(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -105,5 +105,5 @@ func (h *Handler) bookmark(w text.Writer, r *Request, args ...string) { return } - w.Redirectf("/users/view/" + args[1]) + w.Redirectf("/login/view/" + args[1]) } diff --git a/front/certificates.go b/front/certificates.go index 889ed751..08717df3 100644 --- a/front/certificates.go +++ b/front/certificates.go @@ -24,7 +24,7 @@ import ( func (h *Handler) certificates(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -67,10 +67,10 @@ func (h *Handler) certificates(w text.Writer, r *Request, args ...string) { w.Item("Expires: " + time.Unix(expires, 0).Format(time.DateOnly)) if approved == 0 { - w.Link("/users/certificates/approve/"+hash, "๐ŸŸข Approve") - w.Link("/users/certificates/revoke/"+hash, "๐Ÿ”ด Deny") + w.Link("/login/certificates/approve/"+hash, "๐ŸŸข Approve") + w.Link("/login/certificates/revoke/"+hash, "๐Ÿ”ด Deny") } else { - w.Link("/users/certificates/revoke/"+hash, "๐Ÿ”ด Revoke") + w.Link("/login/certificates/revoke/"+hash, "๐Ÿ”ด Revoke") } first = false diff --git a/front/communities.go b/front/communities.go index 8bfc434e..36ff1f8f 100644 --- a/front/communities.go +++ b/front/communities.go @@ -64,7 +64,7 @@ func (h *Handler) communities(w text.Writer, r *Request, args ...string) { if r.User == nil { w.Linkf("/outbox/"+strings.TrimPrefix(id, "https://"), "%s %s", time.Unix(last, 0).Format(time.DateOnly), username) } else { - w.Linkf("/users/outbox/"+strings.TrimPrefix(id, "https://"), "%s %s", time.Unix(last, 0).Format(time.DateOnly), username) + w.Linkf("/login/outbox/"+strings.TrimPrefix(id, "https://"), "%s %s", time.Unix(last, 0).Format(time.DateOnly), username) } empty = false diff --git a/front/delete.go b/front/delete.go index a7976b5c..f8e9e0a1 100644 --- a/front/delete.go +++ b/front/delete.go @@ -28,7 +28,7 @@ import ( func (h *Handler) delete(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -51,5 +51,5 @@ func (h *Handler) delete(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) + w.Redirect("/login/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) } diff --git a/front/dm.go b/front/dm.go index e56fdef7..193fbf78 100644 --- a/front/dm.go +++ b/front/dm.go @@ -23,7 +23,7 @@ import ( func (h *Handler) dm(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -37,7 +37,7 @@ func (h *Handler) dm(w text.Writer, r *Request, args ...string) { func (h *Handler) uploadDM(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/front/edit.go b/front/edit.go index d8390ee2..85aab72a 100644 --- a/front/edit.go +++ b/front/edit.go @@ -28,7 +28,7 @@ import ( func (h *Handler) doEdit(w text.Writer, r *Request, args []string, readInput inputFunc) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/front/export.go b/front/export.go index 2bc05560..71903825 100644 --- a/front/export.go +++ b/front/export.go @@ -32,7 +32,7 @@ var csvHeader = []string{"ID", "Type", "Inserted", "Activity"} func (h *Handler) export(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/front/follow.go b/front/follow.go index abc46b2f..88d7bcdd 100644 --- a/front/follow.go +++ b/front/follow.go @@ -23,7 +23,7 @@ import ( func (h *Handler) follow(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -71,5 +71,5 @@ func (h *Handler) follow(w text.Writer, r *Request, args ...string) { return } - w.Redirectf("/users/outbox/" + args[1]) + w.Redirectf("/login/outbox/" + args[1]) } diff --git a/front/follows.go b/front/follows.go index 73dff1eb..0c3c9310 100644 --- a/front/follows.go +++ b/front/follows.go @@ -27,7 +27,7 @@ import ( func (h *Handler) follows(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -91,9 +91,9 @@ func (h *Handler) follows(w text.Writer, r *Request, args ...string) { displayName := h.getActorDisplayName(&actor) if last.Valid { - w.Linkf("/users/outbox/"+strings.TrimPrefix(actor.ID, "https://"), "%s %s", time.Unix(last.Int64*(60*60*24), 0).Format(time.DateOnly), displayName) + w.Linkf("/login/outbox/"+strings.TrimPrefix(actor.ID, "https://"), "%s %s", time.Unix(last.Int64*(60*60*24), 0).Format(time.DateOnly), displayName) } else { - w.Link("/users/outbox/"+strings.TrimPrefix(actor.ID, "https://"), displayName) + w.Link("/login/outbox/"+strings.TrimPrefix(actor.ID, "https://"), displayName) } i++ diff --git a/front/gemini/gemini.go b/front/gemini/gemini.go index e5234ab8..669c7baa 100644 --- a/front/gemini/gemini.go +++ b/front/gemini/gemini.go @@ -147,9 +147,9 @@ func (gl *Listener) Handle(ctx context.Context, conn net.Conn) { defer w.Flush() r.User, r.Key, err = gl.getUser(ctx, tlsConn) - if err != nil && errors.Is(err, front.ErrNotRegistered) && r.URL.Path == "/users" { + if err != nil && errors.Is(err, front.ErrNotRegistered) && r.URL.Path == "/login" { slog.Info("Redirecting new user") - w.Redirect("/users/register") + w.Redirect("/login/register") return } else if errors.Is(err, front.ErrNotApproved) { w.Status(40, "Client certificate is awaiting approval") @@ -158,10 +158,10 @@ func (gl *Listener) Handle(ctx context.Context, conn net.Conn) { slog.Warn("Failed to get user", "error", err) w.Error() return - } else if err == nil && r.User == nil && r.URL.Path == "/users" { + } else if err == nil && r.User == nil && r.URL.Path == "/login" { w.Status(60, "Client certificate required") return - } else if r.User == nil && gl.Config.RequireRegistration && r.URL.Path != "/" && r.URL.Path != "/help" && r.URL.Path != "/users/register" { + } else if r.User == nil && gl.Config.RequireRegistration && r.URL.Path != "/" && r.URL.Path != "/help" && r.URL.Path != "/login/register" { w.Status(40, "Must register first") return } diff --git a/front/handler.go b/front/handler.go index 0d11803d..fa13eeed 100644 --- a/front/handler.go +++ b/front/handler.go @@ -65,90 +65,90 @@ func NewHandler(domain string, closed bool, cfg *cfg.Config, resolver ap.Resolve h.handlers[regexp.MustCompile(`^/$`)] = withUserMenu(h.home) - h.handlers[regexp.MustCompile(`^/users$`)] = withUserMenu(h.users) + h.handlers[regexp.MustCompile(`^/(?:(login|users))$`)] = withUserMenu(h.login) if closed { - h.handlers[regexp.MustCompile(`^/users/register$`)] = func(w text.Writer, r *Request, args ...string) { + h.handlers[regexp.MustCompile(`^/(?:(login|users))/register$`)] = func(w text.Writer, r *Request, args ...string) { w.Status(40, "Registration is closed") } } else { - h.handlers[regexp.MustCompile(`^/users/register$`)] = h.register + h.handlers[regexp.MustCompile(`^/(?:(login|users))/register$`)] = h.register } - h.handlers[regexp.MustCompile(`^/users/mentions$`)] = withUserMenu(h.mentions) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/mentions$`)] = withUserMenu(h.mentions) h.handlers[regexp.MustCompile(`^/local$`)] = withCache(withUserMenu(h.local), time.Minute*15, &cache) - h.handlers[regexp.MustCompile(`^/users/local$`)] = withCache(withUserMenu(h.local), time.Minute*15, &cache) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/local$`)] = withCache(withUserMenu(h.local), time.Minute*15, &cache) h.handlers[regexp.MustCompile(`^/outbox/(\S+)$`)] = withUserMenu(h.userOutbox) - h.handlers[regexp.MustCompile(`^/users/outbox/(\S+)$`)] = withUserMenu(h.userOutbox) - h.handlers[regexp.MustCompile(`^/users/me$`)] = withUserMenu(me) - - h.handlers[regexp.MustCompile(`^/users/upload/avatar;([a-z]+)=([^;]+);([a-z]+)=([^;]+)`)] = h.uploadAvatar - h.handlers[regexp.MustCompile(`^/users/bio$`)] = h.bio - h.handlers[regexp.MustCompile(`^/users/upload/bio;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadBio - h.handlers[regexp.MustCompile(`^/users/name$`)] = h.name - h.handlers[regexp.MustCompile(`^/users/alias$`)] = h.alias - h.handlers[regexp.MustCompile(`^/users/move$`)] = h.move - h.handlers[regexp.MustCompile(`^/users/certificates$`)] = withUserMenu(h.certificates) - h.handlers[regexp.MustCompile(`^/users/certificates/approve/(\S+)$`)] = withUserMenu(h.approve) - h.handlers[regexp.MustCompile(`^/users/certificates/revoke/(\S+)$`)] = withUserMenu(h.revoke) - h.handlers[regexp.MustCompile(`^/users/export$`)] = h.export + h.handlers[regexp.MustCompile(`^/(?:(login|users))/outbox/(\S+)$`)] = withUserMenu(h.userOutbox) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/me$`)] = withUserMenu(me) + + h.handlers[regexp.MustCompile(`^/(?:(login|users))/upload/avatar;([a-z]+)=([^;]+);([a-z]+)=([^;]+)`)] = h.uploadAvatar + h.handlers[regexp.MustCompile(`^/(?:(login|users))/bio$`)] = h.bio + h.handlers[regexp.MustCompile(`^/(?:(login|users))/upload/bio;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadBio + h.handlers[regexp.MustCompile(`^/(?:(login|users))/name$`)] = h.name + h.handlers[regexp.MustCompile(`^/(?:(login|users))/alias$`)] = h.alias + h.handlers[regexp.MustCompile(`^/(?:(login|users))/move$`)] = h.move + h.handlers[regexp.MustCompile(`^/(?:(login|users))/certificates$`)] = withUserMenu(h.certificates) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/certificates/approve/(\S+)$`)] = withUserMenu(h.approve) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/certificates/revoke/(\S+)$`)] = withUserMenu(h.revoke) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/export$`)] = h.export h.handlers[regexp.MustCompile(`^/view/(\S+)$`)] = withUserMenu(h.view) - h.handlers[regexp.MustCompile(`^/users/view/(\S+)$`)] = withUserMenu(h.view) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/view/(\S+)$`)] = withUserMenu(h.view) h.handlers[regexp.MustCompile(`^/thread/(\S+)$`)] = withUserMenu(h.thread) - h.handlers[regexp.MustCompile(`^/users/thread/(\S+)$`)] = withUserMenu(h.thread) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/thread/(\S+)$`)] = withUserMenu(h.thread) - h.handlers[regexp.MustCompile(`^/users/dm$`)] = h.dm - h.handlers[regexp.MustCompile(`^/users/whisper$`)] = h.whisper - h.handlers[regexp.MustCompile(`^/users/say$`)] = h.say + h.handlers[regexp.MustCompile(`^/(?:(login|users))/dm$`)] = h.dm + h.handlers[regexp.MustCompile(`^/(?:(login|users))/whisper$`)] = h.whisper + h.handlers[regexp.MustCompile(`^/(?:(login|users))/say$`)] = h.say - h.handlers[regexp.MustCompile(`^/users/reply/(\S+)`)] = h.reply + h.handlers[regexp.MustCompile(`^/(?:(login|users))/reply/(\S+)`)] = h.reply - h.handlers[regexp.MustCompile(`^/users/share/(\S+)`)] = h.share - h.handlers[regexp.MustCompile(`^/users/unshare/(\S+)`)] = h.unshare + h.handlers[regexp.MustCompile(`^/(?:(login|users))/share/(\S+)`)] = h.share + h.handlers[regexp.MustCompile(`^/(?:(login|users))/unshare/(\S+)`)] = h.unshare - h.handlers[regexp.MustCompile(`^/users/bookmark/(\S+)`)] = h.bookmark - h.handlers[regexp.MustCompile(`^/users/unbookmark/(\S+)`)] = h.unbookmark - h.handlers[regexp.MustCompile(`^/users/bookmarks$`)] = withUserMenu(h.bookmarks) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/bookmark/(\S+)`)] = h.bookmark + h.handlers[regexp.MustCompile(`^/(?:(login|users))/unbookmark/(\S+)`)] = h.unbookmark + h.handlers[regexp.MustCompile(`^/(?:(login|users))/bookmarks$`)] = withUserMenu(h.bookmarks) - h.handlers[regexp.MustCompile(`^/users/edit/(\S+)`)] = h.edit - h.handlers[regexp.MustCompile(`^/users/delete/(\S+)`)] = h.delete + h.handlers[regexp.MustCompile(`^/(?:(login|users))/edit/(\S+)`)] = h.edit + h.handlers[regexp.MustCompile(`^/(?:(login|users))/delete/(\S+)`)] = h.delete - h.handlers[regexp.MustCompile(`^/users/upload/dm;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadDM - h.handlers[regexp.MustCompile(`^/users/upload/whisper;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadWhisper - h.handlers[regexp.MustCompile(`^/users/upload/say;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadSay - h.handlers[regexp.MustCompile(`^/users/upload/edit/([^;]+);([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.editUpload - h.handlers[regexp.MustCompile(`^/users/upload/reply/([^;]+);([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.replyUpload + h.handlers[regexp.MustCompile(`^/(?:(login|users))/upload/dm;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadDM + h.handlers[regexp.MustCompile(`^/(?:(login|users))/upload/whisper;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadWhisper + h.handlers[regexp.MustCompile(`^/(?:(login|users))/upload/say;([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.uploadSay + h.handlers[regexp.MustCompile(`^/(?:(login|users))/upload/edit/([^;]+);([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.editUpload + h.handlers[regexp.MustCompile(`^/(?:(login|users))/upload/reply/([^;]+);([a-z]+)=([^;]+)(?:;([a-z]+)=([^;]+)){0,1}$`)] = h.replyUpload - h.handlers[regexp.MustCompile(`^/users/resolve$`)] = withUserMenu(h.resolve) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/resolve$`)] = withUserMenu(h.resolve) - h.handlers[regexp.MustCompile(`^/users/follow/(\S+)$`)] = withUserMenu(h.follow) - h.handlers[regexp.MustCompile(`^/users/unfollow/(\S+)$`)] = withUserMenu(h.unfollow) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/follow/(\S+)$`)] = withUserMenu(h.follow) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/unfollow/(\S+)$`)] = withUserMenu(h.unfollow) - h.handlers[regexp.MustCompile(`^/users/follows$`)] = withUserMenu(h.follows) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/follows$`)] = withUserMenu(h.follows) h.handlers[regexp.MustCompile(`^/communities$`)] = withUserMenu(h.communities) - h.handlers[regexp.MustCompile(`^/users/communities$`)] = withUserMenu(h.communities) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/communities$`)] = withUserMenu(h.communities) h.handlers[regexp.MustCompile(`^/hashtag/([a-zA-Z0-9]+)$`)] = withCache(withUserMenu(h.hashtag), time.Minute*5, &cache) - h.handlers[regexp.MustCompile(`^/users/hashtag/([a-zA-Z0-9]+)$`)] = withCache(withUserMenu(h.hashtag), time.Minute*5, &cache) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/hashtag/([a-zA-Z0-9]+)$`)] = withCache(withUserMenu(h.hashtag), time.Minute*5, &cache) h.handlers[regexp.MustCompile(`^/hashtags$`)] = withCache(withUserMenu(h.hashtags), time.Minute*30, &cache) - h.handlers[regexp.MustCompile(`^/users/hashtags$`)] = withCache(withUserMenu(h.hashtags), time.Minute*30, &cache) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/hashtags$`)] = withCache(withUserMenu(h.hashtags), time.Minute*30, &cache) h.handlers[regexp.MustCompile(`^/search$`)] = withUserMenu(search) - h.handlers[regexp.MustCompile(`^/users/search$`)] = withUserMenu(search) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/search$`)] = withUserMenu(search) h.handlers[regexp.MustCompile(`^/fts$`)] = withUserMenu(h.fts) - h.handlers[regexp.MustCompile(`^/users/fts$`)] = withUserMenu(h.fts) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/fts$`)] = withUserMenu(h.fts) h.handlers[regexp.MustCompile(`^/status$`)] = withCache(withUserMenu(h.status), time.Minute*5, &cache) - h.handlers[regexp.MustCompile(`^/users/status$`)] = withCache(withUserMenu(h.status), time.Minute*5, &cache) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/status$`)] = withCache(withUserMenu(h.status), time.Minute*5, &cache) h.handlers[regexp.MustCompile(`^/oops`)] = withUserMenu(oops) - h.handlers[regexp.MustCompile(`^/users/oops`)] = withUserMenu(oops) + h.handlers[regexp.MustCompile(`^/(?:(login|users))/oops`)] = withUserMenu(oops) h.handlers[regexp.MustCompile(`^/robots.txt$`)] = robots @@ -181,10 +181,10 @@ func (h *Handler) Handle(r *Request, w text.Writer) { if r.URL.Scheme == "titan" && r.User == nil { w.Redirectf("gemini://%s/oops", h.Domain) } else if r.URL.Scheme == "titan" && r.User != nil { - w.Redirectf("gemini://%s/users/oops", h.Domain) + w.Redirectf("gemini://%s/login/oops", h.Domain) } else if r.User == nil { w.Redirect("/oops") } else { - w.Redirect("/users/oops") + w.Redirect("/login/oops") } } diff --git a/front/hashtag.go b/front/hashtag.go index 8bab4360..cc995142 100644 --- a/front/hashtag.go +++ b/front/hashtag.go @@ -46,6 +46,6 @@ func (h *Handler) hashtag(w text.Writer, r *Request, args ...string) { if r.User == nil { w.Link("/search", "๐Ÿ”Ž Posts by hashtag") } else { - w.Link("/users/search", "๐Ÿ”Ž Posts by hashtag") + w.Link("/login/search", "๐Ÿ”Ž Posts by hashtag") } } diff --git a/front/hashtags.go b/front/hashtags.go index 0651b4b8..25cdddc8 100644 --- a/front/hashtags.go +++ b/front/hashtags.go @@ -48,7 +48,7 @@ func printHashtags(w text.Writer, r *Request, title string, tags []string) { if r.User == nil { w.Link("/hashtag/"+tag, "#"+tag) } else { - w.Link("/users/hashtag/"+tag, "#"+tag) + w.Link("/login/hashtag/"+tag, "#"+tag) } } } @@ -203,6 +203,6 @@ func (h *Handler) hashtags(w text.Writer, r *Request, args ...string) { if r.User == nil { w.Link("/search", "๐Ÿ”Ž Posts by hashtag") } else { - w.Link("/users/search", "๐Ÿ”Ž Posts by hashtag") + w.Link("/login/search", "๐Ÿ”Ž Posts by hashtag") } } diff --git a/front/home.go b/front/home.go index fd0839f2..b3cefa92 100644 --- a/front/home.go +++ b/front/home.go @@ -20,7 +20,7 @@ import "github.com/dimkr/tootik/front/text" func (h *Handler) home(w text.Writer, r *Request, args ...string) { if r.User != nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/front/input.go b/front/input.go index 937209c3..b7815641 100644 --- a/front/input.go +++ b/front/input.go @@ -44,7 +44,7 @@ func readQuery(w text.Writer, r *Request, prompt string) (string, bool) { func (h *Handler) readBody(w text.Writer, r *Request, args []string) (string, bool) { if r.Body == nil { - w.Redirectf("gemini://%s/users/oops", h.Domain) + w.Redirectf("gemini://%s/login/oops", h.Domain) return "", false } diff --git a/front/users.go b/front/login.go similarity index 94% rename from front/users.go rename to front/login.go index b786e4b3..42cd10ff 100644 --- a/front/users.go +++ b/front/login.go @@ -22,7 +22,7 @@ import ( "github.com/dimkr/tootik/front/text" ) -func (h *Handler) users(w text.Writer, r *Request, args ...string) { +func (h *Handler) login(w text.Writer, r *Request, args ...string) { if r.User == nil { w.Redirect("/oops") return diff --git a/front/me.go b/front/me.go index ea37833e..39b124d2 100644 --- a/front/me.go +++ b/front/me.go @@ -24,9 +24,9 @@ import ( func me(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } - w.Redirect("/users/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) + w.Redirect("/login/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) } diff --git a/front/mentions.go b/front/mentions.go index 9ad61535..cf29ca37 100644 --- a/front/mentions.go +++ b/front/mentions.go @@ -24,7 +24,7 @@ import ( func (h *Handler) mentions(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/front/menu.go b/front/menu.go index 21cc35a8..cc230464 100644 --- a/front/menu.go +++ b/front/menu.go @@ -26,14 +26,14 @@ func writeUserMenu(w text.Writer, user *ap.Actor) { prefix := "" if user != nil { - prefix = "/users" + prefix = "/login" } if user != nil { - w.Link("/users", "๐Ÿ“ป My feed") - w.Link("/users/mentions", "๐Ÿ“ž Mentions") - w.Link("/users/follows", "โšก๏ธ Followed users") - w.Link("/users/me", "๐Ÿ˜ˆ My profile") + w.Link("/login", "๐Ÿ“ป My feed") + w.Link("/login/mentions", "๐Ÿ“ž Mentions") + w.Link("/login/follows", "โšก๏ธ Followed users") + w.Link("/login/me", "๐Ÿ˜ˆ My profile") } w.Link(prefix+"/local", "๐Ÿ“ก Local feed") @@ -43,18 +43,18 @@ func writeUserMenu(w text.Writer, user *ap.Actor) { w.Link("/hashtags", "๐Ÿ”ฅ Hashtags") w.Link("/fts", "๐Ÿ”Ž Search posts") } else { - w.Link("/users/communities", "๐Ÿ•๏ธ Communities") - w.Link("/users/hashtags", "๐Ÿ”ฅ Hashtags") - w.Link("/users/resolve", "๐Ÿ”ญ View profile") - w.Link("/users/bookmarks", "๐Ÿ”– Bookmarks") - w.Link("/users/fts", "๐Ÿ”Ž Search posts") + w.Link("/login/communities", "๐Ÿ•๏ธ Communities") + w.Link("/login/hashtags", "๐Ÿ”ฅ Hashtags") + w.Link("/login/resolve", "๐Ÿ”ญ View profile") + w.Link("/login/bookmarks", "๐Ÿ”– Bookmarks") + w.Link("/login/fts", "๐Ÿ”Ž Search posts") } if user == nil { - w.Link("/users", "๐Ÿ”‘ Sign in") + w.Link("/login", "๐Ÿ”‘ Sign in") } else { - w.Link("/users/post", "๐Ÿ“ฃ New post") - w.Link("/users/settings", "โš™๏ธ Settings") + w.Link("/login/post", "๐Ÿ“ฃ New post") + w.Link("/login/settings", "โš™๏ธ Settings") } w.Link(prefix+"/status", "๐Ÿ“Š Status") diff --git a/front/move.go b/front/move.go index c25edd6d..6eb4e016 100644 --- a/front/move.go +++ b/front/move.go @@ -27,7 +27,7 @@ import ( func (h *Handler) move(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -93,5 +93,5 @@ func (h *Handler) move(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/outbox/" + strings.TrimPrefix(actor.ID, "https://")) + w.Redirect("/login/outbox/" + strings.TrimPrefix(actor.ID, "https://")) } diff --git a/front/name.go b/front/name.go index 8d9c0fd3..1bf8e4b2 100644 --- a/front/name.go +++ b/front/name.go @@ -29,7 +29,7 @@ import ( func (h *Handler) name(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -100,5 +100,5 @@ func (h *Handler) name(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) + w.Redirect("/login/outbox/" + strings.TrimPrefix(r.User.ID, "https://")) } diff --git a/front/outbox.go b/front/outbox.go index 2f889f7c..dc1f658a 100644 --- a/front/outbox.go +++ b/front/outbox.go @@ -233,7 +233,7 @@ func (h *Handler) userOutbox(w text.Writer, r *Request, args ...string) { } if offset == 0 && actor.MovedTo != "" { - w.Linkf("/users/outbox/"+strings.TrimPrefix(actor.MovedTo, "https://"), "Moved to %s", actor.MovedTo) + w.Linkf("/login/outbox/"+strings.TrimPrefix(actor.MovedTo, "https://"), "Moved to %s", actor.MovedTo) showSeparator = true } @@ -321,10 +321,10 @@ func (h *Handler) userOutbox(w text.Writer, r *Request, args ...string) { r.Log.Warn("Failed to check if user is followed", "actor", actorID, "error", err) } else if followed == 0 { w.Separator() - w.Linkf("/users/follow/"+strings.TrimPrefix(actorID, "https://"), "โšก Follow %s", actor.PreferredUsername) + w.Linkf("/login/follow/"+strings.TrimPrefix(actorID, "https://"), "โšก Follow %s", actor.PreferredUsername) } else { w.Separator() - w.Linkf("/users/unfollow/"+strings.TrimPrefix(actorID, "https://"), "๐Ÿ”Œ Unfollow %s", actor.PreferredUsername) + w.Linkf("/login/unfollow/"+strings.TrimPrefix(actorID, "https://"), "๐Ÿ”Œ Unfollow %s", actor.PreferredUsername) } } } diff --git a/front/post.go b/front/post.go index 12487833..ec31c665 100644 --- a/front/post.go +++ b/front/post.go @@ -258,8 +258,8 @@ func (h *Handler) post(w text.Writer, r *Request, oldNote *ap.Object, inReplyTo } if r.URL.Scheme == "titan" { - w.Redirectf("gemini://%s/users/view/%s", h.Domain, strings.TrimPrefix(postID, "https://")) + w.Redirectf("gemini://%s/login/view/%s", h.Domain, strings.TrimPrefix(postID, "https://")) } else { - w.Redirectf("/users/view/%s", strings.TrimPrefix(postID, "https://")) + w.Redirectf("/login/view/%s", strings.TrimPrefix(postID, "https://")) } } diff --git a/front/print.go b/front/print.go index 834555c9..b3f848f3 100644 --- a/front/print.go +++ b/front/print.go @@ -287,7 +287,7 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * } else if r.User == nil { w.Link("/view/"+strings.TrimPrefix(note.ID, "https://"), title) } else { - w.Link("/users/view/"+strings.TrimPrefix(note.ID, "https://"), title) + w.Link("/login/view/"+strings.TrimPrefix(note.ID, "https://"), title) } for _, line := range contentLines { @@ -298,7 +298,7 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * if r.User == nil { w.Link("/outbox/"+strings.TrimPrefix(author.ID, "https://"), authorDisplayName) } else { - w.Link("/users/outbox/"+strings.TrimPrefix(author.ID, "https://"), authorDisplayName) + w.Link("/login/outbox/"+strings.TrimPrefix(author.ID, "https://"), authorDisplayName) } for mentionID := range mentionedUsers.Keys() { @@ -314,14 +314,14 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * if r.User == nil { links.Store("/outbox/"+strings.TrimPrefix(mentionID, "https://"), mentionUserName) } else { - links.Store("/users/outbox/"+strings.TrimPrefix(mentionID, "https://"), mentionUserName) + links.Store("/login/outbox/"+strings.TrimPrefix(mentionID, "https://"), mentionUserName) } } if r.User == nil && sharer != nil { links.Store("/outbox/"+strings.TrimPrefix(sharer.ID, "https://"), "๐Ÿ”„ "+sharer.PreferredUsername) } else if sharer != nil { - links.Store("/users/outbox/"+strings.TrimPrefix(sharer.ID, "https://"), "๐Ÿ”„๏ธ "+sharer.PreferredUsername) + links.Store("/login/outbox/"+strings.TrimPrefix(sharer.ID, "https://"), "๐Ÿ”„๏ธ "+sharer.PreferredUsername) } else if note.IsPublic() { var rows *sql.Rows var err error @@ -399,7 +399,7 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * r.Log.Warn("Failed to scan sharer", "error", err) continue } - links.Store("/users/outbox/"+strings.TrimPrefix(sharerID, "https://"), "๐Ÿ”„ "+sharerName) + links.Store("/login/outbox/"+strings.TrimPrefix(sharerID, "https://"), "๐Ÿ”„ "+sharerName) } rows.Close() } @@ -423,16 +423,16 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * if exists == 1 && r.User == nil { w.Linkf("/hashtag/"+tag, "Posts tagged #%s", tag) } else if exists == 1 { - w.Linkf("/users/hashtag/"+tag, "Posts tagged #%s", tag) + w.Linkf("/login/hashtag/"+tag, "Posts tagged #%s", tag) } } if r.User != nil && note.AttributedTo == r.User.ID && note.Type != ap.Question && note.Name == "" { // polls and votes cannot be edited - w.Link("/users/edit/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿฉน Edit") - w.Link(fmt.Sprintf("titan://%s/users/upload/edit/%s", h.Domain, strings.TrimPrefix(note.ID, "https://")), "Upload edited post") + w.Link("/login/edit/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿฉน Edit") + w.Link(fmt.Sprintf("titan://%s/login/upload/edit/%s", h.Domain, strings.TrimPrefix(note.ID, "https://")), "Upload edited post") } if r.User != nil && note.AttributedTo == r.User.ID { - w.Link("/users/delete/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ’ฃ Delete") + w.Link("/login/delete/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ’ฃ Delete") } if r.User != nil && note.Type == ap.Question && note.Closed == nil && (note.EndTime == nil || time.Now().Before(note.EndTime.Time)) { options := note.OneOf @@ -440,7 +440,7 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * options = note.AnyOf } for _, option := range options { - w.Linkf(fmt.Sprintf("/users/reply/%s?%s", strings.TrimPrefix(note.ID, "https://"), url.PathEscape(option.Name)), "๐Ÿ“ฎ Vote %s", option.Name) + w.Linkf(fmt.Sprintf("/login/reply/%s?%s", strings.TrimPrefix(note.ID, "https://"), url.PathEscape(option.Name)), "๐Ÿ“ฎ Vote %s", option.Name) } } @@ -449,9 +449,9 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * if err := h.DB.QueryRowContext(r.Context, `select exists (select 1 from shares where note = ? and by = ?)`, note.ID, r.User.ID).Scan(&shared); err != nil { r.Log.Warn("Failed to check if post is shared", "id", note.ID, "error", err) } else if shared == 0 { - w.Link("/users/share/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ” Share") + w.Link("/login/share/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ” Share") } else { - w.Link("/users/unshare/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ”„๏ธ Unshare") + w.Link("/login/unshare/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ”„๏ธ Unshare") } } @@ -460,15 +460,15 @@ func (h *Handler) PrintNote(w text.Writer, r *Request, note *ap.Object, author * if err := h.DB.QueryRowContext(r.Context, `select exists (select 1 from bookmarks where note = ? and by = ?)`, note.ID, r.User.ID).Scan(&bookmarked); err != nil { r.Log.Warn("Failed to check if post is bookmarked", "id", note.ID, "error", err) } else if bookmarked == 0 { - w.Link("/users/bookmark/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ”– Bookmark") + w.Link("/login/bookmark/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ”– Bookmark") } else { - w.Link("/users/unbookmark/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ”– Unbookmark") + w.Link("/login/unbookmark/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ”– Unbookmark") } } if r.User != nil { - w.Link("/users/reply/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ’ฌ Reply") - w.Link(fmt.Sprintf("titan://%s/users/upload/reply/%s", h.Domain, strings.TrimPrefix(note.ID, "https://")), "Upload reply") + w.Link("/login/reply/"+strings.TrimPrefix(note.ID, "https://"), "๐Ÿ’ฌ Reply") + w.Link(fmt.Sprintf("titan://%s/login/upload/reply/%s", h.Domain, strings.TrimPrefix(note.ID, "https://")), "Upload reply") } } } diff --git a/front/register.go b/front/register.go index 0bce964e..d6178f3d 100644 --- a/front/register.go +++ b/front/register.go @@ -44,7 +44,7 @@ func (h *Handler) register(w text.Writer, r *Request, args ...string) { if len(state.PeerCertificates) == 0 { r.Log.Warn("No client certificate") - w.Redirect("/users") + w.Redirect("/login") return } @@ -90,5 +90,5 @@ func (h *Handler) register(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users") + w.Redirect("/login") } diff --git a/front/reply.go b/front/reply.go index dafb1cec..63a20731 100644 --- a/front/reply.go +++ b/front/reply.go @@ -26,7 +26,7 @@ import ( func (h *Handler) doReply(w text.Writer, r *Request, args []string, readInput inputFunc) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/front/resolve.go b/front/resolve.go index b4e5ac0a..cc91e6e2 100644 --- a/front/resolve.go +++ b/front/resolve.go @@ -25,7 +25,7 @@ import ( func (h *Handler) resolve(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -65,5 +65,5 @@ func (h *Handler) resolve(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/outbox/" + strings.TrimPrefix(person.ID, "https://")) + w.Redirect("/login/outbox/" + strings.TrimPrefix(person.ID, "https://")) } diff --git a/front/revoke.go b/front/revoke.go index c305aec5..8b5cc45e 100644 --- a/front/revoke.go +++ b/front/revoke.go @@ -20,7 +20,7 @@ import "github.com/dimkr/tootik/front/text" func (h *Handler) revoke(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -50,5 +50,5 @@ func (h *Handler) revoke(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/certificates") + w.Redirect("/login/certificates") } diff --git a/front/say.go b/front/say.go index ee8ba769..9c7eb443 100644 --- a/front/say.go +++ b/front/say.go @@ -23,7 +23,7 @@ import ( func (h *Handler) say(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -40,7 +40,7 @@ func (h *Handler) say(w text.Writer, r *Request, args ...string) { func (h *Handler) uploadSay(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/front/search.go b/front/search.go index 91d990ab..00693e68 100644 --- a/front/search.go +++ b/front/search.go @@ -40,8 +40,8 @@ func search(w text.Writer, r *Request, args ...string) { } else if r.User == nil { w.Redirect("/hashtag/" + hashtag) } else if hashtag[0] == '#' { - w.Redirect("/users/hashtag/" + hashtag[1:]) + w.Redirect("/login/hashtag/" + hashtag[1:]) } else { - w.Redirect("/users/hashtag/" + hashtag) + w.Redirect("/login/hashtag/" + hashtag) } } diff --git a/front/share.go b/front/share.go index 7b7e100a..132e4e97 100644 --- a/front/share.go +++ b/front/share.go @@ -45,7 +45,7 @@ func (h *Handler) shouldThrottleShare(r *Request) (bool, error) { func (h *Handler) share(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -92,5 +92,5 @@ func (h *Handler) share(w text.Writer, r *Request, args ...string) { return } - w.Redirectf("/users/view/" + args[1]) + w.Redirectf("/login/view/" + args[1]) } diff --git a/front/static/users/help.gmi b/front/static/login/help.gmi similarity index 100% rename from front/static/users/help.gmi rename to front/static/login/help.gmi diff --git a/front/static/login/post.gmi b/front/static/login/post.gmi new file mode 100644 index 00000000..0dfb867e --- /dev/null +++ b/front/static/login/post.gmi @@ -0,0 +1,12 @@ +# New Post + +Who should be able to see your new post? + +=> /login/dm ๐Ÿ’Œ Mentioned users only +=> titan://{{.Domain}}/login/upload/dm Upload text file + +=> /login/whisper ๐Ÿ”” Your followers and mentioned users +=> titan://{{.Domain}}/login/upload/whisper Upload text file + +=> /login/say ๐Ÿ“ฃ Anyone +=> titan://{{.Domain}}/login/upload/say Upload text file diff --git a/front/static/login/settings.gmi b/front/static/login/settings.gmi new file mode 100644 index 00000000..8620d753 --- /dev/null +++ b/front/static/login/settings.gmi @@ -0,0 +1,18 @@ +# โš™๏ธ Settings + +## Profile + +=> /login/name ๐Ÿ‘บ Set display name +=> /login/bio ๐Ÿ“œ Set bio +=> titan://{{.Domain}}/login/upload/bio Upload bio +=> titan://{{.Domain}}/login/upload/avatar Upload avatar + +## Account + +=> /login/certificates ๐ŸŽ“ Certificates +=> /login/export ๐Ÿฅก Export recent activities + +## Migration + +=> /login/alias ๐Ÿ”— Set account alias +=> /login/move ๐Ÿ“ฆ Move account diff --git a/front/static/users/post.gmi b/front/static/users/post.gmi deleted file mode 100644 index e5f96d7c..00000000 --- a/front/static/users/post.gmi +++ /dev/null @@ -1,12 +0,0 @@ -# New Post - -Who should be able to see your new post? - -=> /users/dm ๐Ÿ’Œ Mentioned users only -=> titan://{{.Domain}}/users/upload/dm Upload text file - -=> /users/whisper ๐Ÿ”” Your followers and mentioned users -=> titan://{{.Domain}}/users/upload/whisper Upload text file - -=> /users/say ๐Ÿ“ฃ Anyone -=> titan://{{.Domain}}/users/upload/say Upload text file diff --git a/front/static/users/settings.gmi b/front/static/users/settings.gmi deleted file mode 100644 index d9230791..00000000 --- a/front/static/users/settings.gmi +++ /dev/null @@ -1,18 +0,0 @@ -# โš™๏ธ Settings - -## Profile - -=> /users/name ๐Ÿ‘บ Set display name -=> /users/bio ๐Ÿ“œ Set bio -=> titan://{{.Domain}}/users/upload/bio Upload bio -=> titan://{{.Domain}}/users/upload/avatar Upload avatar - -## Account - -=> /users/certificates ๐ŸŽ“ Certificates -=> /users/export ๐Ÿฅก Export recent activities - -## Migration - -=> /users/alias ๐Ÿ”— Set account alias -=> /users/move ๐Ÿ“ฆ Move account diff --git a/front/thread.go b/front/thread.go index cde9eb96..b5d93054 100644 --- a/front/thread.go +++ b/front/thread.go @@ -108,7 +108,7 @@ func (h *Handler) thread(w text.Writer, r *Request, args ...string) { if r.User == nil { w.Link("/view/"+strings.TrimPrefix(node.PostID, "https://"), b.String()) } else { - w.Link("/users/view/"+strings.TrimPrefix(node.PostID, "https://"), b.String()) + w.Link("/login/view/"+strings.TrimPrefix(node.PostID, "https://"), b.String()) } if count == 0 { @@ -131,7 +131,7 @@ func (h *Handler) thread(w text.Writer, r *Request, args ...string) { if threadHead.Valid && count > 0 && threadHead.String != firstNodeID && r.User == nil { w.Link("/view/"+strings.TrimPrefix(threadHead.String, "https://"), "View first post in thread") } else if threadHead.Valid && count > 0 && threadHead.String != firstNodeID { - w.Link("/users/view/"+strings.TrimPrefix(threadHead.String, "https://"), "View first post in thread") + w.Link("/login/view/"+strings.TrimPrefix(threadHead.String, "https://"), "View first post in thread") } if offset > h.Config.PostsPerPage { diff --git a/front/unbookmark.go b/front/unbookmark.go index ae14df01..a8c04d03 100644 --- a/front/unbookmark.go +++ b/front/unbookmark.go @@ -20,7 +20,7 @@ import "github.com/dimkr/tootik/front/text" func (h *Handler) unbookmark(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -32,5 +32,5 @@ func (h *Handler) unbookmark(w text.Writer, r *Request, args ...string) { return } - w.Redirectf("/users/view/" + args[1]) + w.Redirectf("/login/view/" + args[1]) } diff --git a/front/unfollow.go b/front/unfollow.go index cc19d1f1..6e931cd0 100644 --- a/front/unfollow.go +++ b/front/unfollow.go @@ -26,7 +26,7 @@ import ( func (h *Handler) unfollow(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -48,5 +48,5 @@ func (h *Handler) unfollow(w text.Writer, r *Request, args ...string) { return } - w.Redirect("/users/outbox/" + args[1]) + w.Redirect("/login/outbox/" + args[1]) } diff --git a/front/unshare.go b/front/unshare.go index 272bae8e..dc6508e5 100644 --- a/front/unshare.go +++ b/front/unshare.go @@ -27,7 +27,7 @@ import ( func (h *Handler) unshare(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -50,5 +50,5 @@ func (h *Handler) unshare(w text.Writer, r *Request, args ...string) { return } - w.Redirectf("/users/view/" + args[1]) + w.Redirectf("/login/view/" + args[1]) } diff --git a/front/view.go b/front/view.go index ef4d050b..937f9eb8 100644 --- a/front/view.go +++ b/front/view.go @@ -244,19 +244,19 @@ func (h *Handler) view(w text.Writer, r *Request, args ...string) { if originalPostExists == 1 && r.User == nil { w.Link("/view/"+strings.TrimPrefix(note.InReplyTo, "https://"), "View parent post") } else if originalPostExists == 1 { - w.Link("/users/view/"+strings.TrimPrefix(note.InReplyTo, "https://"), "View parent post") + w.Link("/login/view/"+strings.TrimPrefix(note.InReplyTo, "https://"), "View parent post") } if threadHead.Valid && threadHead.String != note.ID && threadHead.String != note.InReplyTo && r.User == nil { w.Link("/view/"+strings.TrimPrefix(threadHead.String, "https://"), "View first post in thread") } else if threadHead.Valid && threadHead.String != note.ID && threadHead.String != note.InReplyTo { - w.Link("/users/view/"+strings.TrimPrefix(threadHead.String, "https://"), "View first post in thread") + w.Link("/login/view/"+strings.TrimPrefix(threadHead.String, "https://"), "View first post in thread") } if threadDepth > 2 && r.User == nil { w.Link("/thread/"+strings.TrimPrefix(postID, "https://"), "View thread") } else if threadDepth > 2 { - w.Link("/users/thread/"+strings.TrimPrefix(postID, "https://"), "View thread") + w.Link("/login/thread/"+strings.TrimPrefix(postID, "https://"), "View thread") } if offset > h.Config.RepliesPerPage { diff --git a/front/whisper.go b/front/whisper.go index 2de4592d..6f749eba 100644 --- a/front/whisper.go +++ b/front/whisper.go @@ -23,7 +23,7 @@ import ( func (h *Handler) whisper(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } @@ -39,7 +39,7 @@ func (h *Handler) whisper(w text.Writer, r *Request, args ...string) { func (h *Handler) uploadWhisper(w text.Writer, r *Request, args ...string) { if r.User == nil { - w.Redirect("/users") + w.Redirect("/login") return } diff --git a/test/avatar_test.go b/test/avatar_test.go index 4baaad3a..8141d825 100644 --- a/test/avatar_test.go +++ b/test/avatar_test.go @@ -35,7 +35,7 @@ func TestAvatar_HappyFlow(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal(fmt.Sprintf("30 gemini://localhost.localdomain:8443/users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), server.Upload("/users/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) + assert.Equal(fmt.Sprintf("30 gemini://localhost.localdomain:8443/login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), server.Upload("/login/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) } func TestAvatar_NewUser(t *testing.T) { @@ -45,7 +45,7 @@ func TestAvatar_NewUser(t *testing.T) { assert := assert.New(t) server.Alice.Published = &ap.Time{Time: time.Now().Add(-time.Second * 5)} - assert.Regexp(`^40 Please wait for \S+\r\n$`, server.Upload("/users/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) + assert.Regexp(`^40 Please wait for \S+\r\n$`, server.Upload("/login/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) } func TestAvatar_ChangedRecently(t *testing.T) { @@ -56,7 +56,7 @@ func TestAvatar_ChangedRecently(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) server.Alice.Updated = &ap.Time{Time: time.Now().Add(-time.Second * 5)} - assert.Regexp(`^40 Please wait for \S+\r\n$`, server.Upload("/users/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) + assert.Regexp(`^40 Please wait for \S+\r\n$`, server.Upload("/login/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) } func TestAvatar_HappyFlowSizeFirst(t *testing.T) { @@ -66,7 +66,7 @@ func TestAvatar_HappyFlowSizeFirst(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal(fmt.Sprintf("30 gemini://localhost.localdomain:8443/users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), server.Upload("/users/upload/avatar;size=63;mime=image/gif", server.Alice, avatar)) + assert.Equal(fmt.Sprintf("30 gemini://localhost.localdomain:8443/login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), server.Upload("/login/upload/avatar;size=63;mime=image/gif", server.Alice, avatar)) } func TestAvatar_InvalidSize(t *testing.T) { @@ -76,7 +76,7 @@ func TestAvatar_InvalidSize(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal("40 Invalid size\r\n", server.Upload("/users/upload/avatar;mime=image/gif;size=abc", server.Alice, avatar)) + assert.Equal("40 Invalid size\r\n", server.Upload("/login/upload/avatar;mime=image/gif;size=abc", server.Alice, avatar)) } func TestAvatar_InvalidType(t *testing.T) { @@ -86,7 +86,7 @@ func TestAvatar_InvalidType(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal("40 Unsupported image type\r\n", server.Upload("/users/upload/avatar;mime=text/plain;size=63", server.Alice, avatar)) + assert.Equal("40 Unsupported image type\r\n", server.Upload("/login/upload/avatar;mime=text/plain;size=63", server.Alice, avatar)) } func TestAvatar_NoSize(t *testing.T) { @@ -96,7 +96,7 @@ func TestAvatar_NoSize(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal("40 Error\r\n", server.Upload("/users/upload/avatar;mime=image/gif;ize=63", server.Alice, avatar)) + assert.Equal("40 Error\r\n", server.Upload("/login/upload/avatar;mime=image/gif;ize=63", server.Alice, avatar)) } func TestAvatar_NoType(t *testing.T) { @@ -106,7 +106,7 @@ func TestAvatar_NoType(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal("40 Error\r\n", server.Upload("/users/upload/avatar;mim=image/gif;size=63", server.Alice, avatar)) + assert.Equal("40 Error\r\n", server.Upload("/login/upload/avatar;mim=image/gif;size=63", server.Alice, avatar)) } func TestAvatar_InvalidImage(t *testing.T) { @@ -116,7 +116,7 @@ func TestAvatar_InvalidImage(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal("40 Error\r\n", server.Upload("/users/upload/avatar;mime=image/gif;size=3", server.Alice, []byte("abc"))) + assert.Equal("40 Error\r\n", server.Upload("/login/upload/avatar;mime=image/gif;size=3", server.Alice, []byte("abc"))) } func TestAvatar_TooSmallSize(t *testing.T) { @@ -126,7 +126,7 @@ func TestAvatar_TooSmallSize(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal("40 Error\r\n", server.Upload("/users/upload/avatar;mime=image/gif;size=10", server.Alice, avatar)) + assert.Equal("40 Error\r\n", server.Upload("/login/upload/avatar;mime=image/gif;size=10", server.Alice, avatar)) } func TestAvatar_TooBigSize(t *testing.T) { @@ -136,7 +136,7 @@ func TestAvatar_TooBigSize(t *testing.T) { assert := assert.New(t) server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - assert.Equal("40 Error\r\n", server.Upload("/users/upload/avatar;mime=image/gif;size=64", server.Alice, avatar)) + assert.Equal("40 Error\r\n", server.Upload("/login/upload/avatar;mime=image/gif;size=64", server.Alice, avatar)) } func TestAvatar_SizeLimit(t *testing.T) { @@ -147,7 +147,7 @@ func TestAvatar_SizeLimit(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) server.cfg.MaxAvatarSize = 62 - assert.Equal("40 Image is too big\r\n", server.Upload("/users/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) + assert.Equal("40 Image is too big\r\n", server.Upload("/login/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) } func TestAvatar_ExactlySizeLimit(t *testing.T) { @@ -158,5 +158,5 @@ func TestAvatar_ExactlySizeLimit(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) server.cfg.MaxAvatarSize = 63 - assert.Equal(fmt.Sprintf("30 gemini://localhost.localdomain:8443/users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), server.Upload("/users/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) + assert.Equal(fmt.Sprintf("30 gemini://localhost.localdomain:8443/login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), server.Upload("/login/upload/avatar;mime=image/gif;size=63", server.Alice, avatar)) } diff --git a/test/bio_test.go b/test/bio_test.go index 09b186cb..cbc63b2e 100644 --- a/test/bio_test.go +++ b/test/bio_test.go @@ -31,7 +31,7 @@ func TestBio_Throttled(t *testing.T) { assert := assert.New(t) - summary := server.Handle("/users/bio?Hello%20world", server.Alice) + summary := server.Handle("/login/bio?Hello%20world", server.Alice) assert.Regexp(`^40 Please wait for \S+\r\n$`, summary) } @@ -43,10 +43,10 @@ func TestBio_HappyFlow(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - summary := server.Handle("/users/bio?Hello%20world", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) + summary := server.Handle("/login/bio?Hello%20world", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(strings.Split(outbox, "\n"), "> Hello world") } @@ -58,7 +58,7 @@ func TestBio_TooLong(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - summary := server.Handle("/users/bio?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", server.Alice) + summary := server.Handle("/login/bio?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", server.Alice) assert.Equal("40 Summary is too long\r\n", summary) } @@ -70,10 +70,10 @@ func TestBio_MultiLine(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - summary := server.Handle("/users/bio?Hello%0Aworld", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) + summary := server.Handle("/login/bio?Hello%0Aworld", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) - outbox := strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob), "\n") + outbox := strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob), "\n") assert.Contains(outbox, "> Hello") assert.Contains(outbox, "> world") } @@ -86,10 +86,10 @@ func TestBio_MultiLineWithLink(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - summary := server.Handle("/users/bio?Hi%21%0A%0AI%27m%20a%20friend%20of%20https%3a%2f%2flocalhost.localdomain%3a8443%2fuser%2fbob", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) + summary := server.Handle("/login/bio?Hi%21%0A%0AI%27m%20a%20friend%20of%20https%3a%2f%2flocalhost.localdomain%3a8443%2fuser%2fbob", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) - outbox := strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob), "\n") + outbox := strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob), "\n") assert.Contains(outbox, "> Hi!") assert.Contains(outbox, "> I'm a friend of https://localhost.localdomain:8443/user/bob") assert.Contains(outbox, "=> https://localhost.localdomain:8443/user/bob https://localhost.localdomain:8443/user/bob") diff --git a/test/bookmark_test.go b/test/bookmark_test.go index 6f8d1114..4f597597 100644 --- a/test/bookmark_test.go +++ b/test/bookmark_test.go @@ -30,38 +30,38 @@ func TestBookmark_HappyFlow(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - view := strings.Split(server.Handle("/users/view/"+say[15:len(say)-2], server.Bob), "\n") - assert.Contains(view, fmt.Sprintf("=> /users/bookmark/%s ๐Ÿ”– Bookmark", say[15:len(say)-2])) - assert.NotContains(view, fmt.Sprintf("=> /users/unbookmark/%s ๐Ÿ”– Unbookmark", say[15:len(say)-2])) + view := strings.Split(server.Handle("/login/view/"+say[15:len(say)-2], server.Bob), "\n") + assert.Contains(view, fmt.Sprintf("=> /login/bookmark/%s ๐Ÿ”– Bookmark", say[15:len(say)-2])) + assert.NotContains(view, fmt.Sprintf("=> /login/unbookmark/%s ๐Ÿ”– Unbookmark", say[15:len(say)-2])) - bookmarks := strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks := strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.Contains(bookmarks, "No posts.") assert.NotContains(bookmarks, "> Hello world") - bookmark := server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), bookmark) + bookmark := server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), bookmark) - bookmarks = strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks = strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.NotContains(bookmarks, "No posts.") assert.Contains(bookmarks, "> Hello world") - view = strings.Split(server.Handle("/users/view/"+say[15:len(say)-2], server.Bob), "\n") - assert.NotContains(view, fmt.Sprintf("=> /users/bookmark/%s ๐Ÿ”– Bookmark", say[15:len(say)-2])) - assert.Contains(view, fmt.Sprintf("=> /users/unbookmark/%s ๐Ÿ”– Unbookmark", say[15:len(say)-2])) + view = strings.Split(server.Handle("/login/view/"+say[15:len(say)-2], server.Bob), "\n") + assert.NotContains(view, fmt.Sprintf("=> /login/bookmark/%s ๐Ÿ”– Bookmark", say[15:len(say)-2])) + assert.Contains(view, fmt.Sprintf("=> /login/unbookmark/%s ๐Ÿ”– Unbookmark", say[15:len(say)-2])) - unbookmark := server.Handle("/users/unbookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), unbookmark) + unbookmark := server.Handle("/login/unbookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), unbookmark) - bookmarks = strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks = strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.Contains(bookmarks, "No posts.") assert.NotContains(bookmarks, "> Hello world") - view = strings.Split(server.Handle("/users/view/"+say[15:len(say)-2], server.Bob), "\n") - assert.Contains(view, fmt.Sprintf("=> /users/bookmark/%s ๐Ÿ”– Bookmark", say[15:len(say)-2])) - assert.NotContains(view, fmt.Sprintf("=> /users/unbookmark/%s ๐Ÿ”– Unbookmark", say[15:len(say)-2])) + view = strings.Split(server.Handle("/login/view/"+say[15:len(say)-2], server.Bob), "\n") + assert.Contains(view, fmt.Sprintf("=> /login/bookmark/%s ๐Ÿ”– Bookmark", say[15:len(say)-2])) + assert.NotContains(view, fmt.Sprintf("=> /login/unbookmark/%s ๐Ÿ”– Unbookmark", say[15:len(say)-2])) } func TestBookmark_Throttling(t *testing.T) { @@ -70,19 +70,19 @@ func TestBookmark_Throttling(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%201", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%201", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - bookmark := server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), bookmark) + bookmark := server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), bookmark) - say = server.Handle("/users/say?Hello%202", server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%202", server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - bookmark = server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) + bookmark = server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) assert.Equal("40 Please wait before bookmarking\r\n", bookmark) - bookmarks := strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks := strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.NotContains(bookmarks, "No posts.") assert.Contains(bookmarks, "> Hello 1") assert.NotContains(bookmarks, "> Hello 2") @@ -94,22 +94,22 @@ func TestBookmark_Limit(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%201", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%201", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - bookmark := server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), bookmark) + bookmark := server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), bookmark) - say = server.Handle("/users/say?Hello%202", server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%202", server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) server.cfg.MinBookmarkInterval = 0 server.cfg.MaxBookmarksPerUser = 1 - bookmark = server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) + bookmark = server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) assert.Equal("40 Reached bookmarks limit\r\n", bookmark) - bookmarks := strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks := strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.NotContains(bookmarks, "No posts.") assert.Contains(bookmarks, "> Hello 1") assert.NotContains(bookmarks, "> Hello 2") @@ -121,21 +121,21 @@ func TestBookmark_TwoBookmarks(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%201", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%201", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - bookmark := server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), bookmark) + bookmark := server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), bookmark) - say = server.Handle("/users/say?Hello%202", server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%202", server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) server.cfg.MinBookmarkInterval = 0 - bookmark = server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), bookmark) + bookmark = server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), bookmark) - bookmarks := strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks := strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.NotContains(bookmarks, "No posts.") assert.Contains(bookmarks, "> Hello 1") assert.Contains(bookmarks, "> Hello 2") @@ -147,28 +147,28 @@ func TestBookmark_Twice(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%201", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%201", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - bookmark := server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), bookmark) + bookmark := server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), bookmark) server.cfg.MinBookmarkInterval = 0 - bookmark = server.Handle("/users/bookmark/"+say[15:len(say)-2], server.Bob) + bookmark = server.Handle("/login/bookmark/"+say[15:len(say)-2], server.Bob) assert.Equal("40 Error\r\n", bookmark) - bookmarks := strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks := strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.NotContains(bookmarks, "No posts.") assert.Contains(bookmarks, "> Hello 1") - unbookmark := server.Handle("/users/unbookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), unbookmark) + unbookmark := server.Handle("/login/unbookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), unbookmark) - unbookmark = server.Handle("/users/unbookmark/"+say[15:len(say)-2], server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", say[15:len(say)-2]), unbookmark) + unbookmark = server.Handle("/login/unbookmark/"+say[15:len(say)-2], server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", say[15:len(say)-2]), unbookmark) - bookmarks = strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks = strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.Contains(bookmarks, "No posts.") assert.NotContains(bookmarks, "> Hello 1") } @@ -179,30 +179,30 @@ func TestBookmark_ToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - bookmark := server.Handle("/users/bookmark/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), bookmark) + bookmark := server.Handle("/login/bookmark/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), bookmark) - bookmark = server.Handle("/users/bookmark/"+id, server.Carol) + bookmark = server.Handle("/login/bookmark/"+id, server.Carol) assert.Equal("40 Post not found\r\n", bookmark) - bookmarks := strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks := strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.Contains(bookmarks, "> Hello world") - bookmarks = strings.Split(server.Handle("/users/bookmarks", server.Carol), "\n") + bookmarks = strings.Split(server.Handle("/login/bookmarks", server.Carol), "\n") assert.NotContains(bookmarks, "> Hello world") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), unfollow) - bookmarks = strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks = strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.NotContains(bookmarks, "> Hello world") } @@ -212,20 +212,20 @@ func TestBookmark_DM(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40bob%40localhost.localdomain%3a8443", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40bob%40localhost.localdomain%3a8443", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) id := dm[15 : len(dm)-2] - bookmark := server.Handle("/users/bookmark/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), bookmark) + bookmark := server.Handle("/login/bookmark/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), bookmark) - bookmark = server.Handle("/users/bookmark/"+id, server.Carol) + bookmark = server.Handle("/login/bookmark/"+id, server.Carol) assert.Equal("40 Post not found\r\n", bookmark) - bookmarks := strings.Split(server.Handle("/users/bookmarks", server.Bob), "\n") + bookmarks := strings.Split(server.Handle("/login/bookmarks", server.Bob), "\n") assert.Contains(bookmarks, "> Hello @bob@localhost.localdomain:8443") - bookmarks = strings.Split(server.Handle("/users/bookmarks", server.Carol), "\n") + bookmarks = strings.Split(server.Handle("/login/bookmarks", server.Carol), "\n") assert.NotContains(bookmarks, "> Hello @bob@localhost.localdomain:8443") } diff --git a/test/communities_test.go b/test/communities_test.go index 629708a3..04298500 100644 --- a/test/communities_test.go +++ b/test/communities_test.go @@ -37,12 +37,12 @@ func TestCommunities_OneCommunity(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - communities := server.Handle("/users/communities", server.Bob) - assert.Contains(strings.Split(communities, "\n"), fmt.Sprintf("=> /users/outbox/%s/user/alice %s alice", domain, time.Now().Format(time.DateOnly))) + communities := server.Handle("/login/communities", server.Bob) + assert.Contains(strings.Split(communities, "\n"), fmt.Sprintf("=> /login/outbox/%s/user/alice %s alice", domain, time.Now().Format(time.DateOnly))) } diff --git a/test/community_test.go b/test/community_test.go index 953925e9..8ccf75e3 100644 --- a/test/community_test.go +++ b/test/community_test.go @@ -61,11 +61,11 @@ func TestCommunity_NewThread(t *testing.T) { ), ) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] @@ -108,8 +108,8 @@ func TestCommunity_NewThreadNotFollowing(t *testing.T) { ), ) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] @@ -152,11 +152,11 @@ func TestCommunity_NewThreadNotPublic(t *testing.T) { ), ) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] @@ -199,11 +199,11 @@ func TestCommunity_ReplyInThread(t *testing.T) { ), ) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] @@ -273,8 +273,8 @@ func TestCommunity_ReplyInThreadAuthorNotFollowing(t *testing.T) { ) assert.NoError(err) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] @@ -362,8 +362,8 @@ func TestCommunity_ReplyInThreadSenderNotFollowing(t *testing.T) { ) assert.NoError(err) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] @@ -444,11 +444,11 @@ func TestCommunity_DuplicateReplyInThread(t *testing.T) { ), ) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] @@ -540,11 +540,11 @@ func TestCommunity_EditedReplyInThread(t *testing.T) { ), ) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] @@ -657,11 +657,11 @@ func TestCommunity_UnknownEditedReplyInThread(t *testing.T) { ), ) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] diff --git a/test/delete_test.go b/test/delete_test.go index acceaeeb..dd8fbb4e 100644 --- a/test/delete_test.go +++ b/test/delete_test.go @@ -30,18 +30,18 @@ func TestDelete_HappyFlow(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") - delete := server.Handle("/users/delete/"+id, server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+id, server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Equal(view, "40 Post not found\r\n") } @@ -51,18 +51,18 @@ func TestDelete_NotAuthor(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") - delete := server.Handle("/users/delete/"+id, server.Bob) + delete := server.Handle("/login/delete/"+id, server.Bob) assert.Equal(delete, "40 Error\r\n") - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") } @@ -72,7 +72,7 @@ func TestDelete_NoSuchPost(t *testing.T) { assert := assert.New(t) - delete := server.Handle("/users/delete/x", server.Alice) + delete := server.Handle("/login/delete/x", server.Alice) assert.Equal(delete, "40 Error\r\n") } @@ -82,18 +82,18 @@ func TestDelete_UnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") - delete := server.Handle("/users/delete/"+id, nil) - assert.Equal(delete, "30 /users\r\n") + delete := server.Handle("/login/delete/"+id, nil) + assert.Equal(delete, "30 /login\r\n") - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") } @@ -103,26 +103,26 @@ func TestDelete_WithReply(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`30 /login/view/\S+\r\n$`, say) postID := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Alice", postID), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Alice", postID), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) replyID := reply[15 : len(reply)-2] - delete := server.Handle("/users/delete/"+replyID, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+replyID, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) - view := server.Handle("/users/view/"+replyID, server.Alice) + view := server.Handle("/login/view/"+replyID, server.Alice) assert.Equal(view, "40 Post not found\r\n") - delete = server.Handle("/users/delete/"+postID, server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) + delete = server.Handle("/login/delete/"+postID, server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) - view = server.Handle("/users/view/"+postID, server.Alice) + view = server.Handle("/login/view/"+postID, server.Alice) assert.Equal(view, "40 Post not found\r\n") } @@ -132,25 +132,25 @@ func TestDelete_WithReplyPostDeletedFirst(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`30 /login/view/\S+\r\n$`, say) postID := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Alice", postID), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Alice", postID), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) replyID := reply[15 : len(reply)-2] - delete := server.Handle("/users/delete/"+postID, server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+postID, server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) - view := server.Handle("/users/view/"+postID, server.Alice) + view := server.Handle("/login/view/"+postID, server.Alice) assert.Equal(view, "40 Post not found\r\n") - delete = server.Handle("/users/delete/"+replyID, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) + delete = server.Handle("/login/delete/"+replyID, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) - view = server.Handle("/users/view/"+replyID, server.Alice) + view = server.Handle("/login/view/"+replyID, server.Alice) assert.Equal(view, "40 Post not found\r\n") } diff --git a/test/dm_test.go b/test/dm_test.go index 1c2409f4..bb3fa892 100644 --- a/test/dm_test.go +++ b/test/dm_test.go @@ -28,18 +28,18 @@ func TestDM_HappyFlow(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443") - view = server.Handle("/users/view/"+id, server.Carol) + view = server.Handle("/login/view/"+id, server.Carol) assert.Equal(view, "40 Post not found\r\n") - view = server.Handle("/users/view/"+id, server.Bob) + view = server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello @alice@localhost.localdomain:8443") } @@ -49,8 +49,8 @@ func TestDM_UnauthenticatedUser(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) id := dm[15 : len(dm)-2] @@ -64,7 +64,7 @@ func TestDM_Loopback(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40bob%40localhost.localdomain%3a8443", server.Bob) + dm := server.Handle("/login/dm?Hello%20%40bob%40localhost.localdomain%3a8443", server.Bob) assert.Equal("40 Post audience is empty\r\n", dm) } @@ -74,18 +74,18 @@ func TestDM_TwoMentions(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40carol%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40carol%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @carol@localhost.localdomain:8443") - view = server.Handle("/users/view/"+id, server.Carol) + view = server.Handle("/login/view/"+id, server.Carol) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @carol@localhost.localdomain:8443") - view = server.Handle("/users/view/"+id, server.Bob) + view = server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @carol@localhost.localdomain:8443") } @@ -95,18 +95,18 @@ func TestDM_TwoMentionsOneLoopback(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40bob%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40bob%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @bob@localhost.localdomain:8443") - view = server.Handle("/users/view/"+id, server.Carol) + view = server.Handle("/login/view/"+id, server.Carol) assert.Equal(view, "40 Post not found\r\n") - view = server.Handle("/users/view/"+id, server.Bob) + view = server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @bob@localhost.localdomain:8443") } @@ -118,7 +118,7 @@ func TestDM_TooManyRecipients(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40carol%40localhost.localdomain%3a8443", server.Bob) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40carol%40localhost.localdomain%3a8443", server.Bob) assert.Equal("40 Too many recipients\r\n", dm) } @@ -130,17 +130,17 @@ func TestDM_MaxRecipients(t *testing.T) { assert := assert.New(t) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40carol%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443%20and%20%40carol%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @carol@localhost.localdomain:8443") - view = server.Handle("/users/view/"+id, server.Carol) + view = server.Handle("/login/view/"+id, server.Carol) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @carol@localhost.localdomain:8443") - view = server.Handle("/users/view/"+id, server.Bob) + view = server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello @alice@localhost.localdomain:8443 and @carol@localhost.localdomain:8443") } diff --git a/test/edit_test.go b/test/edit_test.go index 89e414c5..7159b6f2 100644 --- a/test/edit_test.go +++ b/test/edit_test.go @@ -34,30 +34,30 @@ func TestEdit_Throttling(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Hello%%20followers", id), server.Bob) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Hello%%20followers", id), server.Bob) assert.Regexp(`^40 Please wait for \S+\r\n$`, edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -68,44 +68,44 @@ func TestEdit_HappyFlow(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Hello%%20followers", id), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Hello%%20followers", id), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello followers") - edit = server.Handle(fmt.Sprintf("/users/edit/%s?Hello,%%20followers", id), server.Bob) + edit = server.Handle(fmt.Sprintf("/login/edit/%s?Hello,%%20followers", id), server.Bob) assert.Regexp(`^40 Please wait for \S+\r\n$`, edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello followers") - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello followers") } @@ -116,33 +116,33 @@ func TestEdit_EmptyContent(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?", id), server.Bob) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?", id), server.Bob) assert.Equal("10 Post content\r\n", edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -153,33 +153,33 @@ func TestEdit_LongContent(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", id), server.Bob) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", id), server.Bob) assert.Equal("40 Post is too long\r\n", edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -190,33 +190,33 @@ func TestEdit_InvalidEscapeSequence(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Hello%%zzworld", id), server.Bob) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Hello%%zzworld", id), server.Bob) assert.Equal("40 Bad input\r\n", edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -227,28 +227,28 @@ func TestEdit_NoSuchPost(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+`, whisper) - edit := server.Handle("/users/edit/x?Hello%20followers", server.Bob) + edit := server.Handle("/login/edit/x?Hello%20followers", server.Bob) assert.Equal("40 Error\r\n", edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -259,30 +259,30 @@ func TestEdit_UnauthenticatedUser(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+`, whisper) id := whisper[15 : len(whisper)-2] - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Hello%%20followers", id), nil) - assert.Equal("30 /users\r\n", edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Hello%%20followers", id), nil) + assert.Equal("30 /login\r\n", edit) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -293,13 +293,13 @@ func TestEdit_AddHashtag(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%23Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+`, say) + say := server.Handle("/login/say?%23Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+`, say) - hashtag := server.Handle("/users/hashtag/hello", server.Bob) + hashtag := server.Handle("/login/hashtag/hello", server.Bob) assert.Contains(hashtag, server.Alice.PreferredUsername) - hashtag = server.Handle("/users/hashtag/world", server.Bob) + hashtag = server.Handle("/login/hashtag/world", server.Bob) assert.NotContains(hashtag, server.Alice.PreferredUsername) id := say[15 : len(say)-2] @@ -307,8 +307,8 @@ func TestEdit_AddHashtag(t *testing.T) { _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?%%23Hello%%20%%23world", id), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?%%23Hello%%20%%23world", id), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) hashtag = server.Handle("/hashtag/hello", nil) assert.Contains(hashtag, server.Alice.PreferredUsername) @@ -323,13 +323,13 @@ func TestEdit_RemoveHashtag(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%23Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+`, say) + say := server.Handle("/login/say?%23Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+`, say) - hashtag := server.Handle("/users/hashtag/hello", server.Bob) + hashtag := server.Handle("/login/hashtag/hello", server.Bob) assert.Contains(hashtag, server.Alice.PreferredUsername) - hashtag = server.Handle("/users/hashtag/world", server.Bob) + hashtag = server.Handle("/login/hashtag/world", server.Bob) assert.Contains(hashtag, server.Alice.PreferredUsername) id := say[15 : len(say)-2] @@ -337,8 +337,8 @@ func TestEdit_RemoveHashtag(t *testing.T) { _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?%%23Hello%%20world", id), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?%%23Hello%%20world", id), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) hashtag = server.Handle("/hashtag/hello", nil) assert.Contains(hashtag, server.Alice.PreferredUsername) @@ -353,13 +353,13 @@ func TestEdit_KeepHashtags(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%23Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+`, say) + say := server.Handle("/login/say?%23Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+`, say) - hashtag := server.Handle("/users/hashtag/hello", server.Bob) + hashtag := server.Handle("/login/hashtag/hello", server.Bob) assert.Contains(hashtag, server.Alice.PreferredUsername) - hashtag = server.Handle("/users/hashtag/world", server.Bob) + hashtag = server.Handle("/login/hashtag/world", server.Bob) assert.Contains(hashtag, server.Alice.PreferredUsername) id := say[15 : len(say)-2] @@ -367,8 +367,8 @@ func TestEdit_KeepHashtags(t *testing.T) { _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?%%23Hello%%20%%20%%23world", id), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?%%23Hello%%20%%20%%23world", id), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) hashtag = server.Handle("/hashtag/hello", nil) assert.Contains(hashtag, server.Alice.PreferredUsername) @@ -385,30 +385,30 @@ func TestEdit_AddMention(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - lines := strings.Split(server.Handle("/users", server.Alice), "\n") + lines := strings.Split(server.Handle("/login", server.Alice), "\n") assert.Contains(lines, "No posts.") assert.NotContains(lines, "> Hello world") - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+`, say) id := say[15 : len(say)-2] - lines = strings.Split(server.Handle("/users/view/"+id, server.Alice), "\n") + lines = strings.Split(server.Handle("/login/view/"+id, server.Alice), "\n") assert.Contains(lines, "> Hello world") assert.NotContains(lines, "> Hello @alice") - assert.NotContains(lines, fmt.Sprintf("=> /users/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) + assert.NotContains(lines, fmt.Sprintf("=> /login/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Hello%%20%%40alice", id), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Hello%%20%%40alice", id), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) - lines = strings.Split(server.Handle("/users/view/"+id, server.Alice), "\n") + lines = strings.Split(server.Handle("/login/view/"+id, server.Alice), "\n") assert.NotContains(lines, "> Hello world") assert.Contains(lines, "> Hello @alice") - assert.Contains(lines, fmt.Sprintf("=> /users/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) + assert.Contains(lines, fmt.Sprintf("=> /login/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) } func TestEdit_RemoveMention(t *testing.T) { @@ -419,30 +419,30 @@ func TestEdit_RemoveMention(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - lines := strings.Split(server.Handle("/users", server.Alice), "\n") + lines := strings.Split(server.Handle("/login", server.Alice), "\n") assert.Contains(lines, "No posts.") assert.NotContains(lines, "> Hello @alice") - say := server.Handle("/users/say?Hello%20%40alice", server.Bob) - assert.Regexp(`^30 /users/view/\S+`, say) + say := server.Handle("/login/say?Hello%20%40alice", server.Bob) + assert.Regexp(`^30 /login/view/\S+`, say) id := say[15 : len(say)-2] - lines = strings.Split(server.Handle("/users/view/"+id, server.Alice), "\n") + lines = strings.Split(server.Handle("/login/view/"+id, server.Alice), "\n") assert.NotContains(lines, "> Hello world") assert.Contains(lines, "> Hello @alice") - assert.Contains(lines, fmt.Sprintf("=> /users/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) + assert.Contains(lines, fmt.Sprintf("=> /login/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Hello%%20world", id), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Hello%%20world", id), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) - lines = strings.Split(server.Handle("/users/view/"+id, server.Alice), "\n") + lines = strings.Split(server.Handle("/login/view/"+id, server.Alice), "\n") assert.Contains(lines, "> Hello world") assert.NotContains(lines, "> Hello @alice") - assert.NotContains(lines, fmt.Sprintf("=> /users/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) + assert.NotContains(lines, fmt.Sprintf("=> /login/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) } func TestEdit_KeepMention(t *testing.T) { @@ -453,30 +453,30 @@ func TestEdit_KeepMention(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - lines := strings.Split(server.Handle("/users", server.Alice), "\n") + lines := strings.Split(server.Handle("/login", server.Alice), "\n") assert.Contains(lines, "No posts.") assert.NotContains(lines, "> Hello @alice") - say := server.Handle("/users/say?Hello%20%40alice", server.Bob) - assert.Regexp(`^30 /users/view/\S+`, say) + say := server.Handle("/login/say?Hello%20%40alice", server.Bob) + assert.Regexp(`^30 /login/view/\S+`, say) id := say[15 : len(say)-2] - lines = strings.Split(server.Handle("/users/view/"+id, server.Alice), "\n") + lines = strings.Split(server.Handle("/login/view/"+id, server.Alice), "\n") assert.NotContains(lines, "> Hello @alice") assert.Contains(lines, "> Hello @alice") - assert.Contains(lines, fmt.Sprintf("=> /users/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) + assert.Contains(lines, fmt.Sprintf("=> /login/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Hello%%20%%20%%40alice", id), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Hello%%20%%20%%40alice", id), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) - lines = strings.Split(server.Handle("/users/view/"+id, server.Alice), "\n") + lines = strings.Split(server.Handle("/login/view/"+id, server.Alice), "\n") assert.Contains(lines, "> Hello @alice") assert.NotContains(lines, "> Hello @alice") - assert.Contains(lines, fmt.Sprintf("=> /users/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) + assert.Contains(lines, fmt.Sprintf("=> /login/outbox/%s alice", strings.TrimPrefix(server.Alice.ID, "https://"))) } func TestEdit_PollAddOption(t *testing.T) { @@ -485,13 +485,13 @@ func TestEdit_PollAddOption(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) poller := outbox.Poller{ Domain: domain, @@ -499,7 +499,7 @@ func TestEdit_PollAddOption(t *testing.T) { } assert.NoError(poller.Run(context.Background())) - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") assert.Contains(view, "Vote Nope") assert.Contains(view, "Vote Hell yeah!") @@ -511,15 +511,15 @@ func TestEdit_PollAddOption(t *testing.T) { _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?%%5bPOLL%%20So%%2c%%20polls%%20on%%20Station%%20are%%20pretty%%20cool%%2c%%20right%%3f%%5d%%20Nope%%20%%7c%%20Hell%%20yeah%%21%%20%%7c%%20I%%20couldn%%27t%%20care%%20less", id), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?%%5bPOLL%%20So%%2c%%20polls%%20on%%20Station%%20are%%20pretty%%20cool%%2c%%20right%%3f%%5d%%20Nope%%20%%7c%%20Hell%%20yeah%%21%%20%%7c%%20I%%20couldn%%27t%%20care%%20less", id), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) assert.NoError(poller.Run(context.Background())) - view = server.Handle("/users/view/"+id, server.Bob) + view = server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") assert.Contains(view, "Vote Nope") assert.Contains(view, "Vote Hell yeah!") @@ -535,13 +535,13 @@ func TestEdit_RemoveQuestion(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) poller := outbox.Poller{ Domain: domain, @@ -549,7 +549,7 @@ func TestEdit_RemoveQuestion(t *testing.T) { } assert.NoError(poller.Run(context.Background())) - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") assert.Contains(view, "Vote Nope") assert.Contains(view, "Vote Hell yeah!") @@ -561,12 +561,12 @@ func TestEdit_RemoveQuestion(t *testing.T) { _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?This%%20is%%20not%%20a%%20poll", id), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?This%%20is%%20not%%20a%%20poll", id), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) assert.NoError(poller.Run(context.Background())) - view = server.Handle("/users/view/"+id, server.Bob) + view = server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "This is not a poll") assert.NotContains(view, "Vote") assert.NotContains(strings.Split(view, "\n"), "1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ Hell yeah!") diff --git a/test/follow_test.go b/test/follow_test.go index 0c614455..a6f7f331 100644 --- a/test/follow_test.go +++ b/test/follow_test.go @@ -32,25 +32,25 @@ func TestFollow_PostToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -63,23 +63,23 @@ func TestFollow_PostToFollowersBeforeFollow(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -92,32 +92,32 @@ func TestFollow_DMUnfollowFollow(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello @alice@localhost.localdomain:8443") - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello @alice@localhost.localdomain:8443") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello @alice@localhost.localdomain:8443") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello @alice@localhost.localdomain:8443") } @@ -130,26 +130,26 @@ func TestFollow_DMUnfollowBeforeFeedUpdate(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello @alice@localhost.localdomain:8443") - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello @alice@localhost.localdomain:8443") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello @alice@localhost.localdomain:8443") } @@ -160,25 +160,25 @@ func TestFollow_PublicPost(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello world") } @@ -189,47 +189,47 @@ func TestFollow_Mutual(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello world") - whisper := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hello%%20Alice", id), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hello%%20Alice", id), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello world") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.NotContains(users, "Hello world") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello Alice") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.NotContains(users, "Hello world") - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello world") } @@ -239,10 +239,10 @@ func TestFollow_AlreadyFollowing(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) assert.Equal("40 Already following https://localhost.localdomain:8443/user/bob\r\n", follow) } @@ -252,7 +252,7 @@ func TestFollow_NoSuchUser(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/localhost.localdomain:8443/user/erin", server.Alice) + follow := server.Handle("/login/follow/localhost.localdomain:8443/user/erin", server.Alice) assert.Equal("40 No such user\r\n", follow) } @@ -262,6 +262,6 @@ func TestFollow_UnauthenticatedUser(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/localhost.localdomain:8443/user/erin", nil) - assert.Equal("30 /users\r\n", follow) + follow := server.Handle("/login/follow/localhost.localdomain:8443/user/erin", nil) + assert.Equal("30 /login\r\n", follow) } diff --git a/test/follows_test.go b/test/follows_test.go index fb3dcbff..6a974d7a 100644 --- a/test/follows_test.go +++ b/test/follows_test.go @@ -35,7 +35,7 @@ func TestFollows_NoFollows(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - follows := server.Handle("/users/follows", server.Alice) + follows := server.Handle("/login/follows", server.Alice) assert.Contains(follows, "No followed users.") } @@ -45,23 +45,23 @@ func TestFollows_TwoInactive(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - follows := strings.Split(server.Handle("/users/follows", server.Alice), "\n") - assert.Contains(follows, "=> /users/outbox/localhost.localdomain:8443/user/bob ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)") - assert.NotContains(follows, "=> /users/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") + follows := strings.Split(server.Handle("/login/follows", server.Alice), "\n") + assert.Contains(follows, "=> /login/outbox/localhost.localdomain:8443/user/bob ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)") + assert.NotContains(follows, "=> /login/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Carol.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Carol.ID, "https://")), follow) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Carol.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Carol.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - follows = strings.Split(server.Handle("/users/follows", server.Alice), "\n") - assert.Contains(follows, "=> /users/outbox/localhost.localdomain:8443/user/bob ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)") - assert.Contains(follows, "=> /users/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") + follows = strings.Split(server.Handle("/login/follows", server.Alice), "\n") + assert.Contains(follows, "=> /login/outbox/localhost.localdomain:8443/user/bob ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)") + assert.Contains(follows, "=> /login/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") } func TestFollows_OneActiveOneInactive(t *testing.T) { @@ -70,26 +70,26 @@ func TestFollows_OneActiveOneInactive(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Carol.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Carol.ID, "https://")), follow) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Carol.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Carol.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - follows := server.Handle("/users/follows", server.Alice) - assert.Contains(follows, "=> /users/outbox/localhost.localdomain:8443/user/bob ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)") - assert.Contains(follows, "=> /users/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") + follows := server.Handle("/login/follows", server.Alice) + assert.Contains(follows, "=> /login/outbox/localhost.localdomain:8443/user/bob ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)") + assert.Contains(follows, "=> /login/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - follows = server.Handle("/users/follows", server.Alice) - assert.Contains(follows, fmt.Sprintf("=> /users/outbox/localhost.localdomain:8443/user/bob %s ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)", time.Now().Format(time.DateOnly))) - assert.Contains(follows, "=> /users/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") + follows = server.Handle("/login/follows", server.Alice) + assert.Contains(follows, fmt.Sprintf("=> /login/outbox/localhost.localdomain:8443/user/bob %s ๐Ÿ˜ˆ bob (bob@localhost.localdomain:8443)", time.Now().Format(time.DateOnly))) + assert.Contains(follows, "=> /login/outbox/localhost.localdomain:8443/user/carol ๐Ÿ˜ˆ carol (carol@localhost.localdomain:8443)") } func TestFollows_UnauthenticatedUser(t *testing.T) { @@ -100,6 +100,6 @@ func TestFollows_UnauthenticatedUser(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - follows := server.Handle("/users/follows", nil) - assert.Equal("30 /users\r\n", follows) + follows := server.Handle("/login/follows", nil) + assert.Equal("30 /login\r\n", follows) } diff --git a/test/forward_test.go b/test/forward_test.go index 62758288..545c6b17 100644 --- a/test/forward_test.go +++ b/test/forward_test.go @@ -207,11 +207,11 @@ func TestForward_LocalReplyToLocalPublicPost(t *testing.T) { ) assert.NoError(err) - say := server.Handle("/users/say?Hello", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Alice", say[15:len(say)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Alice", say[15:len(say)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) var forwarded int assert.NoError(server.db.QueryRow(`select exists (select 1 from outbox where activity->>'$.type' = 'Create' and activity->>'$.object.id' = 'https://' || ? and sender = ?)`, reply[15:len(reply)-2], server.Alice.ID).Scan(&forwarded)) @@ -917,8 +917,8 @@ func TestForward_ReplyToLocalPostByLocalFollower(t *testing.T) { ), ) - whisper := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) _, err := server.db.Exec( `insert into persons (id, actor) values(?,?)`, @@ -927,8 +927,8 @@ func TestForward_ReplyToLocalPostByLocalFollower(t *testing.T) { ) assert.NoError(err) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Alice", whisper[15:len(whisper)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Alice", whisper[15:len(whisper)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) var forwarded int assert.NoError(server.db.QueryRow(`select exists (select 1 from outbox where activity->>'type' = 'Create' and activity->>'$.object.id' = 'https://' || ? and sender = ?)`, reply[15:len(reply)-2], server.Alice.ID).Scan(&forwarded)) @@ -952,8 +952,8 @@ func TestForward_EditedReplyToLocalPostByLocalFollower(t *testing.T) { ), ) - whisper := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) _, err := server.db.Exec( `insert into persons (id, actor) values(?,?)`, @@ -962,15 +962,15 @@ func TestForward_EditedReplyToLocalPostByLocalFollower(t *testing.T) { ) assert.NoError(err) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Alice", whisper[15:len(whisper)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Alice", whisper[15:len(whisper)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) id := reply[15 : len(reply)-2] server.cfg.EditThrottleUnit = 0 - edit := server.Handle(fmt.Sprintf("/users/edit/%s?Welcome%%20%%40alice", id), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), edit) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?Welcome%%20%%40alice", id), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), edit) var forwarded int assert.NoError(server.db.QueryRow(`select exists (select 1 from outbox where activity->>'type' = 'Update' and activity->>'$.object.id' = 'https://' || ? and sender = ?)`, id, server.Alice.ID).Scan(&forwarded)) @@ -994,8 +994,8 @@ func TestForward_DeletedReplyToLocalPostByLocalFollower(t *testing.T) { ), ) - whisper := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) _, err := server.db.Exec( `insert into persons (id, actor) values(?,?)`, @@ -1004,15 +1004,15 @@ func TestForward_DeletedReplyToLocalPostByLocalFollower(t *testing.T) { ) assert.NoError(err) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Alice", whisper[15:len(whisper)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Alice", whisper[15:len(whisper)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) id := reply[15 : len(reply)-2] server.cfg.EditThrottleUnit = 0 - delete := server.Handle(fmt.Sprintf("/users/delete/%s?Welcome%%20%%40alice", id), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) + delete := server.Handle(fmt.Sprintf("/login/delete/%s?Welcome%%20%%40alice", id), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) var forwarded int assert.NoError(server.db.QueryRow(`select exists (select 1 from outbox where activity->>'$.type' = 'Delete' and activity->>'$.object.id' = 'https://' || ? and sender = ?)`, id, server.Alice.ID).Scan(&forwarded)) diff --git a/test/fts_test.go b/test/fts_test.go index f5e4c51e..6d0e067a 100644 --- a/test/fts_test.go +++ b/test/fts_test.go @@ -31,10 +31,10 @@ func TestFTS_Happyflow(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - fts := server.Handle("/users/fts?world", server.Bob) + fts := server.Handle("/login/fts?world", server.Bob) assert.Contains(fts, "Hello world") } @@ -44,10 +44,10 @@ func TestFTS_HashtagWithoutHash(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - fts := server.Handle("/users/fts?world", server.Bob) + fts := server.Handle("/login/fts?world", server.Bob) assert.NotContains(fts, "Hello #world") } @@ -57,10 +57,10 @@ func TestFTS_HashtagWithHash(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - fts := server.Handle("/users/fts?%23world", server.Bob) + fts := server.Handle("/login/fts?%23world", server.Bob) assert.NotContains(fts, "Hello #world") } @@ -70,10 +70,10 @@ func TestFTS_HashtagWithHashAndQuotes(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - fts := server.Handle("/users/fts?%22%23world%22", server.Bob) + fts := server.Handle("/login/fts?%22%23world%22", server.Bob) assert.Contains(fts, "Hello #world") } @@ -83,8 +83,8 @@ func TestFTS_HashtagWithHashAndQuotesUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) fts := server.Handle("/fts?%22%23world%22", nil) assert.Contains(fts, "Hello #world") @@ -96,10 +96,10 @@ func TestFTS_HashtagWithHashAndQuotesSecondPage(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - fts := server.Handle("/users/fts?%22%23world%22%20skip%2030", server.Bob) + fts := server.Handle("/login/fts?%22%23world%22%20skip%2030", server.Bob) assert.NotContains(fts, "Hello #world") } @@ -109,7 +109,7 @@ func TestFTS_NoInput(t *testing.T) { assert := assert.New(t) - fts := server.Handle("/users/fts?", server.Bob) + fts := server.Handle("/login/fts?", server.Bob) assert.Equal("10 Query\r\n", fts) } @@ -119,7 +119,7 @@ func TestFTS_EmptyInput(t *testing.T) { assert := assert.New(t) - fts := server.Handle("/users/fts?", server.Bob) + fts := server.Handle("/login/fts?", server.Bob) assert.Equal("10 Query\r\n", fts) } @@ -129,7 +129,7 @@ func TestFTS_InvalidEscapeSequence(t *testing.T) { assert := assert.New(t) - fts := server.Handle("/users/fts?%zzworld", server.Bob) + fts := server.Handle("/login/fts?%zzworld", server.Bob) assert.Equal("40 Bad input\r\n", fts) } @@ -139,8 +139,8 @@ func TestFTS_UnathenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) fts := server.Handle("/fts?world", nil) assert.Contains(fts, "Hello world") @@ -152,10 +152,10 @@ func TestFTS_SearchByAuthorUserName(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - fts := server.Handle("/users/fts?alice", server.Bob) + fts := server.Handle("/login/fts?alice", server.Bob) assert.Contains(fts, "Hello world") } @@ -165,10 +165,10 @@ func TestFTS_SearchByAuthorID(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - fts := server.Handle("/users/fts?%22https%3a%2f%2flocalhost.localdomain%3a8443%2fuser%2falice%22", server.Bob) + fts := server.Handle("/login/fts?%22https%3a%2f%2flocalhost.localdomain%3a8443%2fuser%2falice%22", server.Bob) assert.Contains(fts, "Hello world") } @@ -208,7 +208,7 @@ func TestFTS_SearchByMentionUserName(t *testing.T) { assert.NoError(tx.Commit()) - fts := server.Handle("/users/fts?bob", server.Bob) + fts := server.Handle("/login/fts?bob", server.Bob) assert.Contains(fts, "Hello @abc") } @@ -248,6 +248,6 @@ func TestFTS_SearchByMentionID(t *testing.T) { assert.NoError(tx.Commit()) - fts := server.Handle("/users/fts?%22https%3a%2f%2flocalhost.localdomain%3a8443%2fuser%2fbob%22", server.Bob) + fts := server.Handle("/login/fts?%22https%3a%2f%2flocalhost.localdomain%3a8443%2fuser%2fbob%22", server.Bob) assert.Contains(fts, "Hello @abc") } diff --git a/test/hashtag_test.go b/test/hashtag_test.go index 215f1c58..62d43cc5 100644 --- a/test/hashtag_test.go +++ b/test/hashtag_test.go @@ -30,13 +30,13 @@ func TestHashtag_PublicPost(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") - hashtag := server.Handle("/users/hashtag/world", server.Bob) + hashtag := server.Handle("/login/hashtag/world", server.Bob) assert.Contains(hashtag, "Hello #world") } @@ -46,8 +46,8 @@ func TestHashtag_PublicPostUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") @@ -62,13 +62,13 @@ func TestHashtag_ExclamationMark(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world%21", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world%21", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world!") - hashtag := server.Handle("/users/hashtag/world", server.Bob) + hashtag := server.Handle("/login/hashtag/world", server.Bob) assert.Contains(hashtag, "Hello #world!") } @@ -78,8 +78,8 @@ func TestHashtag_Beginning(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%23Hello%20world%21", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%23Hello%20world%21", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "#Hello world!") @@ -94,8 +94,8 @@ func TestHashtag_Multiple(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%23Hello%20%23world%21", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%23Hello%20%23world%21", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "#Hello #world!") @@ -103,7 +103,7 @@ func TestHashtag_Multiple(t *testing.T) { hashtag := server.Handle("/hashtag/Hello", server.Bob) assert.Contains(hashtag, "#Hello #world!") - hashtag = server.Handle("/users/hashtag/world", server.Bob) + hashtag = server.Handle("/login/hashtag/world", server.Bob) assert.Contains(hashtag, "#Hello #world!") } @@ -113,8 +113,8 @@ func TestHashtag_CaseSensitivity(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23wOrLd", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23wOrLd", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #wOrLd") @@ -129,16 +129,16 @@ func TestHashtag_PostToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) view := server.Handle(whisper[3:len(whisper)-2], server.Bob) assert.Contains(view, "Hello #world") - hashtag := server.Handle("/users/hashtag/world", server.Bob) + hashtag := server.Handle("/login/hashtag/world", server.Bob) assert.NotContains(hashtag, "Hello #world") } @@ -148,13 +148,13 @@ func TestHashtag_BigOffset(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") - hashtag := server.Handle("/users/hashtag/world?123", server.Bob) + hashtag := server.Handle("/login/hashtag/world?123", server.Bob) assert.NotContains(hashtag, "Hello #world") } @@ -164,8 +164,8 @@ func TestHashtag_BigOffsetUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") @@ -180,8 +180,8 @@ func TestHashtag_InvalidOffset(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") @@ -196,8 +196,8 @@ func TestHashtag_EmptyHashtag(t *testing.T) { assert := assert.New(t) - hashtag := server.Handle("/users/hashtag/", server.Bob) - assert.Equal("30 /users/oops\r\n", hashtag) + hashtag := server.Handle("/login/hashtag/", server.Bob) + assert.Equal("30 /login/oops\r\n", hashtag) } func TestHashtag_EmptyHashtagUnauthenticatedUser(t *testing.T) { diff --git a/test/hashtags_test.go b/test/hashtags_test.go index 1020f7be..aa64857a 100644 --- a/test/hashtags_test.go +++ b/test/hashtags_test.go @@ -29,14 +29,14 @@ func TestHashtags_NoHashtags(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello world") - hashtag := server.Handle("/users/hashtags", server.Bob) - assert.NotContains(strings.Split(hashtag, "\n"), "=> /users/hashtag/world #world") + hashtag := server.Handle("/login/hashtags", server.Bob) + assert.NotContains(strings.Split(hashtag, "\n"), "=> /login/hashtag/world #world") } func TestHashtags_OneHashtagOneAuthor(t *testing.T) { @@ -45,14 +45,14 @@ func TestHashtags_OneHashtagOneAuthor(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") - hashtag := server.Handle("/users/hashtags", server.Bob) - assert.NotContains(strings.Split(hashtag, "\n"), "=> /users/hashtag/world #world") + hashtag := server.Handle("/login/hashtags", server.Bob) + assert.NotContains(strings.Split(hashtag, "\n"), "=> /login/hashtag/world #world") } func TestHashtags_OneHashtagTwoAuthors(t *testing.T) { @@ -61,20 +61,20 @@ func TestHashtags_OneHashtagTwoAuthors(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") - say = server.Handle("/users/say?Hello%20again,%20%23world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%20again,%20%23world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view = server.Handle(say[3:len(say)-2], server.Alice) assert.Contains(view, "Hello again, #world") - hashtag := server.Handle("/users/hashtags", server.Carol) - assert.Contains(strings.Split(hashtag, "\n"), "=> /users/hashtag/world #world") + hashtag := server.Handle("/login/hashtags", server.Carol) + assert.Contains(strings.Split(hashtag, "\n"), "=> /login/hashtag/world #world") } func TestHashtags_OneHashtagTwoAuthorsCaseSensitivity(t *testing.T) { @@ -83,20 +83,20 @@ func TestHashtags_OneHashtagTwoAuthorsCaseSensitivity(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23worLD", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23worLD", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #worLD") - say = server.Handle("/users/say?Hello%20again,%20%23WORld", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%20again,%20%23WORld", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view = server.Handle(say[3:len(say)-2], server.Alice) assert.Contains(view, "Hello again, #WORld") - hashtag := server.Handle("/users/hashtags", server.Carol) - assert.Contains(strings.Split(hashtag, "\n"), "=> /users/hashtag/worLD #worLD") + hashtag := server.Handle("/login/hashtags", server.Carol) + assert.Contains(strings.Split(hashtag, "\n"), "=> /login/hashtag/worLD #worLD") } func TestHashtags_TwoHashtagsOneAuthor(t *testing.T) { @@ -105,20 +105,20 @@ func TestHashtags_TwoHashtagsOneAuthor(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") - say = server.Handle("/users/say?Hello%20%23again,%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%20%23again,%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view = server.Handle(say[3:len(say)-2], server.Alice) assert.Contains(view, "Hello #again, world") - hashtag := server.Handle("/users/hashtags", server.Carol) - assert.NotContains(strings.Split(hashtag, "\n"), "=> /users/hashtag/world #world") + hashtag := server.Handle("/login/hashtags", server.Carol) + assert.NotContains(strings.Split(hashtag, "\n"), "=> /login/hashtag/world #world") assert.NotContains(strings.Split(hashtag, "\n"), "=> #again") } @@ -128,14 +128,14 @@ func TestHashtags_OneHashtagTwoAuthorsUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20%23world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20%23world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello #world") - say = server.Handle("/users/say?Hello%20again,%20%23world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%20again,%20%23world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view = server.Handle(say[3:len(say)-2], server.Alice) assert.Contains(view, "Hello again, #world") diff --git a/test/home_test.go b/test/home_test.go index 05b3c759..df482dc9 100644 --- a/test/home_test.go +++ b/test/home_test.go @@ -29,7 +29,7 @@ func TestHome_AuthenticatedUser(t *testing.T) { assert := assert.New(t) home := server.Handle("/", server.Alice) - assert.Equal("30 /users\r\n", home) + assert.Equal("30 /login\r\n", home) } func TestHome_UnauthenticatedUser(t *testing.T) { diff --git a/test/move_test.go b/test/move_test.go index 0075279c..e7c487d2 100644 --- a/test/move_test.go +++ b/test/move_test.go @@ -321,7 +321,7 @@ func TestMove_LocalToLocalAliasThrottled(t *testing.T) { assert := assert.New(t) - alias := server.Handle("/users/alias?bob%40localhost.localdomain%3a8443", server.Alice) + alias := server.Handle("/login/alias?bob%40localhost.localdomain%3a8443", server.Alice) assert.Regexp(`^40 Please wait for \S+\r\n$`, alias) } @@ -343,16 +343,16 @@ func TestMove_LocalToLocal(t *testing.T) { server.cfg.MinActorEditInterval = 1 - alias := server.Handle("/users/alias?bob%40localhost.localdomain%3a8443", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), alias) + alias := server.Handle("/login/alias?bob%40localhost.localdomain%3a8443", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), alias) - alias = server.Handle("/users/alias?alice%40localhost.localdomain%3a8443", server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), alias) + alias = server.Handle("/login/alias?alice%40localhost.localdomain%3a8443", server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), alias) assert.NoError(server.db.QueryRow(`select actor from persons where id = ?`, server.Alice.ID).Scan(&server.Alice)) - move := server.Handle("/users/move?bob%40localhost.localdomain%3a8443", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), move) + move := server.Handle("/login/move?bob%40localhost.localdomain%3a8443", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), move) resolver := fed.NewResolver(nil, domain, server.cfg, &http.Client{}, server.db) @@ -377,16 +377,16 @@ func TestMove_LocalToLocalNoFollowers(t *testing.T) { server.cfg.MinActorEditInterval = 1 - alias := server.Handle("/users/alias?bob%40localhost.localdomain%3a8443", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), alias) + alias := server.Handle("/login/alias?bob%40localhost.localdomain%3a8443", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), alias) - alias = server.Handle("/users/alias?alice%40localhost.localdomain%3a8443", server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), alias) + alias = server.Handle("/login/alias?alice%40localhost.localdomain%3a8443", server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), alias) assert.NoError(server.db.QueryRow(`select actor from persons where id = ?`, server.Alice.ID).Scan(&server.Alice)) - move := server.Handle("/users/move?bob%40localhost.localdomain%3a8443", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), move) + move := server.Handle("/login/move?bob%40localhost.localdomain%3a8443", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), move) resolver := fed.NewResolver(nil, domain, server.cfg, &http.Client{}, server.db) @@ -428,13 +428,13 @@ func TestMove_LocalToFederated(t *testing.T) { server.cfg.MinActorEditInterval = 1 - alias := server.Handle("/users/alias?alice%40127.0.0.1", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/alice\r\n", alias) + alias := server.Handle("/login/alias?alice%40127.0.0.1", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/alice\r\n", alias) assert.NoError(server.db.QueryRow(`select actor from persons where id = ?`, server.Alice.ID).Scan(&server.Alice)) - move := server.Handle("/users/move?alice%40127.0.0.1", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/alice\r\n", move) + move := server.Handle("/login/move?alice%40127.0.0.1", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/alice\r\n", move) resolver := fed.NewResolver(nil, domain, server.cfg, &http.Client{}, server.db) @@ -476,7 +476,7 @@ func TestMove_LocalToFederatedNoSourceToTargetAlias(t *testing.T) { server.cfg.MinActorEditInterval = 1 - move := server.Handle("/users/move?alice%40127.0.0.1", server.Alice) + move := server.Handle("/login/move?alice%40127.0.0.1", server.Alice) assert.Equal("40 https://localhost.localdomain:8443/user/alice is not an alias for https://127.0.0.1/user/alice\r\n", move) } @@ -505,12 +505,12 @@ func TestMove_LocalToFederatedNoTargetToSourceAlias(t *testing.T) { server.cfg.MinActorEditInterval = 1 - alias := server.Handle("/users/alias?alice%40127.0.0.1", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/alice\r\n", alias) + alias := server.Handle("/login/alias?alice%40127.0.0.1", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/alice\r\n", alias) assert.NoError(server.db.QueryRow(`select actor from persons where id = ?`, server.Alice.ID).Scan(&server.Alice)) - move := server.Handle("/users/move?alice%40127.0.0.1", server.Alice) + move := server.Handle("/login/move?alice%40127.0.0.1", server.Alice) assert.Equal("40 https://127.0.0.1/user/alice is not an alias for https://localhost.localdomain:8443/user/alice\r\n", move) } @@ -539,13 +539,13 @@ func TestMove_LocalToFederatedAlreadyMoved(t *testing.T) { server.cfg.MinActorEditInterval = 1 - alias := server.Handle("/users/alias?alice%40127.0.0.1", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/alice\r\n", alias) + alias := server.Handle("/login/alias?alice%40127.0.0.1", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/alice\r\n", alias) assert.NoError(server.db.QueryRow(`select actor from persons where id = ?`, server.Alice.ID).Scan(&server.Alice)) - move := server.Handle("/users/move?alice%40127.0.0.1", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/alice\r\n", move) + move := server.Handle("/login/move?alice%40127.0.0.1", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/alice\r\n", move) resolver := fed.NewResolver(nil, domain, server.cfg, &http.Client{}, server.db) @@ -563,6 +563,6 @@ func TestMove_LocalToFederatedAlreadyMoved(t *testing.T) { assert.NoError(server.db.QueryRow(`select actor from persons where id = ?`, server.Alice.ID).Scan(&server.Alice)) - move = server.Handle("/users/move?alice%40%3a%3a1", server.Alice) + move = server.Handle("/login/move?alice%40%3a%3a1", server.Alice) assert.Equal("40 Already moved to https://127.0.0.1/user/alice\r\n", move) } diff --git a/test/name_test.go b/test/name_test.go index e63eaad6..95615b72 100644 --- a/test/name_test.go +++ b/test/name_test.go @@ -31,7 +31,7 @@ func TestName_Throttled(t *testing.T) { assert := assert.New(t) - summary := server.Handle("/users/name?Jane%20Doe", server.Alice) + summary := server.Handle("/login/name?Jane%20Doe", server.Alice) assert.Regexp(`^40 Please wait for \S+\r\n$`, summary) } @@ -43,10 +43,10 @@ func TestName_HappyFlow(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - summary := server.Handle("/users/name?Jane%20Doe", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) + summary := server.Handle("/login/name?Jane%20Doe", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(strings.Split(outbox, "\n"), "# ๐Ÿ˜ˆ Jane Doe (alice@localhost.localdomain:8443)") } @@ -58,7 +58,7 @@ func TestName_TooLong(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - summary := server.Handle("/users/name?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", server.Alice) + summary := server.Handle("/login/name?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", server.Alice) assert.Equal("40 Display name is too long\r\n", summary) } @@ -70,9 +70,9 @@ func TestName_MultiLine(t *testing.T) { server.Alice.Published.Time = server.Alice.Published.Time.Add(-time.Hour) - summary := server.Handle("/users/name?Jane%0A%0A%0A%0ADoe", server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) + summary := server.Handle("/login/name?Jane%0A%0A%0A%0ADoe", server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), summary) - outbox := strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob), "\n") + outbox := strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob), "\n") assert.Contains(outbox, "# ๐Ÿ˜ˆ Jane Doe (alice@localhost.localdomain:8443)") } diff --git a/test/outbox_test.go b/test/outbox_test.go index 4c80d48d..165312df 100644 --- a/test/outbox_test.go +++ b/test/outbox_test.go @@ -34,7 +34,7 @@ func TestOutbox_NonExistingUser(t *testing.T) { assert := assert.New(t) - outbox := server.Handle("/users/outbox/x", server.Bob) + outbox := server.Handle("/login/outbox/x", server.Bob) assert.Equal("40 User not found\r\n", outbox) } @@ -44,10 +44,10 @@ func TestOutbox_InvalidOffset(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - outbox := server.Handle(fmt.Sprintf("/users/outbox/%s?abc", strings.TrimPrefix(server.Alice.ID, "https://")), server.Bob) + outbox := server.Handle(fmt.Sprintf("/login/outbox/%s?abc", strings.TrimPrefix(server.Alice.ID, "https://")), server.Bob) assert.Equal("40 Invalid query\r\n", outbox) } @@ -57,10 +57,10 @@ func TestOutbox_PublicPost(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello world") } @@ -70,8 +70,8 @@ func TestOutbox_PublicPostUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) outbox := server.Handle("/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), nil) assert.Contains(outbox, "Hello world") @@ -83,10 +83,10 @@ func TestOutbox_PublicPostSelf(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) assert.Contains(outbox, "Hello world") } @@ -96,13 +96,13 @@ func TestOutbox_PostToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello world") } @@ -112,10 +112,10 @@ func TestOutbox_PostToFollowersNotFollowing(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(strings.Split(outbox, "\n"), "No posts.") assert.NotContains(outbox, "Hello world") } @@ -126,8 +126,8 @@ func TestOutbox_PostToFollowersUnauthentictedUser(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) outbox := server.Handle("/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), nil) assert.Contains(strings.Split(outbox, "\n"), "No posts.") @@ -140,10 +140,10 @@ func TestOutbox_PostToFollowersSelf(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) assert.Contains(outbox, "Hello world") } @@ -153,13 +153,13 @@ func TestOutbox_DM(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40bob", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40bob", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello @bob") } @@ -169,13 +169,13 @@ func TestOutbox_DMSelf(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40bob", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40bob", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) assert.Contains(outbox, "Hello @bob") } @@ -185,13 +185,13 @@ func TestOutbox_DMNotRecipient(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40bob", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40bob", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol) assert.NotContains(outbox, "Hello @bob") assert.Contains(strings.Split(outbox, "\n"), "No posts.") } @@ -202,11 +202,11 @@ func TestOutbox_UnauthenticatedUser(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40bob", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40bob", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) outbox := server.Handle("/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), nil) assert.NotContains(outbox, "Hello @bob") @@ -253,7 +253,7 @@ func TestOutbox_PublicPostInGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") } @@ -339,7 +339,7 @@ func TestOutbox_PublicPostInGroupAudienceSetByUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.NotContains(outbox, "Hello world") _, err = server.db.Exec( @@ -353,7 +353,7 @@ func TestOutbox_PublicPostInGroupAudienceSetByUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox = server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox = server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") } @@ -396,7 +396,7 @@ func TestOutbox_PublicPostInGroupAudienceSetByGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") _, err = server.db.Exec( @@ -410,7 +410,7 @@ func TestOutbox_PublicPostInGroupAudienceSetByGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox = server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox = server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") } @@ -453,7 +453,7 @@ func TestOutbox_PublicPostInGroupDeletedByUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") _, err = server.db.Exec( @@ -467,7 +467,7 @@ func TestOutbox_PublicPostInGroupDeletedByUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox = server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox = server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.NotContains(outbox, "Hello world") } @@ -517,7 +517,7 @@ func TestOutbox_PublicPostInGroupDeletedByAnotherUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") _, err = server.db.Exec( @@ -531,7 +531,7 @@ func TestOutbox_PublicPostInGroupDeletedByAnotherUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox = server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox = server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.NotContains(outbox, "Hello world") } @@ -574,7 +574,7 @@ func TestOutbox_PublicPostInGroupDeletedByGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") _, err = server.db.Exec( @@ -588,7 +588,7 @@ func TestOutbox_PublicPostInGroupDeletedByGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox = server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox = server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.NotContains(outbox, "Hello world") } @@ -638,7 +638,7 @@ func TestOutbox_PublicPostInGroupForwardedDelete(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") _, err = server.db.Exec( @@ -652,7 +652,7 @@ func TestOutbox_PublicPostInGroupForwardedDelete(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox = server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox = server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.NotContains(outbox, "Hello world") } @@ -695,7 +695,7 @@ func TestOutbox_PublicPostInGroupEditedByUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello world") _, err = server.db.Exec( @@ -709,7 +709,7 @@ func TestOutbox_PublicPostInGroupEditedByUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox = server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox = server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.Contains(outbox, "Hello again") } @@ -733,8 +733,8 @@ func TestOutbox_PostToFollowersInGroup(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/other.localdomain/group/people", server.Alice) - assert.Equal("30 /users/outbox/other.localdomain/group/people\r\n", follow) + follow := server.Handle("/login/follow/other.localdomain/group/people", server.Alice) + assert.Equal("30 /login/outbox/other.localdomain/group/people\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -758,7 +758,7 @@ func TestOutbox_PostToFollowersInGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Alice) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Alice) assert.Contains(outbox, "Hello world") } @@ -782,8 +782,8 @@ func TestOutbox_PostToFollowersInGroupNotFollowingGroup(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/other.localdomain/group/people", server.Alice) - assert.Equal("30 /users/outbox/other.localdomain/group/people\r\n", follow) + follow := server.Handle("/login/follow/other.localdomain/group/people", server.Alice) + assert.Equal("30 /login/outbox/other.localdomain/group/people\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -807,7 +807,7 @@ func TestOutbox_PostToFollowersInGroupNotFollowingGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.NotContains(outbox, "Hello world") } @@ -831,8 +831,8 @@ func TestOutbox_PostToFollowersInGroupNotAccepted(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/other.localdomain/group/people", server.Alice) - assert.Equal("30 /users/outbox/other.localdomain/group/people\r\n", follow) + follow := server.Handle("/login/follow/other.localdomain/group/people", server.Alice) + assert.Equal("30 /login/outbox/other.localdomain/group/people\r\n", follow) _, err = server.db.Exec( `insert into inbox (sender, activity, raw) values($1, $2, $2)`, @@ -853,7 +853,7 @@ func TestOutbox_PostToFollowersInGroupNotAccepted(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Alice) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Alice) assert.NotContains(outbox, "Hello world") } @@ -877,8 +877,8 @@ func TestOutbox_PostToFollowersInGroupFollowingAuthor(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/127.0.0.1/user/dan", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/dan\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/user/dan", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/dan\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -902,7 +902,7 @@ func TestOutbox_PostToFollowersInGroupFollowingAuthor(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Alice) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Alice) assert.NotContains(outbox, "Hello world") } @@ -926,8 +926,8 @@ func TestOutbox_PostToFollowersInGroupUnauthenticatedUser(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/other.localdomain/group/people", server.Alice) - assert.Equal("30 /users/outbox/other.localdomain/group/people\r\n", follow) + follow := server.Handle("/login/follow/other.localdomain/group/people", server.Alice) + assert.Equal("30 /login/outbox/other.localdomain/group/people\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -951,7 +951,7 @@ func TestOutbox_PostToFollowersInGroupUnauthenticatedUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Alice) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Alice) assert.Contains(outbox, "Hello world") } @@ -975,8 +975,8 @@ func TestOutbox_DMInGroupNotFollowingGroup(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -1000,7 +1000,7 @@ func TestOutbox_DMInGroupNotFollowingGroup(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Alice) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Alice) assert.NotContains(outbox, "Hello world") } @@ -1024,11 +1024,11 @@ func TestOutbox_DMInGroupAnotherUser(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/other.localdomain/group/people", server.Alice) - assert.Equal("30 /users/outbox/other.localdomain/group/people\r\n", follow) + follow := server.Handle("/login/follow/other.localdomain/group/people", server.Alice) + assert.Equal("30 /login/outbox/other.localdomain/group/people\r\n", follow) - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -1052,6 +1052,6 @@ func TestOutbox_DMInGroupAnotherUser(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - outbox := server.Handle("/users/outbox/other.localdomain/group/people", server.Bob) + outbox := server.Handle("/login/outbox/other.localdomain/group/people", server.Bob) assert.NotContains(outbox, "Hello world") } diff --git a/test/poll_test.go b/test/poll_test.go index d4a41fe6..94be621b 100644 --- a/test/poll_test.go +++ b/test/poll_test.go @@ -63,7 +63,7 @@ func TestPoll_TwoOptions(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -104,7 +104,7 @@ func TestPoll_TwoOptionsZeroVotes(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (6 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "0 vanilla") @@ -145,7 +145,7 @@ func TestPoll_TwoOptionsOnlyZeroVotes(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (0 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "0 vanilla") @@ -186,7 +186,7 @@ func TestPoll_OneOption(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (4 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "vanilla โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 4") @@ -226,10 +226,10 @@ func TestPoll_Vote(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - reply := server.Handle("/users/reply/127.0.0.1/poll/1?vanilla", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle("/login/reply/127.0.0.1/poll/1?vanilla", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -274,7 +274,7 @@ func TestPoll_VoteClosedPoll(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - reply := server.Handle("/users/reply/127.0.0.1/poll/1?vanilla", server.Alice) + reply := server.Handle("/login/reply/127.0.0.1/poll/1?vanilla", server.Alice) assert.Equal("40 Cannot vote in a closed poll\r\n", reply) var valid int @@ -316,7 +316,7 @@ func TestPoll_VoteEndedPoll(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - reply := server.Handle("/users/reply/127.0.0.1/poll/1?vanilla", server.Alice) + reply := server.Handle("/login/reply/127.0.0.1/poll/1?vanilla", server.Alice) assert.Equal("40 Cannot vote in a closed poll\r\n", reply) var valid int @@ -358,10 +358,10 @@ func TestPoll_Reply(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - reply := server.Handle("/users/reply/127.0.0.1/poll/1?strawberry", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle("/login/reply/127.0.0.1/poll/1?strawberry", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -406,10 +406,10 @@ func TestPoll_ReplyClosedPoll(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - reply := server.Handle("/users/reply/127.0.0.1/poll/1?strawberry", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle("/login/reply/127.0.0.1/poll/1?strawberry", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -454,10 +454,10 @@ func TestPoll_EditVote(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - reply := server.Handle("/users/reply/127.0.0.1/poll/1?vanilla", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle("/login/reply/127.0.0.1/poll/1?vanilla", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -467,7 +467,7 @@ func TestPoll_EditVote(t *testing.T) { assert.NoError(server.db.QueryRow(`select exists (select 1 from outbox where sender = $1 and activity->>'$.actor' = $1 and activity->>'$.object.attributedTo' = $1 and activity->>'$.object.type' = 'Note' and activity->>'$.object.inReplyTo' = 'https://127.0.0.1/poll/1' and activity->>'$.object.name' = 'vanilla' and activity->>'$.object.content' is null)`, server.Alice.ID).Scan(&valid)) assert.Equal(1, valid) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?chocolate", reply[15:len(reply)-2]), server.Alice) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?chocolate", reply[15:len(reply)-2]), server.Alice) assert.Equal("40 Cannot edit votes\r\n", edit) } @@ -505,10 +505,10 @@ func TestPoll_DeleteReply(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - reply := server.Handle("/users/reply/127.0.0.1/poll/1?strawberry", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle("/login/reply/127.0.0.1/poll/1?strawberry", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -518,7 +518,7 @@ func TestPoll_DeleteReply(t *testing.T) { assert.NoError(server.db.QueryRow(`select exists (select 1 from outbox where sender = $1 and activity->>'$.actor' = $1 and activity->>'$.object.attributedTo' = $1 and activity->>'$.object.type' = 'Note' and activity->>'$.object.inReplyTo' = 'https://127.0.0.1/poll/1' and activity->>'$.object.name' is null and activity->>'$.object.content' = 'strawberry')`, server.Alice.ID).Scan(&valid)) assert.Equal(1, valid) - edit := server.Handle(fmt.Sprintf("/users/edit/%s?chocolate", reply[15:len(reply)-2]), server.Alice) + edit := server.Handle(fmt.Sprintf("/login/edit/%s?chocolate", reply[15:len(reply)-2]), server.Alice) assert.Regexp(`^40 Please wait for \S+\r\n$`, edit) } @@ -556,7 +556,7 @@ func TestPoll_Update(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -575,7 +575,7 @@ func TestPoll_Update(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view = server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view = server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (18 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "8 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ– vanilla") @@ -616,7 +616,7 @@ func TestPoll_OldUpdate(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -635,7 +635,7 @@ func TestPoll_OldUpdate(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view = server.Handle("/users/view/127.0.0.1/poll/1", server.Alice) + view = server.Handle("/login/view/127.0.0.1/poll/1", server.Alice) assert.Contains(strings.Split(view, "\n"), "## ๐Ÿ“Š Results (10 voters)") assert.Contains(strings.Split(view, "\n"), "```Results graph") assert.Contains(strings.Split(view, "\n"), "4 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Ž vanilla") @@ -648,8 +648,8 @@ func TestPoll_Local3Options(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") @@ -664,8 +664,8 @@ func TestPoll_Local5Options(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less%20%7c%20wut%3f%20%7c%20Maybe", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less%20%7c%20wut%3f%20%7c%20Maybe", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") @@ -682,7 +682,7 @@ func TestPoll_Local1Option(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope", server.Alice) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope", server.Alice) assert.Equal("40 Polls must have 2 to 5 options\r\n", say) } @@ -692,7 +692,7 @@ func TestPoll_Local6Options(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less%20%7c%20wut%3f%20%7c%20Maybe%20%7c%20kinda", server.Alice) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less%20%7c%20wut%3f%20%7c%20Maybe%20%7c%20kinda", server.Alice) assert.Equal("40 Polls must have 2 to 5 options\r\n", say) } @@ -702,7 +702,7 @@ func TestPoll_LocalEmptyOption(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20%20%7c%20I%20couldn%27t%20care%20less", server.Alice) assert.Equal("40 Poll option cannot be empty\r\n", say) } @@ -712,8 +712,8 @@ func TestPoll_LocalOptionWithLink(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20I%20prefer%20https%3a%2f%2flocalhost%20%7c%20I%20couldn%27t%20care%20less", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20I%20prefer%20https%3a%2f%2flocalhost%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") @@ -728,14 +728,14 @@ func TestPoll_Local3OptionsAnd2Votes(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") @@ -766,14 +766,14 @@ func TestPoll_Local3OptionsAnd2VotesAndDeletedVote(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "So, polls on Station are pretty cool, right?") @@ -783,8 +783,8 @@ func TestPoll_Local3OptionsAnd2VotesAndDeletedVote(t *testing.T) { assert.Contains(strings.Split(view, "\n"), "0 Hell yeah!") assert.Contains(strings.Split(view, "\n"), "0 I couldn't care less") - delete := server.Handle("/users/delete/"+reply[15:len(reply)-2], server.Carol) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Carol.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+reply[15:len(reply)-2], server.Carol) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Carol.ID, "https://")), delete) poller := outbox.Poller{ Domain: domain, @@ -807,20 +807,20 @@ func TestPoll_LocalVoteVisibilityFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hell%%20yeah%%21", whisper[15:len(whisper)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hell%%20yeah%%21", whisper[15:len(whisper)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?I%%20couldn%%27t%%20care%%20less", whisper[15:len(whisper)-2]), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?I%%20couldn%%27t%%20care%%20less", whisper[15:len(whisper)-2]), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) poller := outbox.Poller{ Domain: domain, @@ -868,14 +868,14 @@ func TestPoll_LocalVoteVisibilityPublic(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) poller := outbox.Poller{ Domain: domain, @@ -928,15 +928,15 @@ func TestPoll_LocalSelfVote(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?%5bPOLL%20So%2c%20polls%20on%20Station%20are%20pretty%20cool%2c%20right%3f%5d%20Nope%20%7c%20Hell%20yeah%21%20%7c%20I%20couldn%27t%20care%20less", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) server.cfg.PostThrottleUnit = 0 - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hell%%20yeah%%21", say[15:len(say)-2]), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?I%%20couldn%%27t%%20care%%20less", say[15:len(say)-2]), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) poller := outbox.Poller{ Domain: domain, diff --git a/test/register_test.go b/test/register_test.go index 5f4ed0f6..b9eea591 100644 --- a/test/register_test.go +++ b/test/register_test.go @@ -183,7 +183,7 @@ func TestRegister_RedirectNoCertificate(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -266,7 +266,7 @@ func TestRegister_Redirect(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -285,7 +285,7 @@ func TestRegister_Redirect(t *testing.T) { resp, err := io.ReadAll(tlsReader) assert.NoError(err) - assert.Equal("30 /users/register\r\n", string(resp)) + assert.Equal("30 /login/register\r\n", string(resp)) } func TestRegister_NoCertificate(t *testing.T) { @@ -346,7 +346,7 @@ func TestRegister_NoCertificate(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -365,7 +365,7 @@ func TestRegister_NoCertificate(t *testing.T) { resp, err := io.ReadAll(tlsReader) assert.NoError(err) - assert.Equal("30 /users\r\n", string(resp)) + assert.Equal("30 /login\r\n", string(resp)) } func TestRegister_HappyFlow(t *testing.T) { @@ -429,7 +429,7 @@ func TestRegister_HappyFlow(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -448,7 +448,7 @@ func TestRegister_HappyFlow(t *testing.T) { resp, err := io.ReadAll(tlsReader) assert.NoError(err) - assert.Equal("30 /users\r\n", string(resp)) + assert.Equal("30 /login\r\n", string(resp)) } func TestRegister_HappyFlowRegistrationClosed(t *testing.T) { @@ -512,7 +512,7 @@ func TestRegister_HappyFlowRegistrationClosed(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, true, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -596,7 +596,7 @@ func TestRegister_AlreadyRegistered(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) _, _, err = user.Create(context.Background(), domain, db, "erin", ap.Person, erinKeyPair.Leaf) @@ -662,7 +662,7 @@ func TestRegister_Twice(t *testing.T) { defer tlsListener.Close() for _, expected := range []string{ - "30 /users\r\n", + "30 /login\r\n", "40 Already registered as erin\r\n", } { @@ -688,7 +688,7 @@ func TestRegister_Twice(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -762,7 +762,7 @@ func TestRegister_Throttling(t *testing.T) { clientCfg *tls.Config pattern string }{ - {&erinCfg, "^30 /users\r\n$"}, + {&erinCfg, "^30 /login\r\n$"}, {&davidCfg, "^40 Registration is closed for .+\r\n$"}, } { unixReader, err := net.Dial("unix", socketPath) @@ -787,7 +787,7 @@ func TestRegister_Throttling(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -861,7 +861,7 @@ func TestRegister_Throttling30Minutes(t *testing.T) { clientCfg *tls.Config pattern string }{ - {&erinCfg, "^30 /users\r\n$"}, + {&erinCfg, "^30 /login\r\n$"}, {&davidCfg, "^40 Registration is closed for .+\r\n$"}, } { unixReader, err := net.Dial("unix", socketPath) @@ -886,7 +886,7 @@ func TestRegister_Throttling30Minutes(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -963,8 +963,8 @@ func TestRegister_Throttling1Hour(t *testing.T) { clientCfg *tls.Config pattern string }{ - {&erinCfg, "^30 /users\r\n$"}, - {&davidCfg, "^30 /users\r\n$"}, + {&erinCfg, "^30 /login\r\n$"}, + {&davidCfg, "^30 /login\r\n$"}, } { unixReader, err := net.Dial("unix", socketPath) assert.NoError(err) @@ -988,7 +988,7 @@ func TestRegister_Throttling1Hour(t *testing.T) { }() wg.Wait() - _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/users/register\r\n")) + _, err = tlsReader.Write([]byte("gemini://localhost.localdomain:8965/login/register\r\n")) assert.NoError(err) handler, err := front.NewHandler(domain, false, &cfg, fed.NewResolver(nil, domain, &cfg, &http.Client{}, db), db) @@ -1067,22 +1067,22 @@ func TestRegister_TwoCertificates(t *testing.T) { expected string clientCfg *tls.Config }{ - {"gemini://localhost.localdomain:8965/users\r\n", "^30 /users/register\r\n$", &clientCfg}, - {"gemini://localhost.localdomain:8965/users/register\r\n", "^30 /users\r\n$", &clientCfg}, - {"gemini://localhost.localdomain:8965/users\r\n", "^20 text/gemini\r\n.+", &clientCfg}, - {"gemini://localhost.localdomain:8965/users/register\r\n", "^40 Already registered as erin\r\n$", &clientCfg}, - {"gemini://localhost.localdomain:8965/users\r\n", "^30 /users/register\r\n$", &otherClientCfg}, - {"gemini://localhost.localdomain:8965/users/register\r\n", "^30 /users\r\n$", &otherClientCfg}, - {"gemini://localhost.localdomain:8965/users\r\n", "^40 Client certificate is awaiting approval\r\n$", &otherClientCfg}, - {"gemini://localhost.localdomain:8965/users/register\r\n", "^40 Client certificate is awaiting approval\r\n$", &otherClientCfg}, - {fmt.Sprintf("gemini://localhost.localdomain:8965/users/certificates/approve/%s\r\n", erinOtherCertHash), "^30 /users/certificates\r\n$", &clientCfg}, - {"gemini://localhost.localdomain:8965/users/register\r\n", "^40 Already registered as erin\r\n$", &otherClientCfg}, - {"gemini://localhost.localdomain:8965/users\r\n", "^20 text/gemini\r\n.+", &otherClientCfg}, - {fmt.Sprintf("gemini://localhost.localdomain:8965/users/certificates/revoke/%s\r\n", erinCertHash), "^30 /users/certificates\r\n$", &otherClientCfg}, - {"gemini://localhost.localdomain:8965/users\r\n", "^30 /users/register\r\n$", &clientCfg}, - {"gemini://localhost.localdomain:8965/users/register\r\n", "^30 /users\r\n$", &clientCfg}, - {"gemini://localhost.localdomain:8965/users\r\n", "^40 Client certificate is awaiting approval\r\n$", &clientCfg}, - {"gemini://localhost.localdomain:8965/users\r\n", "^20 text/gemini\r\n.+", &otherClientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^30 /login/register\r\n$", &clientCfg}, + {"gemini://localhost.localdomain:8965/login/register\r\n", "^30 /login\r\n$", &clientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^20 text/gemini\r\n.+", &clientCfg}, + {"gemini://localhost.localdomain:8965/login/register\r\n", "^40 Already registered as erin\r\n$", &clientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^30 /login/register\r\n$", &otherClientCfg}, + {"gemini://localhost.localdomain:8965/login/register\r\n", "^30 /login\r\n$", &otherClientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^40 Client certificate is awaiting approval\r\n$", &otherClientCfg}, + {"gemini://localhost.localdomain:8965/login/register\r\n", "^40 Client certificate is awaiting approval\r\n$", &otherClientCfg}, + {fmt.Sprintf("gemini://localhost.localdomain:8965/login/certificates/approve/%s\r\n", erinOtherCertHash), "^30 /login/certificates\r\n$", &clientCfg}, + {"gemini://localhost.localdomain:8965/login/register\r\n", "^40 Already registered as erin\r\n$", &otherClientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^20 text/gemini\r\n.+", &otherClientCfg}, + {fmt.Sprintf("gemini://localhost.localdomain:8965/login/certificates/revoke/%s\r\n", erinCertHash), "^30 /login/certificates\r\n$", &otherClientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^30 /login/register\r\n$", &clientCfg}, + {"gemini://localhost.localdomain:8965/login/register\r\n", "^30 /login\r\n$", &clientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^40 Client certificate is awaiting approval\r\n$", &clientCfg}, + {"gemini://localhost.localdomain:8965/login\r\n", "^20 text/gemini\r\n.+", &otherClientCfg}, } { unixReader, err := net.Dial("unix", socketPath) assert.NoError(err) diff --git a/test/reply_test.go b/test/reply_test.go index b6ea74b8..2a9b3d7c 100644 --- a/test/reply_test.go +++ b/test/reply_test.go @@ -32,25 +32,25 @@ func TestReply_AuthorNotFollowed(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.Contains(users, "Welcome Bob") local := server.Handle("/local", nil) @@ -64,28 +64,28 @@ func TestReply_AuthorFollowed(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.Contains(users, "Welcome Bob") local := server.Handle("/local", nil) @@ -99,28 +99,28 @@ func TestReply_PostToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.Contains(users, "Welcome Bob") local := server.Handle("/local", nil) @@ -134,24 +134,24 @@ func TestReply_PostToFollowersNotFollowing(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) assert.Equal("40 Post not found\r\n", reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Equal("40 Post not found\r\n", view) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.NotContains(users, "Welcome Bob") local := server.Handle("/local", nil) @@ -165,31 +165,31 @@ func TestReply_PostToFollowersUnfollowedBeforeReply(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) assert.Equal("40 Post not found\r\n", reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.NotContains(view, "Hello world") assert.NotContains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.NotContains(users, "Welcome Bob") local := server.Handle("/local", nil) @@ -203,30 +203,30 @@ func TestReply_PostToFollowersUnfollowedAfterReply(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Equal("40 Post not found\r\n", view) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.Contains(users, "Welcome Bob") local := server.Handle("/local", nil) @@ -240,31 +240,31 @@ func TestReply_SelfReply(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") _, err := server.db.Exec("update outbox set inserted = inserted - 3600 where activity->>'$.type' = 'Create'") assert.NoError(err) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20me", id), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20me", id), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome me") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.Contains(users, "Welcome me") local := server.Handle("/local", nil) @@ -278,28 +278,28 @@ func TestReply_ReplyToPublicPostByFollowedUser(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello world") assert.NotContains(users, "Welcome Bob") @@ -314,25 +314,25 @@ func TestReply_ReplyToPublicPostByNotFollowedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.NotContains(users, "Hello world") assert.NotContains(users, "Welcome Bob") @@ -347,37 +347,37 @@ func TestReply_DM(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hello%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hello%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.Contains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.Contains(users, "Hello Bob") } @@ -388,40 +388,40 @@ func TestReply_DMUnfollowed(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hello%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hello%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.Contains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.Contains(users, "Hello Bob") } @@ -432,38 +432,38 @@ func TestReply_DMUnfollowedBeforeFeedUpdate(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.NotContains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hello%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hello%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "Hello @alice@localhost.localdomain:8443") assert.Contains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.Contains(users, "Hello Bob") } @@ -474,37 +474,37 @@ func TestReply_DMToAnotherUser(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice%40localhost.localdomain%3a8443", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") id := dm[15 : len(dm)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello @alice@localhost.localdomain:8443") - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Hello%%20Bob", id), server.Carol) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Hello%%20Bob", id), server.Carol) assert.Equal("40 Post not found\r\n", reply) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") - users = server.Handle("/users", server.Bob) + users = server.Handle("/login", server.Bob) assert.Contains(users, "Hello @alice@localhost.localdomain:8443") assert.NotContains(users, "Hello Bob") } @@ -515,6 +515,6 @@ func TestReply_NoSuchPost(t *testing.T) { assert := assert.New(t) - reply := server.Handle("/users/reply/x?Welcome%%20Bob", server.Alice) + reply := server.Handle("/login/reply/x?Welcome%%20Bob", server.Alice) assert.Equal("40 Post not found\r\n", reply) } diff --git a/test/resolve_test.go b/test/resolve_test.go index 85619805..3d7ad64b 100644 --- a/test/resolve_test.go +++ b/test/resolve_test.go @@ -30,8 +30,8 @@ func TestResolve_LocalUser(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?alice%40localhost.localdomain:8443", server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), resolve) + resolve := server.Handle("/login/resolve?alice%40localhost.localdomain:8443", server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), resolve) } func TestResolve_LocalUserByNameOnly(t *testing.T) { @@ -40,8 +40,8 @@ func TestResolve_LocalUserByNameOnly(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?alice", server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), resolve) + resolve := server.Handle("/login/resolve?alice", server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), resolve) } func TestResolve_NoSuchLocalUser(t *testing.T) { @@ -50,7 +50,7 @@ func TestResolve_NoSuchLocalUser(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?troll%40localhost.localdomain%3a8443", server.Bob) + resolve := server.Handle("/login/resolve?troll%40localhost.localdomain%3a8443", server.Bob) assert.Equal("40 Failed to resolve troll@localhost.localdomain:8443\r\n", resolve) } @@ -60,7 +60,7 @@ func TestResolve_NoSuchLocalUserByNameOnly(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?troll", server.Bob) + resolve := server.Handle("/login/resolve?troll", server.Bob) assert.Equal("40 Failed to resolve troll@localhost.localdomain:8443\r\n", resolve) } @@ -70,7 +70,7 @@ func TestResolve_NoSuchFederatedUser(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?troll%400.0.0.0", server.Bob) + resolve := server.Handle("/login/resolve?troll%400.0.0.0", server.Bob) assert.Equal("40 Failed to resolve troll@0.0.0.0\r\n", resolve) } @@ -80,7 +80,7 @@ func TestResolve_NoInput(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?", server.Bob) + resolve := server.Handle("/login/resolve?", server.Bob) assert.Equal("10 User name (name or name@domain)\r\n", resolve) } @@ -90,7 +90,7 @@ func TestResolve_InvalidEscapeSequence(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?troll%zzlocalhost.localdomain%3a8443 ", server.Bob) + resolve := server.Handle("/login/resolve?troll%zzlocalhost.localdomain%3a8443 ", server.Bob) assert.Equal("40 Bad input\r\n", resolve) } @@ -100,7 +100,7 @@ func TestResolve_InvalidInputFormat(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?troll%40localhost.localdomain%3a8443%400.0.0.0", server.Bob) + resolve := server.Handle("/login/resolve?troll%40localhost.localdomain%3a8443%400.0.0.0", server.Bob) assert.Equal("40 Bad input\r\n", resolve) } @@ -110,6 +110,6 @@ func TestResolve_UnauthenticatedUser(t *testing.T) { assert := assert.New(t) - resolve := server.Handle("/users/resolve?alice", nil) - assert.Equal("30 /users\r\n", resolve) + resolve := server.Handle("/login/resolve?alice", nil) + assert.Equal("30 /login\r\n", resolve) } diff --git a/test/say_test.go b/test/say_test.go index fb40d62e..7765a6f1 100644 --- a/test/say_test.go +++ b/test/say_test.go @@ -29,13 +29,13 @@ func TestSay_HappyFlow(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello world") - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello world") local := server.Handle("/local", server.Carol) @@ -48,19 +48,19 @@ func TestSay_Throttling(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) view := server.Handle(say[3:len(say)-2], server.Bob) assert.Contains(view, "Hello world") - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) assert.Contains(outbox, "Hello world") - say = server.Handle("/users/say?Hello%20once%20more,%20world", server.Alice) + say = server.Handle("/login/say?Hello%20once%20more,%20world", server.Alice) assert.Regexp(`^40 Please wait for \S+\r\n$`, say) - outbox = server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox = server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello world") assert.NotContains(outbox, "Hello once more, world") diff --git a/test/search_test.go b/test/search_test.go index bbcc0d86..8e79f64b 100644 --- a/test/search_test.go +++ b/test/search_test.go @@ -28,8 +28,8 @@ func TestSearch_Happyflow(t *testing.T) { assert := assert.New(t) - search := server.Handle("/users/search?world", server.Bob) - assert.Equal("30 /users/hashtag/world\r\n", search) + search := server.Handle("/login/search?world", server.Bob) + assert.Equal("30 /login/hashtag/world\r\n", search) } func TestSearch_LeadingHash(t *testing.T) { @@ -38,8 +38,8 @@ func TestSearch_LeadingHash(t *testing.T) { assert := assert.New(t) - search := server.Handle("/users/search?%23world", server.Bob) - assert.Equal("30 /users/hashtag/world\r\n", search) + search := server.Handle("/login/search?%23world", server.Bob) + assert.Equal("30 /login/hashtag/world\r\n", search) } func TestSearch_LeadingHashUnauthenticatedUser(t *testing.T) { @@ -58,7 +58,7 @@ func TestSearch_NoInput(t *testing.T) { assert := assert.New(t) - search := server.Handle("/users/search?", server.Bob) + search := server.Handle("/login/search?", server.Bob) assert.Equal("10 Hashtag\r\n", search) } @@ -68,7 +68,7 @@ func TestSearch_EmptyInput(t *testing.T) { assert := assert.New(t) - search := server.Handle("/users/search?", server.Bob) + search := server.Handle("/login/search?", server.Bob) assert.Equal("10 Hashtag\r\n", search) } @@ -78,7 +78,7 @@ func TestSearch_InvalidEscapeSequence(t *testing.T) { assert := assert.New(t) - search := server.Handle("/users/search?%zzworld", server.Bob) + search := server.Handle("/login/search?%zzworld", server.Bob) assert.Equal("40 Bad input\r\n", search) } diff --git a/test/share_test.go b/test/share_test.go index f9537af6..a30f5b8d 100644 --- a/test/share_test.go +++ b/test/share_test.go @@ -30,18 +30,18 @@ func TestShare_PublicPost(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - share := server.Handle("/users/share/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), share) + share := server.Handle("/login/share/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), share) - outbox := strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") + outbox := strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") - outbox = strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") + outbox = strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") } @@ -51,20 +51,20 @@ func TestShare_Throttling(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - share := server.Handle("/users/share/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), share) + share := server.Handle("/login/share/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), share) - say = server.Handle("/users/say?Hello%20world", server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say = server.Handle("/login/say?Hello%20world", server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id = say[15 : len(say)-2] - share = server.Handle("/users/share/"+id, server.Bob) + share = server.Handle("/login/share/"+id, server.Bob) assert.Equal("40 Please wait before sharing\r\n", share) } @@ -74,16 +74,16 @@ func TestShare_UnshareThrottling(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - share := server.Handle("/users/share/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), share) + share := server.Handle("/login/share/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), share) - unshare := server.Handle("/users/unshare/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), unshare) + unshare := server.Handle("/login/unshare/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), unshare) } func TestShare_PostToFollowers(t *testing.T) { @@ -92,12 +92,12 @@ func TestShare_PostToFollowers(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - share := server.Handle("/users/share/"+id, server.Bob) + share := server.Handle("/login/share/"+id, server.Bob) assert.Equal("40 Error\r\n", share) } @@ -107,21 +107,21 @@ func TestShare_Twice(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - share := server.Handle("/users/share/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), share) + share := server.Handle("/login/share/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), share) - outbox := strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") + outbox := strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") - outbox = strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") + outbox = strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") - share = server.Handle("/users/share/"+id, server.Bob) + share = server.Handle("/login/share/"+id, server.Bob) assert.Equal("40 Error\r\n", share) } @@ -131,27 +131,27 @@ func TestShare_Unshare(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - share := server.Handle("/users/share/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), share) + share := server.Handle("/login/share/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), share) - outbox := strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") + outbox := strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") - outbox = strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") + outbox = strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") _, err := server.db.Exec(`update outbox set inserted = inserted = 3600 where activity->>'$.type' = 'Announce'`) assert.NoError(err) - unshare := server.Handle("/users/unshare/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), unshare) + unshare := server.Handle("/login/unshare/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), unshare) - outbox = strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") + outbox = strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") assert.NotContains(outbox, "> Hello world") } @@ -161,35 +161,35 @@ func TestShare_ShareAfterUnshare(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - share := server.Handle("/users/share/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), share) + share := server.Handle("/login/share/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), share) - outbox := strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") + outbox := strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") - outbox = strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") + outbox = strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") _, err := server.db.Exec(`update outbox set inserted = inserted = 3600 where activity->>'$.type' = 'Announce'`) assert.NoError(err) - unshare := server.Handle("/users/unshare/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), unshare) + unshare := server.Handle("/login/unshare/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), unshare) - outbox = strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") + outbox = strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") assert.NotContains(outbox, "> Hello world") _, err = server.db.Exec(`update outbox set inserted = inserted = 3600 where activity->>'$.type' = 'Undo'`) assert.NoError(err) - share = server.Handle("/users/share/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/view/%s\r\n", id), share) + share = server.Handle("/login/share/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/view/%s\r\n", id), share) - outbox = strings.Split(server.Handle("/users/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") + outbox = strings.Split(server.Handle("/login/outbox/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Carol), "\n") assert.Contains(outbox, "> Hello world") } diff --git a/test/static_test.go b/test/static_test.go index ce93b4c1..852ba227 100644 --- a/test/static_test.go +++ b/test/static_test.go @@ -39,6 +39,6 @@ func TestHelpAuthenticatedUser(t *testing.T) { assert := assert.New(t) - help := server.Handle("/users/help", server.Alice) + help := server.Handle("/login/help", server.Alice) assert.Contains(strings.Split(help, "\n"), "# ๐Ÿ›Ÿ Help") } diff --git a/test/status_test.go b/test/status_test.go index 9db6e0ab..f8ae43c6 100644 --- a/test/status_test.go +++ b/test/status_test.go @@ -38,8 +38,8 @@ func TestStatus_WithPosts(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) status := server.Handle("/status", server.Alice) assert.Regexp("^20 text/gemini\r\n", status) diff --git a/test/thread_test.go b/test/thread_test.go index 294bf474..bcca32be 100644 --- a/test/thread_test.go +++ b/test/thread_test.go @@ -33,23 +33,23 @@ func TestThread_TwoReplies(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Hi%%20Bob", id), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Hi%%20Bob", id), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - view := server.Handle("/users/view/"+reply[15:len(reply)-2], server.Alice) - assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /users/view/%s View parent post", id)) + view := server.Handle("/login/view/"+reply[15:len(reply)-2], server.Alice) + assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /login/view/%s View parent post", id)) assert.NotContains(view, "View first post in thread") assert.NotContains(view, "View thread") - thread := server.Handle("/users/thread/"+id, server.Alice) + thread := server.Handle("/login/thread/"+id, server.Alice) assert.Contains(thread, "Replies to ๐Ÿ˜ˆ bob") assert.Contains(thread, " bob") assert.Contains(thread, " ยท alice") @@ -62,23 +62,23 @@ func TestThread_NestedReplies(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Hi%%20Bob", reply[15:len(reply)-2]), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Hi%%20Bob", reply[15:len(reply)-2]), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.NotContains(view, "View parent post") assert.NotContains(view, "View first post in thread") assert.NotContains(view, "View thread") - thread := server.Handle("/users/thread/"+id, server.Alice) + thread := server.Handle("/login/thread/"+id, server.Alice) assert.Contains(thread, "Replies to ๐Ÿ˜ˆ bob") assert.Contains(thread, " bob") assert.Contains(thread, " ยท alice") @@ -91,20 +91,20 @@ func TestThread_NestedReply(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.NotContains(view, "View parent post") assert.NotContains(view, "View first post in thread") assert.NotContains(view, "View thread") - thread := server.Handle("/users/thread/"+id, server.Alice) + thread := server.Handle("/login/thread/"+id, server.Alice) assert.Contains(thread, "Replies to ๐Ÿ˜ˆ bob") assert.Contains(thread, " bob") assert.Contains(thread, " ยท alice") @@ -117,17 +117,17 @@ func TestThread_NoReplies(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.NotContains(view, "View parent post") assert.NotContains(view, "View first post in thread") assert.NotContains(view, "View thread") - thread := server.Handle("/users/thread/"+id, server.Alice) + thread := server.Handle("/login/thread/"+id, server.Alice) assert.Contains(thread, "Replies to ๐Ÿ˜ˆ bob") assert.Contains(thread, " bob") assert.NotContains(thread, "alice") @@ -140,25 +140,25 @@ func TestThread_NestedRepliesFromBottom(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) parentReplyHash := reply[15 : len(reply)-2] - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Hi%%20Bob", parentReplyHash), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Hi%%20Bob", parentReplyHash), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - view := server.Handle("/users/view/"+reply[15:len(reply)-2], server.Alice) - assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /users/view/%s View parent post", parentReplyHash)) - assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /users/view/%s View first post in thread", id)) + view := server.Handle("/login/view/"+reply[15:len(reply)-2], server.Alice) + assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /login/view/%s View parent post", parentReplyHash)) + assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /login/view/%s View first post in thread", id)) assert.NotContains(view, "View thread") - thread := server.Handle("/users/thread/"+reply[15:len(reply)-2], server.Alice) + thread := server.Handle("/login/thread/"+reply[15:len(reply)-2], server.Alice) assert.Contains(thread, "Replies to ๐Ÿ˜ˆ carol") assert.NotContains(thread, "ยท bob") assert.NotContains(thread, "alice") @@ -171,28 +171,28 @@ func TestThread_NestedRepliesFromBottomMissingNode(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) firstReplyHash := reply[15 : len(reply)-2] - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Hi%%20Bob", firstReplyHash), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Hi%%20Bob", firstReplyHash), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - delete := server.Handle("/users/delete/"+firstReplyHash, server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+firstReplyHash, server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) - view := server.Handle("/users/view/"+reply[15:len(reply)-2], server.Alice) + view := server.Handle("/login/view/"+reply[15:len(reply)-2], server.Alice) assert.NotContains(view, "View parent post") assert.NotContains(view, "View first post in thread") assert.NotContains(view, "View thread") - thread := server.Handle("/users/thread/"+reply[15:len(reply)-2], server.Alice) + thread := server.Handle("/login/thread/"+reply[15:len(reply)-2], server.Alice) assert.Contains(thread, "Replies to ๐Ÿ˜ˆ carol") assert.NotContains(thread, "bob") assert.NotContains(thread, "alice") @@ -205,28 +205,28 @@ func TestThread_NestedRepliesFromBottomMissingFirstNode(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) parentReplyHash := reply[15 : len(reply)-2] - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Hi%%20Bob", parentReplyHash), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Hi%%20Bob", parentReplyHash), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n`, reply) - delete := server.Handle("/users/delete/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) - view := server.Handle("/users/view/"+reply[15:len(reply)-2], server.Alice) - assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /users/view/%s View parent post", parentReplyHash)) + view := server.Handle("/login/view/"+reply[15:len(reply)-2], server.Alice) + assert.Contains(strings.Split(view, "\n"), fmt.Sprintf("=> /login/view/%s View parent post", parentReplyHash)) assert.NotContains(view, "View first post in thread") assert.NotContains(view, "View thread") - thread := server.Handle("/users/thread/"+reply[15:len(reply)-2], server.Alice) + thread := server.Handle("/login/thread/"+reply[15:len(reply)-2], server.Alice) assert.Contains(thread, "Replies to ๐Ÿ˜ˆ carol") assert.NotContains(thread, "bob") assert.NotContains(thread, "alice") diff --git a/test/unfollow_test.go b/test/unfollow_test.go index 138e2ee1..1082d5fe 100644 --- a/test/unfollow_test.go +++ b/test/unfollow_test.go @@ -32,23 +32,23 @@ func TestUnfollow_HappyFlow(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - say := server.Handle("/users/whisper?Hello%20followers", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20followers", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello followers") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello followers") } @@ -58,21 +58,21 @@ func TestUnfollow_HappyFlowBeforeFeedUpdate(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - say := server.Handle("/users/whisper?Hello%20followers", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20followers", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.NotContains(users, "Hello followers") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "Hello followers") } @@ -82,31 +82,31 @@ func TestUnfollow_FollowAgain(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - say := server.Handle("/users/whisper?Hello%20followers", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20followers", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello followers") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello followers") - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.Contains(users, "Hello followers") } @@ -116,7 +116,7 @@ func TestUnfollow_NotFollowing(t *testing.T) { assert := assert.New(t) - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) assert.Equal("40 No such follow\r\n", unfollow) } @@ -126,6 +126,6 @@ func TestUnfollow_UnauthenticatedUser(t *testing.T) { assert := assert.New(t) - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), nil) - assert.Equal("30 /users\r\n", unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), nil) + assert.Equal("30 /login\r\n", unfollow) } diff --git a/test/upload_edit_test.go b/test/upload_edit_test.go index d30e1715..b8cfbc45 100644 --- a/test/upload_edit_test.go +++ b/test/upload_edit_test.go @@ -33,38 +33,38 @@ func TestUploadEdit_HappyFlow(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`30 /users/view/(\S+)\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`30 /login/view/(\S+)\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Upload(fmt.Sprintf("/users/upload/edit/%s;mime=text/plain;size=15", id), server.Bob, []byte("Hello followers")) - assert.Equal(fmt.Sprintf("30 gemini://%s/users/view/%s\r\n", domain, id), edit) + edit := server.Upload(fmt.Sprintf("/login/upload/edit/%s;mime=text/plain;size=15", id), server.Bob, []byte("Hello followers")) + assert.Equal(fmt.Sprintf("30 gemini://%s/login/view/%s\r\n", domain, id), edit) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello followers") - edit = server.Upload(fmt.Sprintf("/users/upload/edit/%s;mime=text/plain;size=16", id), server.Bob, []byte("Hello, followers")) + edit = server.Upload(fmt.Sprintf("/login/upload/edit/%s;mime=text/plain;size=16", id), server.Bob, []byte("Hello, followers")) assert.Regexp(`^40 Please wait for \S+\r\n$`, edit) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users = server.Handle("/users", server.Alice) + users = server.Handle("/login", server.Alice) assert.NotContains(users, "No posts.") assert.Contains(users, "Hello followers") } @@ -75,24 +75,24 @@ func TestUploadEdit_Empty(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/(\S+)\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/(\S+)\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Upload(fmt.Sprintf("/users/upload/edit/%s;mime=text/plain;size=0", id), server.Bob, []byte("Hello followers")) + edit := server.Upload(fmt.Sprintf("/login/upload/edit/%s;mime=text/plain;size=0", id), server.Bob, []byte("Hello followers")) assert.Equal("40 Content is empty\r\n", edit) } @@ -102,17 +102,17 @@ func TestUploadEdit_SizeLimit(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/(\S+)\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/(\S+)\r\n$`, whisper) id := whisper[15 : len(whisper)-2] @@ -121,7 +121,7 @@ func TestUploadEdit_SizeLimit(t *testing.T) { server.cfg.MaxPostsLength = 14 - edit := server.Upload(fmt.Sprintf("/users/upload/edit/%s;mime=text/plain;size=15", id), server.Bob, []byte("Hello followers")) + edit := server.Upload(fmt.Sprintf("/login/upload/edit/%s;mime=text/plain;size=15", id), server.Bob, []byte("Hello followers")) assert.Equal("40 Post is too long\r\n", edit) } @@ -131,24 +131,24 @@ func TestUploadEdit_InvalidSize(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/(\S+)\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/(\S+)\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Upload(fmt.Sprintf("/users/upload/edit/%s;mime=text/plain;size=abc", id), server.Bob, []byte("Hello followers")) + edit := server.Upload(fmt.Sprintf("/login/upload/edit/%s;mime=text/plain;size=abc", id), server.Bob, []byte("Hello followers")) assert.Equal("40 Invalid size\r\n", edit) } @@ -158,24 +158,24 @@ func TestUploadEdit_InvalidType(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/(\S+)\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/(\S+)\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Upload(fmt.Sprintf("/users/upload/edit/%s;mime=text/gemini;size=15", id), server.Bob, []byte("Hello followers")) + edit := server.Upload(fmt.Sprintf("/login/upload/edit/%s;mime=text/gemini;size=15", id), server.Bob, []byte("Hello followers")) assert.Equal("40 Only text/plain is supported\r\n", edit) } @@ -185,24 +185,24 @@ func TestUploadEdit_NoSize(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/(\S+)\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/(\S+)\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Upload(fmt.Sprintf("/users/upload/edit/%s;mime=text/plain;siz=15", id), server.Bob, []byte("Hello followers")) + edit := server.Upload(fmt.Sprintf("/login/upload/edit/%s;mime=text/plain;siz=15", id), server.Bob, []byte("Hello followers")) assert.Equal("40 Invalid parameters\r\n", edit) } @@ -212,23 +212,23 @@ func TestUploadEdit_NoType(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") assert.NotContains(users, "Hello followers") - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/(\S+)\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/(\S+)\r\n$`, whisper) id := whisper[15 : len(whisper)-2] _, err := server.db.Exec("update notes set inserted = inserted - 3600, object = json_set(object, '$.published', ?) where id = 'https://' || ?", time.Now().Add(-time.Hour).Format(time.RFC3339Nano), id) assert.NoError(err) - edit := server.Upload(fmt.Sprintf("/users/upload/edit/%s;mim=text/plain;size=15", id), server.Bob, []byte("Hello followers")) + edit := server.Upload(fmt.Sprintf("/login/upload/edit/%s;mim=text/plain;size=15", id), server.Bob, []byte("Hello followers")) assert.Equal("40 Invalid parameters\r\n", edit) } diff --git a/test/upload_reply_test.go b/test/upload_reply_test.go index 6f6aaeaa..7775a18d 100644 --- a/test/upload_reply_test.go +++ b/test/upload_reply_test.go @@ -32,28 +32,28 @@ func TestUploadReply_PostToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Upload(fmt.Sprintf("/users/upload/reply/%s;mime=text/plain;size=11", id), server.Alice, []byte("Welcome Bob")) - assert.Regexp(fmt.Sprintf("^30 gemini://%s/users/view/\\S+\r\n$", domain), reply) + reply := server.Upload(fmt.Sprintf("/login/upload/reply/%s;mime=text/plain;size=11", id), server.Alice, []byte("Welcome Bob")) + assert.Regexp(fmt.Sprintf("^30 gemini://%s/login/view/\\S+\r\n$", domain), reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.Contains(users, "Welcome Bob") local := server.Handle("/local", nil) @@ -67,28 +67,28 @@ func TestUploadReply_NoMimeType(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) id := whisper[15 : len(whisper)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") assert.NotContains(view, "Welcome Bob") - reply := server.Upload(fmt.Sprintf("/users/upload/reply/%s;size=11", id), server.Alice, []byte("Welcome Bob")) - assert.Regexp(fmt.Sprintf("^30 gemini://%s/users/view/\\S+\r\n$", domain), reply) + reply := server.Upload(fmt.Sprintf("/login/upload/reply/%s;size=11", id), server.Alice, []byte("Welcome Bob")) + assert.Regexp(fmt.Sprintf("^30 gemini://%s/login/view/\\S+\r\n$", domain), reply) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Bob) + users := server.Handle("/login", server.Bob) assert.Contains(users, "Welcome Bob") local := server.Handle("/local", nil) diff --git a/test/users_test.go b/test/users_test.go index 205b3bff..c5c196f0 100644 --- a/test/users_test.go +++ b/test/users_test.go @@ -37,7 +37,7 @@ func TestUsers_NoPosts(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "No posts.") } @@ -49,7 +49,7 @@ func TestUsers_UnauthenticatedUser(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", nil) + users := server.Handle("/login", nil) assert.Equal("30 /oops\r\n", users) } @@ -59,15 +59,15 @@ func TestUsers_DM(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello @alice") } @@ -77,18 +77,18 @@ func TestUsers_DMNotFollowing(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - dm := server.Handle("/users/dm?Hello%20%40alice", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, dm) + dm := server.Handle("/login/dm?Hello%20%40alice", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, dm) - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), unfollow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.NotContains(users, "Hello @alice") } @@ -98,15 +98,15 @@ func TestUsers_PostToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello world") } @@ -116,12 +116,12 @@ func TestUsers_PostToFollowersNotFollowing(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.NotContains(users, "Hello world") } @@ -131,15 +131,15 @@ func TestUsers_PublicPost(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Bob.ID, "https://"), server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), follow) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello world") } @@ -149,12 +149,12 @@ func TestUsers_PublicPostNotFollowing(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.NotContains(users, "Hello world") } @@ -178,8 +178,8 @@ func TestUsers_PublicPostShared(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/127.0.0.1/user/erin", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/erin\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/user/erin", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/erin\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -205,7 +205,7 @@ func TestUsers_PublicPostShared(t *testing.T) { assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.Contains(users, "Hello world") } @@ -229,8 +229,8 @@ func TestUsers_PublicPostSharedNotFollowing(t *testing.T) { ) assert.NoError(err) - follow := server.Handle("/users/follow/127.0.0.1/user/erin", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/erin\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/user/erin", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/erin\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) @@ -254,11 +254,11 @@ func TestUsers_PublicPostSharedNotFollowing(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - unfollow := server.Handle("/users/unfollow/127.0.0.1/user/erin", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/erin\r\n", unfollow) + unfollow := server.Handle("/login/unfollow/127.0.0.1/user/erin", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/erin\r\n", unfollow) assert.NoError((inbox.FeedUpdater{Domain: domain, Config: server.cfg, DB: server.db}).Run(context.Background())) - users := server.Handle("/users", server.Alice) + users := server.Handle("/login", server.Alice) assert.NotContains(users, "Hello world") } diff --git a/test/view_test.go b/test/view_test.go index a253df96..9241b1dc 100644 --- a/test/view_test.go +++ b/test/view_test.go @@ -34,12 +34,12 @@ func TestView_NoReplies(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") } @@ -49,15 +49,15 @@ func TestView_OneReply(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") } @@ -68,18 +68,18 @@ func TestView_TwoReplies(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") assert.Contains(view, "Welcome, Bob!") @@ -91,18 +91,18 @@ func TestView_TwoRepliesBigOffset(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle(fmt.Sprintf("/users/view/%s?123", id), server.Alice) + view := server.Handle(fmt.Sprintf("/login/view/%s?123", id), server.Alice) assert.NotContains(view, "Hello world") assert.NotContains(view, "Welcome Bob") assert.NotContains(view, "Welcome, Bob!") @@ -114,16 +114,16 @@ func TestView_TwoRepliesBigOffsetUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) view := server.Handle(fmt.Sprintf("/view/%s?123", id), nil) assert.NotContains(view, "Hello world") @@ -137,16 +137,16 @@ func TestView_TwoRepliesUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - reply = server.Handle(fmt.Sprintf("/users/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply = server.Handle(fmt.Sprintf("/login/reply/%s?Welcome,%%20Bob%%21", id), server.Carol) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) view := server.Handle("/view/"+id, nil) assert.Contains(view, "Hello world") @@ -160,24 +160,24 @@ func TestView_OneReplyPostDeleted(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) replyHash := reply[15 : len(reply)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") - delete := server.Handle("/users/delete/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) - view = server.Handle("/users/view/"+replyHash, server.Alice) + view = server.Handle("/login/view/"+replyHash, server.Alice) assert.Contains(view, "Welcome Bob") } @@ -187,21 +187,21 @@ func TestView_OneReplyPostNotDeleted(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) replyHash := reply[15 : len(reply)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") - view = server.Handle("/users/view/"+replyHash, server.Alice) + view = server.Handle("/login/view/"+replyHash, server.Alice) assert.Contains(view, "Welcome Bob") } @@ -211,13 +211,13 @@ func TestView_OneReplyPostNotDeletedUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) replyHash := reply[15 : len(reply)-2] @@ -235,13 +235,13 @@ func TestView_OneReplyPostDeletedUnauthenticatedUser(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) replyHash := reply[15 : len(reply)-2] @@ -249,8 +249,8 @@ func TestView_OneReplyPostDeletedUnauthenticatedUser(t *testing.T) { assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") - delete := server.Handle("/users/delete/"+id, server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+id, server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Bob.ID, "https://")), delete) view = server.Handle("/view/"+replyHash, nil) assert.Contains(view, "Welcome Bob") @@ -262,24 +262,24 @@ func TestView_OneReplyReplyDeleted(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/say?Hello%20world", server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/say?Hello%20world", server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Bob", id), server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Bob", id), server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) replyHash := reply[15 : len(reply)-2] - view := server.Handle("/users/view/"+id, server.Alice) + view := server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Bob") - delete := server.Handle("/users/delete/"+replyHash, server.Alice) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) + delete := server.Handle("/login/delete/"+replyHash, server.Alice) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), delete) - view = server.Handle("/users/view/"+id, server.Alice) + view = server.Handle("/login/view/"+id, server.Alice) assert.Contains(view, "Hello world") } @@ -289,7 +289,7 @@ func TestView_NoSuchPost(t *testing.T) { assert := assert.New(t) - view := server.Handle("/users/view/x", server.Bob) + view := server.Handle("/login/view/x", server.Bob) assert.Equal("40 Post not found\r\n", view) } @@ -299,7 +299,7 @@ func TestView_InvalidOffset(t *testing.T) { assert := assert.New(t) - view := server.Handle("/users/view/x?z", server.Bob) + view := server.Handle("/login/view/x?z", server.Bob) assert.Equal("40 Invalid query\r\n", view) } @@ -337,7 +337,7 @@ func TestView_Update(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello") assert.NotContains(view, "bye") assert.NotContains(view, "edited") @@ -355,7 +355,7 @@ func TestView_Update(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view = server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view = server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.NotContains(view, "hello") assert.Contains(view, "bye") assert.Contains(view, "edited") @@ -395,7 +395,7 @@ func TestView_OldUpdate(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello") assert.NotContains(view, "bye") assert.NotContains(view, "edited") @@ -413,7 +413,7 @@ func TestView_OldUpdate(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - view = server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view = server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello") assert.NotContains(view, "bye") assert.NotContains(view, "edited") @@ -425,15 +425,15 @@ func TestView_PostToFollowers(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") } @@ -443,15 +443,15 @@ func TestView_PostToFollowersPostBeforeFollow(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") } @@ -461,21 +461,21 @@ func TestView_PostToFollowersUnfollow(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Contains(view, "Hello world") - unfollow := server.Handle("/users/unfollow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), unfollow) + unfollow := server.Handle("/login/unfollow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), unfollow) - view = server.Handle("/users/view/"+id, server.Bob) + view = server.Handle("/login/view/"+id, server.Bob) assert.Equal("40 Post not found\r\n", view) } @@ -485,12 +485,12 @@ func TestView_PostToFollowersNotFollowing(t *testing.T) { assert := assert.New(t) - say := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - view := server.Handle("/users/view/"+id, server.Bob) + view := server.Handle("/login/view/"+id, server.Bob) assert.Equal("40 Post not found\r\n", view) } @@ -500,21 +500,21 @@ func TestView_PostToFollowersWithReply(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - follow = server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow = server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Carol) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - say := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, say) + say := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, say) id := say[15 : len(say)-2] - reply := server.Handle(fmt.Sprintf("/users/reply/%s?Welcome%%20Alice", id), server.Bob) - assert.Regexp(`^30 /users/view/\S+\r\n$`, reply) + reply := server.Handle(fmt.Sprintf("/login/reply/%s?Welcome%%20Alice", id), server.Bob) + assert.Regexp(`^30 /login/view/\S+\r\n$`, reply) - view := server.Handle("/users/view/"+id, server.Carol) + view := server.Handle("/login/view/"+id, server.Carol) assert.Contains(view, "Hello world") assert.Contains(view, "Welcome Alice") } @@ -560,13 +560,13 @@ func TestView_PostInGroupPublicAndGroupFollowed(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - follow := server.Handle("/users/follow/127.0.0.1/group/people", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/group/people\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/group/people", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/group/people\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello @people") } @@ -611,13 +611,13 @@ func TestView_PostInGroupNotPublicAndGroupFollowed(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - follow := server.Handle("/users/follow/127.0.0.1/group/people", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/group/people\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/group/people", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/group/people\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello @people") } @@ -662,10 +662,10 @@ func TestView_PostInGroupNotPublicAndGroupFollowedButNotAccepted(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - follow := server.Handle("/users/follow/127.0.0.1/group/people", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/group/people\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/group/people", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/group/people\r\n", follow) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Equal("40 Post not found\r\n", view) } @@ -710,13 +710,13 @@ func TestView_PostInGroupNotPublicAndAuthorFollowed(t *testing.T) { assert.NoError(err) assert.Equal(1, n) - follow := server.Handle("/users/follow/127.0.0.1/user/dan", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/dan\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/user/dan", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/dan\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello @people") } @@ -761,10 +761,10 @@ func TestView_PostInGroupNotPublicAndAuthorFollowedButNotAccepted(t *testing.T) assert.NoError(err) assert.Equal(1, n) - follow := server.Handle("/users/follow/127.0.0.1/user/dan", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/user/dan\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/user/dan", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/user/dan\r\n", follow) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Equal("40 Post not found\r\n", view) } @@ -825,13 +825,13 @@ func TestView_PostInGroupNotPublicAndGroupFollowedWithReply(t *testing.T) { assert.NoError(err) assert.Equal(2, n) - follow := server.Handle("/users/follow/127.0.0.1/group/people", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/group/people\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/group/people", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/group/people\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello @people") assert.Contains(view, "hello dan") } @@ -893,13 +893,13 @@ func TestView_PostInGroupNotPublicAndGroupFollowedWithPrivateReply(t *testing.T) assert.NoError(err) assert.Equal(2, n) - follow := server.Handle("/users/follow/127.0.0.1/group/people", server.Alice) - assert.Equal("30 /users/outbox/127.0.0.1/group/people\r\n", follow) + follow := server.Handle("/login/follow/127.0.0.1/group/people", server.Alice) + assert.Equal("30 /login/outbox/127.0.0.1/group/people\r\n", follow) _, err = server.db.Exec(`update follows set accepted = 1`) assert.NoError(err) - view := server.Handle("/users/view/127.0.0.1/note/1", server.Alice) + view := server.Handle("/login/view/127.0.0.1/note/1", server.Alice) assert.Contains(view, "hello @people") assert.NotContains(view, "hello dan") } diff --git a/test/whisper_test.go b/test/whisper_test.go index 89a7a130..45ee7162 100644 --- a/test/whisper_test.go +++ b/test/whisper_test.go @@ -30,16 +30,16 @@ func TestWhisper_HappyFlow(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) view := server.Handle(whisper[3:len(whisper)-2], server.Bob) assert.Contains(view, "Hello world") - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello world") local := server.Handle("/local", server.Carol) @@ -52,19 +52,19 @@ func TestWhisper_FollowAfterPost(t *testing.T) { assert := assert.New(t) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) view := server.Handle(whisper[3:len(whisper)-2], server.Bob) assert.Equal("40 Post not found\r\n", view) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) view = server.Handle(whisper[3:len(whisper)-2], server.Bob) assert.Contains(view, "Hello world") - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello world") local := server.Handle("/local", server.Carol) @@ -77,22 +77,22 @@ func TestWhisper_Throttling(t *testing.T) { assert := assert.New(t) - follow := server.Handle("/users/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) - assert.Equal(fmt.Sprintf("30 /users/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) + follow := server.Handle("/login/follow/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + assert.Equal(fmt.Sprintf("30 /login/outbox/%s\r\n", strings.TrimPrefix(server.Alice.ID, "https://")), follow) - whisper := server.Handle("/users/whisper?Hello%20world", server.Alice) - assert.Regexp(`^30 /users/view/\S+\r\n$`, whisper) + whisper := server.Handle("/login/whisper?Hello%20world", server.Alice) + assert.Regexp(`^30 /login/view/\S+\r\n$`, whisper) view := server.Handle(whisper[3:len(whisper)-2], server.Bob) assert.Contains(view, "Hello world") - outbox := server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) + outbox := server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Alice) assert.Contains(outbox, "Hello world") - whisper = server.Handle("/users/whisper?Hello%20once%20more,%20world", server.Alice) + whisper = server.Handle("/login/whisper?Hello%20once%20more,%20world", server.Alice) assert.Regexp(`^40 Please wait for \S+\r\n$`, whisper) - outbox = server.Handle("/users/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) + outbox = server.Handle("/login/outbox/"+strings.TrimPrefix(server.Alice.ID, "https://"), server.Bob) assert.Contains(outbox, "Hello world") assert.NotContains(outbox, "Hello once more, world")