32 lines
897 B
Go
32 lines
897 B
Go
package document
|
|
|
|
import "testing"
|
|
|
|
func TestPlayViewSwitchesActiveScene(t *testing.T) {
|
|
m := newManager(t)
|
|
d := m.New("scenes/a.aescene", sampleScene(m, 1))
|
|
if err := m.Save(d.ID); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
ps := sampleScene(m, 2)
|
|
view := d.PlayCopy(ps)
|
|
m.SetPlay(view, nil)
|
|
if !m.InPlay() || m.ActiveScene() != ps || m.Active() != view || m.Edit() != d || m.Get(d.ID) != d {
|
|
t.Fatal("play view must be active while real documents stay reachable")
|
|
}
|
|
a := ps.Find(ps.Root(), "A")
|
|
if err := view.Props.Rename(nil, ps.ID(a), "B"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if view.Dirty() || d.Dirty() || m.Dirty() {
|
|
t.Fatal("play edits must not dirty anything")
|
|
}
|
|
if d.Scene().Find(d.Scene().Root(), "A").IsZero() {
|
|
t.Fatal("edit scene changed")
|
|
}
|
|
m.ClearPlay()
|
|
if m.InPlay() || m.ActiveScene() != d.Scene() || m.Active() != d {
|
|
t.Fatal("stop must return to the edit scene")
|
|
}
|
|
}
|