mirror of
https://github.com/sbrow/ps.git
synced 2025-12-29 18:47:38 -05:00
v2 now in separate folder
This commit is contained in:
106
v2/document_test.go
Normal file
106
v2/document_test.go
Normal file
@@ -0,0 +1,106 @@
|
||||
package ps
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// wd is the working directory
|
||||
var wd string
|
||||
|
||||
func init() {
|
||||
_, file, _, ok := runtime.Caller(0)
|
||||
if !ok {
|
||||
log.Fatal("runtime.Caller(0) returned !ok")
|
||||
}
|
||||
wd = filepath.Dir(file)
|
||||
|
||||
f, err := os.Create("test.log")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
log.SetOutput(f)
|
||||
}
|
||||
|
||||
func TestDocument_Dump(t *testing.T) {
|
||||
// Must be true for test to be valid.
|
||||
Mode = Normal
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
}{
|
||||
{"Test"},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
||||
// Get rid of old Dump.
|
||||
os.Remove(filepath.Join(wd, tt.name+".json"))
|
||||
|
||||
// Generate a fresh Doc (loaded slowly).
|
||||
want, err := Open(filepath.Join(wd, tt.name+".psd"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Dump the contents.
|
||||
want.Dump()
|
||||
// Grab a new version of the doc (loaded from json).
|
||||
got, err := Open(filepath.Join(wd, tt.name+".psd"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
got.layerSets[0].current = true
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("wanted: %+v\ngot: %+v", want, got)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestDocument_Save(t *testing.T) {
|
||||
file := filepath.Join(wd, "Test.psd")
|
||||
d, err := Open(file)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
layerName := "Group 1"
|
||||
lyr := d.LayerSet(layerName)
|
||||
if lyr == nil {
|
||||
t.Fatalf("LayerSet '%s' was not found", layerName)
|
||||
}
|
||||
|
||||
// Change a layer name.
|
||||
_, err = DoJS(filepath.Join("SetName"), JSLayer(lyr.Path()), "Group 2")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if err = DoAction("DK", "Undo"); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
err = d.Save()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}()
|
||||
|
||||
err = d.Save()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
d2, err := Open(file)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if reflect.DeepEqual(d, d2) {
|
||||
t.Errorf("wanted: %+v\ngot: %+v", d, d2)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user