diff options
Diffstat (limited to 'test/text_spec.rb')
| -rw-r--r-- | test/text_spec.rb | 104 |
1 files changed, 76 insertions, 28 deletions
diff --git a/test/text_spec.rb b/test/text_spec.rb index 63acec7..5454510 100644 --- a/test/text_spec.rb +++ b/test/text_spec.rb @@ -4,69 +4,117 @@ RSpec.describe Ruby2D::Text do describe "#new" do it "raises exception if font file doesn't exist" do - expect { Text.new("hello", font: "bad_font.ttf") }.to raise_error(Ruby2D::Error) + expect { Text.new('hello', font: 'bad_font.ttf') }.to raise_error(Ruby2D::Error) end it "uses the system default font if one is not provided" do - t = Text.new("hello") - expect(t.font).to eq(Font.default) + txt = Text.new('hello') + expect(txt.font).to eq(Font.default) + end + + it "creates text with a white filter by default" do + txt = Text.new('hello') + expect(txt.color).to be_a(Ruby2D::Color) + expect(txt.color.r).to eq(1) + expect(txt.color.g).to eq(1) + expect(txt.color.b).to eq(1) + expect(txt.color.a).to eq(1) + end + + it "creates an image with options" do + txt = Text.new( + 'hello', font: 'test/media/bitstream_vera/vera.ttf', + x: 10, y: 20, z: 30, + size: 40, rotate: 50, + color: 'gray', opacity: 0.5 + ) + + expect(txt.text).to eq('hello') + expect(txt.x).to eq(10) + expect(txt.y).to eq(20) + expect(txt.z).to eq(30) + expect(txt.size).to eq(40) + expect(txt.rotate).to eq(50) + expect(txt.color.r).to eq(2/3.0) + expect(txt.opacity).to eq(0.5) + end + end + + describe "attributes" do + it "can be set and read" do + txt = Text.new('hello') + txt.x = 10 + txt.y = 20 + txt.z = 30 + txt.size = 40 + txt.rotate = 50 + txt.color = 'gray' + txt.opacity = 0.5 + + expect(txt.x).to eq(10) + expect(txt.y).to eq(20) + expect(txt.z).to eq(30) + expect(txt.size).to eq(40) + expect(txt.rotate).to eq(50) + expect(txt.color.r).to eq(2/3.0) + expect(txt.opacity).to eq(0.5) end end describe "#text=" do it "maps Time to string" do - t = Text.new("hello", font: "test/media/bitstream_vera/vera.ttf") - t.text = Time.new(1, 1, 1, 1, 1, 1, 1) - expect(t.text).to eq("0001-01-01 01:01:01 +0000") + txt = Text.new('hello', font: 'test/media/bitstream_vera/vera.ttf') + txt.text = Time.new(1, 1, 1, 1, 1, 1, 1) + expect(txt.text).to eq('0001-01-01 01:01:01 +0000') end it "maps Number to string" do - t = Text.new("hello", font: "test/media/bitstream_vera/vera.ttf") - t.text = 0 - expect(t.text).to eq("0") + txt = Text.new('hello', font: 'test/media/bitstream_vera/vera.ttf') + txt.text = 0 + expect(txt.text).to eq('0') end end describe "#width" do it "is known after creation" do - t = Text.new("Hello Ruby!", font: "test/media/bitstream_vera/vera.ttf") - expect(t.width).to be_between(110, 120) + txt = Text.new('Hello Ruby!', font: 'test/media/bitstream_vera/vera.ttf') + expect(txt.width).to be_between(110, 120) end it "is known after updating" do - t = Text.new("hello", font: "test/media/bitstream_vera/vera.ttf") - t.text = "Hello!" - expect(t.width).to eq(59) + txt = Text.new('hello', font: 'test/media/bitstream_vera/vera.ttf') + txt.text = 'Hello!' + expect(txt.width).to eq(59) end end describe "#height" do it "is known after creation" do - t = Text.new("hello", font: "test/media/bitstream_vera/vera.ttf") - expect(t.height).to eq(24) + txt = Text.new('hello', font: 'test/media/bitstream_vera/vera.ttf') + expect(txt.height).to eq(24) end it "is known after updating" do - t = Text.new("hello", font: "test/media/bitstream_vera/vera.ttf") - t.text = "Good morning world!" - expect(t.height).to eq(24) + txt = Text.new('hello', font: 'test/media/bitstream_vera/vera.ttf') + txt.text = 'Good morning world!' + expect(txt.height).to eq(24) end end describe "#contains?" do it "returns true if point is inside the text" do - t = Text.new("hello", font: "test/media/bitstream_vera/vera.ttf") - t.text = "Hello world!" - expect(t.contains?(t.width / 2, t.height / 2)).to be true + txt = Text.new('hello', font: 'test/media/bitstream_vera/vera.ttf') + txt.text = 'Hello world!' + expect(txt.contains?(txt.width / 2, txt.height / 2)).to be true end it "returns false if point is outside the text" do - t = Text.new("hello", font: "test/media/bitstream_vera/vera.ttf") - t.text = "Hello world!" - expect(t.contains?( - t.width / 2, t.height / 2)).to be false - expect(t.contains?( t.width / 2, - t.height / 2)).to be false - expect(t.contains?(3 * t.width / 2, t.height / 2)).to be false - expect(t.contains?( t.width / 2, 3 * t.height / 2)).to be false + txt = Text.new('hello', font: 'test/media/bitstream_vera/vera.ttf') + txt.text = 'Hello world!' + expect(txt.contains?( - txt.width / 2, txt.height / 2)).to be false + expect(txt.contains?( txt.width / 2, - txt.height / 2)).to be false + expect(txt.contains?(3 * txt.width / 2, txt.height / 2)).to be false + expect(txt.contains?( txt.width / 2, 3 * txt.height / 2)).to be false end end |
