64 lines
2.1 KiB
Ruby
64 lines
2.1 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Locomotive::Liquid::Filters::Resize do
|
|
|
|
before :each do
|
|
@site = FactoryGirl.create(:site)
|
|
@theme_asset = FactoryGirl.create(:theme_asset, :source => FixturedAsset.open('5k.png'), :site => @site)
|
|
@theme_asset_path = "/sites/#{@theme_asset.site_id}/theme/images/5k.png"
|
|
@asset = FactoryGirl.create(:asset, :source => FixturedAsset.open('5k.png'), :site => @site)
|
|
@asset_url = @asset.source.url
|
|
@asset_path = "/sites/#{@asset.site_id}/assets/#{@asset.id}/5k.png"
|
|
@context = Liquid::Context.new( { }, { 'asset_url' => @asset_url, 'theme_asset' => @theme_asset.to_liquid }, { :site => @site })
|
|
@app = Locomotive::Dragonfly.app
|
|
end
|
|
|
|
describe '#resize' do
|
|
|
|
context 'when an asset url string is given' do
|
|
|
|
before :each do
|
|
@template = Liquid::Template.parse('{{ asset_url | resize: "40x30" }}')
|
|
end
|
|
|
|
it 'should return the location of the resized image' do
|
|
@template.render(@context).should =~ /images\/dynamic\/.*\/5k.png/
|
|
end
|
|
|
|
it 'should use the path in the public folder to generate a location' do
|
|
@template.render(@context).should == @app.fetch_file("public#{@asset_path}").thumb('40x30').url
|
|
end
|
|
|
|
end
|
|
|
|
context 'when a theme asset is given' do
|
|
|
|
before :each do
|
|
@template = Liquid::Template.parse("{{ theme_asset | resize: '300x400' }}")
|
|
end
|
|
|
|
it 'should return the location of the resized image' do
|
|
@template.render(@context).should =~ /images\/dynamic\/.*\/5k.png/
|
|
end
|
|
|
|
it 'should use the path of the theme asset to generate a location' do
|
|
@template.render(@context).should == @app.fetch_file("public#{@theme_asset_path}").thumb('300x400').url
|
|
end
|
|
|
|
end
|
|
|
|
context 'when no resize string is given' do
|
|
|
|
before :each do
|
|
@template = Liquid::Template.parse('{{ asset | resize: }}')
|
|
end
|
|
|
|
it 'should return a liquid error' do
|
|
@template.render(@context).should include 'Liquid error: wrong number of arguments'
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end |