diff --git a/templates/user/settings/keys_ssh.tmpl b/templates/user/settings/keys_ssh.tmpl index 57f4ef4010..5372a9b919 100644 --- a/templates/user/settings/keys_ssh.tmpl +++ b/templates/user/settings/keys_ssh.tmpl @@ -74,7 +74,7 @@
{{ctx.Locale.Tr "settings.ssh_token_help"}}
diff --git a/tests/integration/user_keys_test.go b/tests/integration/user_keys_test.go index 5992c1e111..76635ddb70 100644 --- a/tests/integration/user_keys_test.go +++ b/tests/integration/user_keys_test.go @@ -7,7 +7,6 @@ import ( "fmt" "net/http" "net/url" - "strings" "testing" "forgejo.org/modules/test" @@ -29,12 +28,15 @@ func TestVerifySSHkeyPage(t *testing.T) { page = NewHTMLParser(t, session.MakeRequest(t, NewRequest(t, "GET", fmt.Sprintf("/user/settings/keys%s", link)), http.StatusOK).Body) - // QueryUnescape the link for selector matching - link, err := url.QueryUnescape(link) - require.NoError(t, err) - // The hint contains a link to the same page the user is at now to get it reloaded if followed - page.AssertElement(t, fmt.Sprintf("#keys-ssh form[action='/user/settings/keys'] .help a[href='%s']", link), true) + linkShown, exists := page.Find("#keys-ssh form[action='/user/settings/keys'] .help a").Attr("href") + assert.True(t, exists) + // QueryUnescape links before comparison, because they contain "%3a" versus "%3A", both unescaping to ":" + linkUnescaped, err := url.QueryUnescape(link) + require.NoError(t, err) + linkShownUnescaped, err := url.QueryUnescape(linkShown) + require.NoError(t, err) + assert.Equal(t, linkUnescaped, linkShownUnescaped) // The token changes every minute, we can avoid this sleep via timeutil and mocking. test.SleepTillNextMinute() @@ -43,8 +45,7 @@ func TestVerifySSHkeyPage(t *testing.T) { token, exists := page.Find("#keys-ssh form input[readonly]").Attr("value") assert.True(t, exists) - link = url.QueryEscape(strings.TrimPrefix(link, "?verify_ssh=")) - page = NewHTMLParser(t, session.MakeRequest(t, NewRequestf(t, "GET", "/user/settings/keys?verify_ssh=%s", link), http.StatusOK).Body) + page = NewHTMLParser(t, session.MakeRequest(t, NewRequestf(t, "GET", "/user/settings/keys%s", linkShown), http.StatusOK).Body) otherToken, exists := page.Find("#keys-ssh form .field input[readonly]").Attr("value") assert.True(t, exists) assert.NotEqual(t, token, otherToken)