Canvas should always reflect its real size + TestCase

This should avoid unpleased experiences like I got with spectre:
https://github.com/johnmccutchan/spectre/issues/73