63 lines
1.9 KiB
Ruby
63 lines
1.9 KiB
Ruby
require 'rubygems'
|
|
require 'test/unit'
|
|
require 'mocha'
|
|
require 'fakefs/safe'
|
|
require File.dirname(__FILE__) + '/../modules/ImageProcessing.rb'
|
|
|
|
class TestImageProcessing < Test::Unit::TestCase
|
|
def setup
|
|
@instance = Class.new do
|
|
include ImageProcessing
|
|
|
|
attr_accessor :config
|
|
end.new
|
|
end
|
|
|
|
def test_setup_inkscape
|
|
[
|
|
[ {}, [], 'target' ],
|
|
[ { 'width' => 'test' }, [], 'target' ],
|
|
[ { 'width' => 200 }, ['-w 200'], 'target' ],
|
|
[ { 'height' => 'test' }, [], 'target' ],
|
|
[ { 'height' => 200 }, ['-h 200'], 'target' ],
|
|
[ { 'rotate' => 0 }, [], 'target' ],
|
|
[ { 'rotate' => 90 }, [], 'target-pre.png' ],
|
|
[ { 'rotate' => 90, 'width' => 50, 'height' => 75 }, ['-w 75', '-h 50'], 'target-pre.png' ],
|
|
].each do |config, expected_params, expected_target|
|
|
@instance.config = config
|
|
|
|
params, inkscape_target = @instance.setup_inkscape('target')
|
|
|
|
assert_equal expected_params, params
|
|
assert_equal inkscape_target, expected_target
|
|
end
|
|
end
|
|
|
|
def test_handle_inkscape_rotation
|
|
@instance.config = { 'rotate' => 90 }
|
|
@instance.expects(:convert).with(['"target-pre.png"', '-rotate 90', '"target"'])
|
|
|
|
FakeFS do
|
|
FileUtils.touch('target-pre.png')
|
|
@instance.handle_inkscape_rotation('target-pre.png', 'target')
|
|
|
|
assert !(File.exists? 'target-pre.png')
|
|
end
|
|
end
|
|
|
|
def test_convert
|
|
[ false, true ].each do |verbose|
|
|
@instance.expects(:call_system).with('convert ' + (verbose ? '-verbose ' : '') + 'test')
|
|
@instance.convert(['test'], verbose)
|
|
end
|
|
end
|
|
|
|
def test_inkscape
|
|
@instance.expects(:call_system).with('inkscape -e "new-target" -y 1.0 -w 200 "input"')
|
|
@instance.expects(:handle_inkscape_rotation).with('new-target', 'target')
|
|
@instance.expects(:setup_inkscape).returns([['-w 200'], 'new-target'])
|
|
|
|
@instance.inkscape('input', 'target')
|
|
end
|
|
end
|