github.com/upyun/upx@v0.4.7-0.20240419023638-b184a7cb7c10/basic_test.go (about) 1 package upx 2 3 import ( 4 "fmt" 5 "os" 6 "strings" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestLoginAndLogout(t *testing.T) { 13 14 b, err := Upx("login", BUCKET_1, USERNAME, PASSWORD) 15 assert.NoError(t, err) 16 assert.Equal(t, string(b), fmt.Sprintf("Welcome to %s, %s!\n", BUCKET_1, USERNAME)) 17 18 b, err = Upx("login", BUCKET_2, USERNAME, PASSWORD) 19 assert.NoError(t, err) 20 assert.Equal(t, string(b), fmt.Sprintf("Welcome to %s, %s!\n", BUCKET_2, USERNAME)) 21 22 b, err = Upx("logout") 23 assert.NoError(t, err) 24 assert.Equal(t, string(b), fmt.Sprintf("Goodbye %s/%s ~~\n", USERNAME, BUCKET_2)) 25 26 b, err = Upx("logout") 27 assert.NoError(t, err) 28 assert.Equal(t, string(b), fmt.Sprintf("Goodbye %s/%s ~~\n", USERNAME, BUCKET_1)) 29 } 30 31 func TestGetInfo(t *testing.T) { 32 SetUp() 33 defer TearDown() 34 pwd, _ := Upx("pwd") 35 b, err := Upx("info") 36 assert.NoError(t, err) 37 s := []string{ 38 "ServiceName: " + BUCKET_1, 39 "Operator: " + USERNAME, 40 "CurrentDir: " + strings.TrimRight(string(pwd), "\n"), 41 "Usage: ", 42 } 43 assert.Equal(t, strings.HasPrefix(string(b), strings.Join(s, "\n")), true) 44 } 45 46 func TestSessionsAndSwitch(t *testing.T) { 47 SetUp() 48 defer TearDown() 49 b, err := Upx("sessions") 50 assert.NoError(t, err) 51 assert.Equal(t, string(b), fmt.Sprintf("> %s\n", BUCKET_1)) 52 53 Upx("login", BUCKET_2, USERNAME, PASSWORD) 54 b, err = Upx("sessions") 55 assert.NoError(t, err) 56 assert.Equal(t, string(b), fmt.Sprintf(" %s\n> %s\n", BUCKET_1, BUCKET_2)) 57 58 Upx("switch", BUCKET_1) 59 b, err = Upx("sessions") 60 assert.NoError(t, err) 61 assert.Equal(t, string(b), fmt.Sprintf("> %s\n %s\n", BUCKET_1, BUCKET_2)) 62 63 pwd, _ := Upx("pwd") 64 b, err = Upx("info") 65 assert.NoError(t, err) 66 s := []string{ 67 "ServiceName: " + BUCKET_1, 68 "Operator: " + USERNAME, 69 "CurrentDir: " + strings.TrimRight(string(pwd), "\n"), 70 "Usage: ", 71 } 72 assert.Equal(t, strings.HasPrefix(string(b), strings.Join(s, "\n")), true) 73 } 74 75 // TODO 76 func TestAuth(t *testing.T) { 77 } 78 79 func TestPurge(t *testing.T) { 80 SetUp() 81 defer TearDown() 82 b, err := Upx("purge", fmt.Sprintf("http://%s.b0.upaiyun.com/test.jpg", BUCKET_1)) 83 assert.NoError(t, err) 84 assert.Equal(t, len(b), 0) 85 86 _, err = Upx("purge", "http://www.baidu.com") 87 if !assert.Error(t, err) { 88 assert.Fail(t, "purge not has return error") 89 } 90 assert.Equal(t, err.Error(), "Purge failed urls:\nhttp://www.baidu.com\ntoo many fails\n") 91 92 fd, _ := os.Create("list") 93 fd.WriteString(fmt.Sprintf("http://%s.b0.upaiyun.com/test.jpg\n", BUCKET_1)) 94 fd.WriteString(fmt.Sprintf("http://%s.b0.upaiyun.com/测试.jpg\n", BUCKET_1)) 95 fd.WriteString(fmt.Sprintf("http://%s.b0.upaiyun.com/%%E5%%8F%%88%%E6%%8B%%8D%%E4%%BA%%91.jpg\n", BUCKET_1)) 96 fd.Close() 97 98 b, err = Upx("purge", "--list", "list") 99 assert.NoError(t, err) 100 assert.Equal(t, len(b), 0) 101 }