From 2b988e5415b35e608726facb5d23a920334fda1c 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 bde9473c69eaf6306457b4218d9704af64cb6cc8) (cherry picked from commit d4deb43084eec4ce0de786a01acef52921a39b13) (cherry picked from commit 08e91649b0057258ea5d775447d84093c31ad523) --- 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) + } +}