* fix mobile oauth tests

* update test description

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Elias Nahum
2023-09-27 12:18:56 +03:00
коммит произвёл GitHub
родитель d5c497d7c9
Коммит cd9e0d7509

Просмотреть файл

@@ -404,7 +404,7 @@ func TestMobileLoginWithOAuth(t *testing.T) {
var siteURL = "http://localhost:8065"
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.SiteURL = siteURL
cfg.NativeAppSettings.AppCustomURLSchemes = append(cfg.NativeAppSettings.AppCustomURLSchemes, "mmauth://")
*cfg.GitLabSettings.Enable = true
})
translationFunc := i18n.GetUserTranslations("en")
@@ -413,36 +413,40 @@ func TestMobileLoginWithOAuth(t *testing.T) {
provider := &MattermostTestProvider{}
einterfaces.RegisterOAuthProvider(model.ServiceGitlab, provider)
t.Run("Should include redirect URL in the output when valid URL Scheme is passed", func(t *testing.T) {
t.Run("Should redirect to the SSO login page when valid URL Scheme is passed as redirect_to parameter", func(t *testing.T) {
responseWriter := httptest.NewRecorder()
request, _ := http.NewRequest(http.MethodGet, th.App.GetSiteURL()+"/oauth/gitlab/mobile_login?redirect_to="+url.QueryEscape("mmauth://"), nil)
mobileLoginWithOAuth(c, responseWriter, request)
assert.Contains(t, responseWriter.Body.String(), "mmauth://")
assert.Equal(t, responseWriter.Code, 302)
assert.NotContains(t, responseWriter.Body.String(), siteURL)
})
t.Run("Should include SiteURL in the output when invalid URL Scheme is passed", func(t *testing.T) {
einterfaces.RegisterOAuthProvider(model.ServiceGitlab, provider)
responseWriter := httptest.NewRecorder()
request, _ := http.NewRequest(http.MethodGet, th.App.GetSiteURL()+"/oauth/gitlab/mobile_login?redirect_to="+url.QueryEscape("randomScheme://"), nil)
mobileLoginWithOAuth(c, responseWriter, request)
assert.NotContains(t, responseWriter.Body.String(), "randomScheme://")
assert.Contains(t, responseWriter.Body.String(), siteURL)
body := responseWriter.Body.String()
assert.NotContains(t, body, "randomScheme://")
assert.Contains(t, body, siteURL)
})
t.Run("Should not include the redirect URL consisting of javascript protocol", func(t *testing.T) {
responseWriter := httptest.NewRecorder()
request, _ := http.NewRequest(http.MethodGet, th.App.GetSiteURL()+"/oauth/gitlab/mobile_login?redirect_to="+url.QueryEscape("javascript:alert('hello')"), nil)
mobileLoginWithOAuth(c, responseWriter, request)
assert.NotContains(t, responseWriter.Body.String(), "javascript:alert('hello')")
assert.Contains(t, responseWriter.Body.String(), siteURL)
body := responseWriter.Body.String()
assert.NotContains(t, body, "javascript:alert('hello')")
assert.Contains(t, body, siteURL)
})
t.Run("Should not include the redirect URL consisting of javascript protocol in mixed case", func(t *testing.T) {
responseWriter := httptest.NewRecorder()
request, _ := http.NewRequest(http.MethodGet, th.App.GetSiteURL()+"/oauth/gitlab/mobile_login?redirect_to="+url.QueryEscape("JaVasCript:alert('hello')"), nil)
mobileLoginWithOAuth(c, responseWriter, request)
assert.NotContains(t, responseWriter.Body.String(), "JaVasCript:alert('hello')")
assert.Contains(t, responseWriter.Body.String(), siteURL)
body := responseWriter.Body.String()
assert.NotContains(t, body, "JaVasCript:alert('hello')")
assert.Contains(t, body, siteURL)
})
}