github.com/nak3/source-to-image@v1.1.10-0.20180319140719-2ed55639898d/pkg/util/fs/fs_test.go (about) 1 package fs 2 3 import ( 4 "os" 5 "path/filepath" 6 "reflect" 7 "testing" 8 9 testfs "github.com/openshift/source-to-image/pkg/test/fs" 10 ) 11 12 func TestCopy(t *testing.T) { 13 sep := string(filepath.Separator) 14 15 // test plain file copy 16 fake := &testfs.FakeFileSystem{ 17 Files: []os.FileInfo{ 18 &FileInfo{FileName: "file", FileMode: 0600}, 19 }, 20 OpenContent: "test", 21 } 22 err := doCopy(fake, sep+"file", sep+"dest") 23 if err != nil { 24 t.Error(err) 25 } 26 if fake.CreateFile != sep+"dest" { 27 t.Error(fake.CreateFile) 28 } 29 if fake.CreateContent.String() != "test" { 30 t.Error(fake.CreateContent.String()) 31 } 32 if !reflect.DeepEqual(fake.ChmodFile, []string{sep + "dest"}) { 33 t.Error(fake.ChmodFile) 34 } 35 if fake.ChmodMode != 0600 { 36 t.Error(fake.ChmodMode) 37 } 38 39 // test broken symlink copy 40 fake = &testfs.FakeFileSystem{ 41 Files: []os.FileInfo{ 42 &FileInfo{FileName: "link", FileMode: os.ModeSymlink}, 43 }, 44 ReadlinkName: sep + "linkdest", 45 } 46 err = doCopy(fake, sep+"link", sep+"dest") 47 if err != nil { 48 t.Error(err) 49 } 50 if fake.SymlinkNewname != sep+"dest" { 51 t.Error(fake.SymlinkNewname) 52 } 53 if fake.SymlinkOldname != sep+"linkdest" { 54 t.Error(fake.SymlinkOldname) 55 } 56 57 // test non-broken symlink copy 58 fake = &testfs.FakeFileSystem{ 59 Files: []os.FileInfo{ 60 &FileInfo{FileName: "file", FileMode: 0600}, 61 &FileInfo{FileName: "link", FileMode: os.ModeSymlink}, 62 }, 63 OpenContent: "test", 64 ReadlinkName: sep + "file", 65 } 66 err = doCopy(fake, sep+"link", sep+"dest") 67 if fake.CreateFile != sep+"dest" { 68 t.Error(fake.CreateFile) 69 } 70 if fake.CreateContent.String() != "test" { 71 t.Error(fake.CreateContent.String()) 72 } 73 if !reflect.DeepEqual(fake.ChmodFile, []string{sep + "dest"}) { 74 t.Error(fake.ChmodFile) 75 } 76 if fake.ChmodMode != 0600 { 77 t.Error(fake.ChmodMode) 78 } 79 }