mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Show lock owner instead of repo owner on LFS setting page (#31788)
Fix #31784. Before: <img width="1648" alt="image" src="https://github.com/user-attachments/assets/03f32545-4a85-42ed-bafc-2b193a5d8023"> After: <img width="1653" alt="image" src="https://github.com/user-attachments/assets/e5bcaf93-49cb-421f-aac1-5122bc488b02">
This commit is contained in:
		| @@ -4,12 +4,21 @@ | ||||
| package integration | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"strings" | ||||
| 	"testing" | ||||
|  | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/models/unittest" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| 	"code.gitea.io/gitea/modules/lfs" | ||||
| 	api "code.gitea.io/gitea/modules/structs" | ||||
| 	"code.gitea.io/gitea/tests" | ||||
|  | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
|  | ||||
| // check that files stored in LFS render properly in the web UI | ||||
| @@ -81,3 +90,56 @@ func TestLFSRender(t *testing.T) { | ||||
| 		assert.Contains(t, content, "Testing READMEs in LFS") | ||||
| 	}) | ||||
| } | ||||
|  | ||||
| // TestLFSLockView tests the LFS lock view on settings page of repositories | ||||
| func TestLFSLockView(t *testing.T) { | ||||
| 	defer tests.PrepareTestEnv(t)() | ||||
|  | ||||
| 	user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})       // in org 3 | ||||
| 	repo3 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3}) // own by org 3 | ||||
| 	session := loginUser(t, user2.Name) | ||||
|  | ||||
| 	// create a lock | ||||
| 	lockPath := "test_lfs_lock_view.zip" | ||||
| 	lockID := "" | ||||
| 	{ | ||||
| 		req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/%s.git/info/lfs/locks", repo3.FullName()), map[string]string{"path": lockPath}) | ||||
| 		req.Header.Set("Accept", lfs.AcceptHeader) | ||||
| 		req.Header.Set("Content-Type", lfs.MediaType) | ||||
| 		resp := session.MakeRequest(t, req, http.StatusCreated) | ||||
| 		lockResp := &api.LFSLockResponse{} | ||||
| 		DecodeJSON(t, resp, lockResp) | ||||
| 		lockID = lockResp.Lock.ID | ||||
| 	} | ||||
| 	defer func() { | ||||
| 		// release the lock | ||||
| 		req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/%s.git/info/lfs/locks/%s/unlock", repo3.FullName(), lockID), map[string]string{}) | ||||
| 		req.Header.Set("Accept", lfs.AcceptHeader) | ||||
| 		req.Header.Set("Content-Type", lfs.MediaType) | ||||
| 		session.MakeRequest(t, req, http.StatusOK) | ||||
| 	}() | ||||
|  | ||||
| 	t.Run("owner name", func(t *testing.T) { | ||||
| 		defer tests.PrintCurrentTest(t)() | ||||
|  | ||||
| 		// make sure the display names are different, or the test is meaningless | ||||
| 		require.NoError(t, repo3.LoadOwner(context.Background())) | ||||
| 		require.NotEqual(t, user2.DisplayName(), repo3.Owner.DisplayName()) | ||||
|  | ||||
| 		req := NewRequest(t, "GET", fmt.Sprintf("/%s/settings/lfs/locks", repo3.FullName())) | ||||
| 		resp := session.MakeRequest(t, req, http.StatusOK) | ||||
|  | ||||
| 		doc := NewHTMLParser(t, resp.Body).doc | ||||
|  | ||||
| 		tr := doc.Find("table#lfs-files-locks-table tbody tr") | ||||
| 		require.Equal(t, 1, tr.Length()) | ||||
|  | ||||
| 		td := tr.First().Find("td") | ||||
| 		require.Equal(t, 4, td.Length()) | ||||
|  | ||||
| 		// path | ||||
| 		assert.Equal(t, lockPath, strings.TrimSpace(td.Eq(0).Text())) | ||||
| 		// owner name | ||||
| 		assert.Equal(t, user2.DisplayName(), strings.TrimSpace(td.Eq(1).Text())) | ||||
| 	}) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jason Song
					Jason Song