From f20896ef3b147ac07769eb36c67ba436c6d2ed22 Mon Sep 17 00:00:00 2001 From: Martin Ashby Date: Mon, 28 May 2018 16:29:18 +0100 Subject: New unicorns for displaing animated gifs! Tests pass on both old & new for fakes --- unicorn/Unicorn2_test.go | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 unicorn/Unicorn2_test.go (limited to 'unicorn/Unicorn2_test.go') diff --git a/unicorn/Unicorn2_test.go b/unicorn/Unicorn2_test.go new file mode 100644 index 0000000..c74571f --- /dev/null +++ b/unicorn/Unicorn2_test.go @@ -0,0 +1,61 @@ +package unicorn + +import ( + "bytes" + "image/gif" + "testing" + "time" +) + +func gifAsset(name string) (*gif.GIF, error) { + data, err := Asset(name) + if err != nil { + return nil, err + } + + g, err := gif.DecodeAll(bytes.NewReader(data)) + if err != nil { + return nil, err + } + + return g, nil +} + +func TestAnimated(t *testing.T) { + un, err := NewUnicorn2() + if err != nil { + t.Errorf("Failed to create fake unicorn :( %v", err) + return + } + defer un.Close() + + g, err := gifAsset("data/sample.gif") + if err != nil { + t.Errorf("Failed to load asset %v", err) + return + } + + un.SetGif(g) + stopChan := un.StartRender() + + // Stop after 3 + time.Sleep(3 * time.Second) + stopChan <- true + + // Leave it for a sec + time.Sleep(1 * time.Second) + g2, err := gifAsset("data/sample2.gif") + if err != nil { + t.Errorf("Failed to load asset %v", err) + return + } + un.SetGif(g2) + stopChan = un.StartRender() + + // Stop after 5 + time.Sleep(5 * time.Second) + stopChan <- true + + // Make sure it's stopped + time.Sleep(2 * time.Second) +} -- cgit v1.2.3-ZIG