1
0
mirror of https://github.com/minio/mc.git synced 2025-11-13 12:22:45 +03:00

Add new tests for common methods, make necessary changes to support testing config file creation

This commit is contained in:
Harshavardhana
2015-05-20 15:10:04 -07:00
parent 7878be2cc9
commit b94e67e57f
2 changed files with 84 additions and 1 deletions

View File

@@ -17,10 +17,13 @@
package main package main
import ( import (
"bytes"
"io"
"io/ioutil" "io/ioutil"
"os" "os"
"os/user" "os/user"
"path" "path"
"path/filepath"
"runtime" "runtime"
"testing" "testing"
@@ -46,6 +49,12 @@ func mustGetMcConfigDir() string {
func (s *CmdTestSuite) TestGetNewClient(c *C) { func (s *CmdTestSuite) TestGetNewClient(c *C) {
_, err := getNewClient("http://example.com/bucket1", &hostConfig{}, false) _, err := getNewClient("http://example.com/bucket1", &hostConfig{}, false)
c.Assert(err, IsNil) c.Assert(err, IsNil)
_, err = getNewClient("C:\\Users\\Administrator\\MyDocuments", &hostConfig{}, false)
c.Assert(err, IsNil)
_, err = getNewClient("/usr/bin/pandoc", &hostConfig{}, false)
c.Assert(err, IsNil)
_, err = getNewClient("pkg/client", &hostConfig{}, false)
c.Assert(err, IsNil)
} }
func (s *CmdTestSuite) TestNewConfigV1(c *C) { func (s *CmdTestSuite) TestNewConfigV1(c *C) {
@@ -102,6 +111,15 @@ func (s *CmdTestSuite) TestNewConfigV1(c *C) {
} }
} }
func (s *CmdTestSuite) TestRecursiveURL(c *C) {
c.Assert(isURLRecursive("url..."), Equals, true)
c.Assert(isURLRecursive("url.."), Equals, false)
c.Assert(stripRecursiveURL("url..."), Equals, "url")
c.Assert(stripRecursiveURL("url.."), Equals, "url..")
c.Assert(stripRecursiveURL("..."), Equals, ".")
c.Assert(stripRecursiveURL("...url"), Equals, "...url")
}
func (s *CmdTestSuite) TestValidACL(c *C) { func (s *CmdTestSuite) TestValidACL(c *C) {
acl := bucketACL("private") acl := bucketACL("private")
c.Assert(acl.isValidBucketACL(), Equals, true) c.Assert(acl.isValidBucketACL(), Equals, true)
@@ -113,6 +131,12 @@ func (s *CmdTestSuite) TestInvalidACL(c *C) {
} }
func (s *CmdTestSuite) TestGetMcConfigDir(c *C) { func (s *CmdTestSuite) TestGetMcConfigDir(c *C) {
switch runtime.GOOS {
case "windows":
mcConfigWindowsDir = "mc/"
default:
mcConfigDir = ".mc/"
}
u, err := user.Current() u, err := user.Current()
c.Assert(err, IsNil) c.Assert(err, IsNil)
dir, err := getMcConfigDir() dir, err := getMcConfigDir()
@@ -160,6 +184,7 @@ func (s *CmdTestSuite) TestIsvalidAliasName(c *C) {
c.Check(isValidAliasName("0dslka-4"), Equals, false) c.Check(isValidAliasName("0dslka-4"), Equals, false)
c.Check(isValidAliasName("-fdslka"), Equals, false) c.Check(isValidAliasName("-fdslka"), Equals, false)
c.Check(isValidAliasName("help"), Equals, false) c.Check(isValidAliasName("help"), Equals, false)
c.Check(isValidAliasName("private"), Equals, false) // reserved names
} }
func (s *CmdTestSuite) TestEmptyExpansions(c *C) { func (s *CmdTestSuite) TestEmptyExpansions(c *C) {
@@ -232,3 +257,61 @@ func (s *CmdTestSuite) TestIsValidRetry(c *C) {
c.Assert(isValidRetry(opError), Equals, false) c.Assert(isValidRetry(opError), Equals, false)
c.Assert(isValidRetry(iodine.New(opError, nil)), Equals, false) c.Assert(isValidRetry(iodine.New(opError, nil)), Equals, false)
} }
func (s *CmdTestSuite) TestConfig(c *C) {
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
c.Assert(err, IsNil)
defer os.RemoveAll(root)
switch runtime.GOOS {
case "windows":
mcConfigWindowsDir = root
default:
mcConfigDir = root
}
_, err = doConfig("generate", nil)
c.Assert(err, IsNil)
}
func (s *CmdTestSuite) TestCommonMethods(c *C) {
configDir, err := ioutil.TempDir(os.TempDir(), "cmd-")
c.Assert(err, IsNil)
defer os.RemoveAll(configDir)
switch runtime.GOOS {
case "windows":
mcConfigWindowsDir = configDir
default:
mcConfigDir = configDir
}
_, err = doConfig("generate", nil)
c.Assert(err, IsNil)
/// filesystem
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
c.Assert(err, IsNil)
defer os.RemoveAll(root)
objectPath := filepath.Join(root, "object1")
data := "hello"
dataLen := len(data)
err = putTarget(objectPath, &hostConfig{}, uint64(dataLen), bytes.NewReader([]byte(data)))
c.Assert(err, IsNil)
reader, size, err := getSource(objectPath, &hostConfig{})
c.Assert(err, IsNil)
c.Assert(size, Not(Equals), 0)
var results bytes.Buffer
_, err = io.CopyN(&results, reader, int64(size))
c.Assert(err, IsNil)
c.Assert([]byte(data), DeepEquals, results.Bytes())
_, content, err := url2Stat(objectPath)
c.Assert(err, IsNil)
c.Assert(content.Name, Equals, filepath.Join(root, "object1"))
c.Assert(content.Type.IsRegular(), Equals, true)
_, _, err = url2Stat(objectPath + "invalid")
c.Assert(err, Not(IsNil))
}

View File

@@ -26,7 +26,7 @@ var (
) )
// mc configuration related constants // mc configuration related constants
const ( var (
mcConfigDir = ".mc/" mcConfigDir = ".mc/"
mcConfigWindowsDir = "mc/" mcConfigWindowsDir = "mc/"
mcConfigFile = "config.json" mcConfigFile = "config.json"