| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- package ftp
- import (
- "bytes"
- "io/ioutil"
- "testing"
- "time"
- )
- const (
- testData = "Just some text"
- testDir = "mydir"
- )
- func TestConn(t *testing.T) {
- if testing.Short() {
- t.Skip("skipping test in short mode.")
- }
- c, err := DialTimeout("localhost:21", 5*time.Second)
- if err != nil {
- t.Fatal(err)
- }
- err = c.Login("anonymous", "anonymous")
- if err != nil {
- t.Fatal(err)
- }
- err = c.NoOp()
- if err != nil {
- t.Error(err)
- }
- data := bytes.NewBufferString(testData)
- err = c.Stor("test", data)
- if err != nil {
- t.Error(err)
- }
- _, err = c.List(".")
- if err != nil {
- t.Error(err)
- }
- err = c.Rename("test", "tset")
- if err != nil {
- t.Error(err)
- }
- r, err := c.Retr("tset")
- if err != nil {
- t.Error(err)
- } else {
- buf, err := ioutil.ReadAll(r)
- if err != nil {
- t.Error(err)
- }
- if string(buf) != testData {
- t.Errorf("'%s'", buf)
- }
- r.Close()
- }
- r, err = c.Retr("tset")
- if err != nil {
- t.Error(err)
- } else {
- r.Close()
- }
- err = c.Delete("tset")
- if err != nil {
- t.Error(err)
- }
- err = c.MakeDir(testDir)
- if err != nil {
- t.Error(err)
- }
- err = c.ChangeDir(testDir)
- if err != nil {
- t.Error(err)
- }
- dir, err := c.CurrentDir()
- if err != nil {
- t.Error(err)
- } else {
- if dir != "/"+testDir {
- t.Error("Wrong dir: " + dir)
- }
- }
- err = c.ChangeDirToParent()
- if err != nil {
- t.Error(err)
- }
- err = c.RemoveDir(testDir)
- if err != nil {
- t.Error(err)
- }
- err = c.Logout()
- if err != nil {
- t.Error(err)
- }
- c.Quit()
- err = c.NoOp()
- if err == nil {
- t.Error("Expected error")
- }
- }
- // ftp.mozilla.org uses multiline 220 response
- func TestMultiline(t *testing.T) {
- if testing.Short() {
- t.Skip("skipping test in short mode.")
- }
- c, err := DialTimeout("ftp.mozilla.org:21", 5*time.Second)
- if err != nil {
- t.Fatal(err)
- }
- err = c.Login("anonymous", "anonymous")
- if err != nil {
- t.Fatal(err)
- }
- _, err = c.List(".")
- if err != nil {
- t.Error(err)
- }
- c.Quit()
- }
- // antioche.antioche.eu.org with IPv6
- func TestConnIPv6(t *testing.T) {
- c, err := Connect("[2001:660:3302:282a:204:75ff:fe9f:9e11]:21")
- if err != nil {
- t.Fatal(err)
- }
- err = c.Login("anonymous", "anonymous")
- if err != nil {
- t.Fatal(err)
- }
- _, err = c.List(".")
- if err != nil {
- t.Error(err)
- }
- c.Quit()
- }
|