github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/api4/brand_test.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See LICENSE.txt for license information.
     3  
     4  package api4
     5  
     6  import (
     7  	"net/http"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/masterhung0112/hk_server/v5/utils/testutils"
    13  )
    14  
    15  func TestGetBrandImage(t *testing.T) {
    16  	th := Setup(t)
    17  	defer th.TearDown()
    18  	Client := th.Client
    19  
    20  	_, resp := Client.GetBrandImage()
    21  	CheckNotFoundStatus(t, resp)
    22  
    23  	Client.Logout()
    24  	_, resp = Client.GetBrandImage()
    25  	CheckNotFoundStatus(t, resp)
    26  
    27  	_, resp = th.SystemAdminClient.GetBrandImage()
    28  	CheckNotFoundStatus(t, resp)
    29  }
    30  
    31  func TestUploadBrandImage(t *testing.T) {
    32  	th := Setup(t)
    33  	defer th.TearDown()
    34  	Client := th.Client
    35  
    36  	data, err := testutils.ReadTestFile("test.png")
    37  	require.NoError(t, err)
    38  
    39  	_, resp := Client.UploadBrandImage(data)
    40  	CheckForbiddenStatus(t, resp)
    41  
    42  	// status code returns either forbidden or unauthorized
    43  	// note: forbidden is set as default at Client4.SetProfileImage when request is terminated early by server
    44  	Client.Logout()
    45  	_, resp = Client.UploadBrandImage(data)
    46  	if resp.StatusCode == http.StatusForbidden {
    47  		CheckForbiddenStatus(t, resp)
    48  	} else if resp.StatusCode == http.StatusUnauthorized {
    49  		CheckUnauthorizedStatus(t, resp)
    50  	} else {
    51  		require.Fail(t, "Should have failed either forbidden or unauthorized")
    52  	}
    53  
    54  	_, resp = th.SystemAdminClient.UploadBrandImage(data)
    55  	CheckCreatedStatus(t, resp)
    56  }
    57  
    58  func TestDeleteBrandImage(t *testing.T) {
    59  	th := Setup(t)
    60  	defer th.TearDown()
    61  
    62  	data, err := testutils.ReadTestFile("test.png")
    63  	require.NoError(t, err)
    64  
    65  	_, resp := th.SystemAdminClient.UploadBrandImage(data)
    66  	CheckCreatedStatus(t, resp)
    67  
    68  	resp = th.Client.DeleteBrandImage()
    69  	CheckForbiddenStatus(t, resp)
    70  
    71  	th.Client.Logout()
    72  
    73  	resp = th.Client.DeleteBrandImage()
    74  	CheckUnauthorizedStatus(t, resp)
    75  
    76  	resp = th.SystemAdminClient.DeleteBrandImage()
    77  	CheckOKStatus(t, resp)
    78  
    79  	resp = th.SystemAdminClient.DeleteBrandImage()
    80  	CheckNotFoundStatus(t, resp)
    81  }