spec/image_spec.rb in psd-1.4.5 vs spec/image_spec.rb in psd-1.5.0
- old
+ new
@@ -1,69 +1,85 @@
require 'spec_helper'
describe 'Image Exporting' do
- before(:each) do
- class PSD::Image
- attr_accessor :pixel_data
- end
+ let(:psd) { PSD.new('spec/files/pixel.psd') }
- @psd = PSD.new('spec/files/pixel.psd')
- end
-
describe "the full preview image" do
it "should successfully parse the image data" do
- @psd.parse!
- expect(@psd).to be_parsed
- expect(@psd.image).to_not be_nil
- expect(@psd.image.width).to eq(1)
- expect(@psd.image.height).to eq(1)
- expect(@psd.image.pixel_data).to eq([ChunkyPNG::Color.rgba(0, 100, 200, 255)])
+ psd.parse!
+ expect(psd).to be_parsed
+ expect(psd.image).to_not be_nil
+ expect(psd.image.width).to eq(1)
+ expect(psd.image.height).to eq(1)
+ expect(psd.image.pixel_data).to eq([ChunkyPNG::Color.rgba(0, 100, 200, 255)])
end
it "should be able to skip to the image" do
- expect(@psd).to_not be_parsed
- expect(@psd.image.width).to eq(1)
- expect(@psd.image.height).to eq(1)
- expect(@psd.image.pixel_data).to eq([ChunkyPNG::Color.rgba(0, 100, 200, 255)])
+ expect(psd).to_not be_parsed
+ expect(psd.image.width).to eq(1)
+ expect(psd.image.height).to eq(1)
+ expect(psd.image.pixel_data).to eq([ChunkyPNG::Color.rgba(0, 100, 200, 255)])
end
describe "as PNG" do
it "should produce a valid PNG object" do
- expect(@psd.image.to_png).to be_an_instance_of(ChunkyPNG::Canvas)
+ expect(psd.image.to_png).to be_an_instance_of(ChunkyPNG::Canvas)
- expect(@psd.image.to_png.width).to eq(1)
- expect(@psd.image.to_png.height).to eq(1)
+ expect(psd.image.to_png.width).to eq(1)
+ expect(psd.image.to_png.height).to eq(1)
expect(
- ChunkyPNG::Color.to_truecolor_alpha_bytes(@psd.image.to_png[0,0])
+ ChunkyPNG::Color.to_truecolor_alpha_bytes(psd.image.to_png[0,0])
).to eq([0, 100, 200, 255])
end
end
end
describe "layer images" do
it "should successfully parse the image data" do
- @psd.options[:parse_layer_images] = true
- @psd.parse!
+ psd.options[:parse_layer_images] = true
+ psd.parse!
- image = @psd.tree.children.first.image
+ image = psd.tree.children.first.image
expect(image.width).to eq(1)
expect(image.height).to eq(1)
expect(image.pixel_data).to eq([ChunkyPNG::Color.rgba(0, 100, 200, 255)])
end
describe "as PNG" do
it "should produce a valid PNG object" do
- @psd.options[:parse_layer_images] = true
- @psd.parse!
+ psd.options[:parse_layer_images] = true
+ psd.parse!
- png = @psd.tree.children.first.image.to_png
+ png = psd.tree.children.first.image.to_png
expect(png).to be_an_instance_of(ChunkyPNG::Canvas)
expect(png.width).to eq(1)
expect(png.height).to eq(1)
expect(
ChunkyPNG::Color.to_truecolor_alpha_bytes(png[0,0])
).to eq([0, 100, 200, 255])
end
+
+ it "memorizes the png instance" do
+ psd.options[:parse_layer_images] = true
+ psd.parse!
+
+ node = psd.tree.children.first
+ png = node.image.to_png
+
+ expect(png).to be_an_instance_of(ChunkyPNG::Canvas)
+ expect(node.image.to_png.__id__).to eq(png.__id__)
+ end
+
+ it "memorizes the png_with_mask instance" do
+ psd = PSD.new('spec/files/path.psd', parse_layer_images: true)
+ psd.parse!
+
+ node = psd.tree.children.first
+ png = node.image.to_png_with_mask
+
+ expect(png).to be_an_instance_of(ChunkyPNG::Canvas)
+ expect(node.image.to_png_with_mask.__id__).to eq(png.__id__)
+ end
end
end
-end
\ No newline at end of file
+end