1require 'caca'
2
3class TC_Canvas < Test::Unit::TestCase
4    def setup
5        @c = Caca::Canvas.new(3, 3)
6    end
7    def test_create
8        c = Caca::Canvas.new(3, 3)
9        assert_not_nil(c, 'Canvas creation failed')
10        assert(c.width == 3 && c.height == 3, 'Wrong size for new canvas')
11    end
12    def test_width
13        @c.width = 42
14        assert_equal(42, @c.width, 'Failed to set width with =')
15        @c.set_width(24)
16        assert_equal(24, @c.width, 'Failed to set width')
17    end
18    def test_height
19        @c.height = 42
20        assert_equal(42, @c.height, 'Failed to set height with =')
21        @c.set_height(24)
22        assert_equal(24, @c.height, 'Failed to set height')
23    end
24    def test_size
25        @c.set_size(100,100)
26        assert(@c.width == 100 && @c.height == 100, 'Failed to set size')
27    end
28    def test_import
29        @c.import_from_memory("foo", "")
30        assert_equal("foo\r\n", @c.export_to_memory("irc"), "Import/Export failed")
31        @c.import_area_from_memory(0, 0, "p", "")
32        assert_equal("poo\r\n", @c.export_area_to_memory(0, 0, 3, 1, "irc"), "Import/Export of area failed")
33    end
34    def test_cursor
35        @c.gotoxy(1,1)
36        assert_equal(1, @c.wherex)
37        assert_equal(1, @c.wherey)
38    end
39    def test_clear
40        @c.put_char(1, 1, 64)
41        @c.clear
42        assert_equal("", @c.export_to_memory("irc").strip, "Failed to clear canvas")
43    end
44    def test_char
45        @c.put_char(1, 1, 42)
46        assert_equal(42, @c.get_char(1,1))
47    end
48    def test_render
49        c = Caca::Canvas.new(4,4)
50	c.put_str(0,0,"plop")
51	f = Caca::Font.new(Caca::Font.list[0])
52	assert_not_nil(c.render(f, c.width*f.width, c.height*f.height, c.width*f.width*4))
53    end
54    def test_fail_render
55        c = Caca::Canvas.new(4,4)
56        assert_raise(ArgumentError) {
57            c.render(nil, c.width, c.height, c.width*4)
58        }
59    end
60end
61