From e5360c908a8328386dbde7e95eab59a48be2e6ff Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Mon, 5 Jun 2023 11:29:07 +0200 Subject: [PATCH] [TESTS] auth LinkAccount test coverage (cherry picked from commit e11dcc60f291f1b882a993f60f8381fe4561d6d0) use backticks to avoid backslash (cherry picked from commit 34212791eef2031ef09ea118a2ee5b98082174dc) (cherry picked from commit b76c67c99f86dbc3024f95499e82181e33c2af00) (cherry picked from commit c3c21e3b6bd175e79762b8c0646a243e182f13d2) (cherry picked from commit 9f4c722db4c9e11ebad019461de4613d8ada7a5b) --- tests/integration/linkaccount_test.go | 63 +++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/integration/linkaccount_test.go diff --git a/tests/integration/linkaccount_test.go b/tests/integration/linkaccount_test.go new file mode 100644 index 0000000000..e7b9f9c261 --- /dev/null +++ b/tests/integration/linkaccount_test.go @@ -0,0 +1,63 @@ +// Copyright 2023 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package integration + +import ( + "net/http" + "testing" + + gitea_context "code.gitea.io/gitea/modules/context" + "code.gitea.io/gitea/tests" + + "github.com/markbates/goth" + "github.com/stretchr/testify/assert" +) + +func TestLinkAccountChoose(t *testing.T) { + defer tests.PrepareTestEnv(t)() + username := "linkaccountuser" + email := "linkaccountuser@example.com" + password := "linkaccountuser" + defer createUser(t, username, email, password)() + + defer func() { + testMiddlewareHook = nil + }() + + for _, testCase := range []struct { + gothUser goth.User + signupTab string + signinTab string + }{ + { + gothUser: goth.User{}, + signupTab: "item active", + signinTab: "item ", + }, + { + gothUser: goth.User{ + Email: email, + }, + signupTab: "item ", + signinTab: "item active", + }, + } { + testMiddlewareHook = func(ctx *gitea_context.Context) { + ctx.Session.Set("linkAccountGothUser", testCase.gothUser) + } + + req := NewRequest(t, "GET", "/user/link_account") + resp := MakeRequest(t, req, http.StatusOK) + assert.Equal(t, resp.Code, http.StatusOK, resp.Body) + doc := NewHTMLParser(t, resp.Body) + + class, exists := doc.Find(`.new-menu-inner .item[data-tab="auth-link-signup-tab"]`).Attr("class") + assert.True(t, exists, resp.Body) + assert.Equal(t, testCase.signupTab, class) + + class, exists = doc.Find(`.new-menu-inner .item[data-tab="auth-link-signin-tab"]`).Attr("class") + assert.True(t, exists) + assert.Equal(t, testCase.signinTab, class) + } +}