spec/rake_spec.rb in cloudinary-1.8.0 vs spec/rake_spec.rb in cloudinary-1.8.1

- old
+ new

@@ -87,19 +87,35 @@ expect(Cloudinary::Static.send(:build_metadata).size).to eq 6 end context 'Cloudinary::Utils.cloudinary_url' do def all_asset_forms_of(public_id) - [public_id, "/#{public_id}", public_id.split('/').last] + [ "/#{public_id}", public_id.split('/').last] end RSpec::Matchers.define :be_asset_mapped_by_cloudinary_url_to do |expected| match do |actual| + actual = [actual] unless actual.respond_to? :all? actual.all? do |public_path| - Cloudinary::Utils.cloudinary_url(public_path, :cloud_name => 'test', :type => 'asset') == expected + @public_path = public_path + @actual = Cloudinary::Utils.cloudinary_url(public_path, :cloud_name => 'test', :type => 'asset') + @actual == expected end end + failure_message do |actual| + "URL for '#{@public_path}' should have been '#{expected}' but was '#{@actual}'.#{ differ.diff_as_string(@actual, expected)}" + end + failure_message_when_negated do |actual| + "URL for '#{@public_path}' should not have been '#{expected}'." + end + def differ + RSpec::Support::Differ.new( + :object_preparer => lambda { |object| RSpec::Matchers::Composable.surface_descriptions_in(object) }, + :color => RSpec::Matchers.configuration.color? + ) + end + end before(:each) do allow(Cloudinary.config).to receive(:static_files).and_return({ 'images' => { @@ -120,22 +136,25 @@ it 'should return Cloudinary asset urls for assets when Cloudinary.config.static_file_support is true' do allow(Cloudinary.config).to receive(:static_file_support).and_return(true) subject.invoke - expect(all_asset_forms_of('images/logo1.png')).to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/image/asset/logo1-7dc60722d4653261648038b579fdb89e.png') - expect(all_asset_forms_of('javascripts/1.js')).to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/raw/asset/1-b01de57adb485efdde843154d030644e.js') - expect(all_asset_forms_of('stylesheets/1.css')).to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/raw/asset/1-f24cc6123afd401ab86d8596cabc619f.css') + expect(['logo1.png', '/images/logo1.png']).to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/image/asset/logo1-7dc60722d4653261648038b579fdb89e.png') + expect('images/logo1.png').not_to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/image/asset/logo1-7dc60722d4653261648038b579fdb89e.png') + expect('1.js').to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/raw/asset/1-b01de57adb485efdde843154d030644e.js') + expect(['javascripts/1.js', '/javascripts/1.js']).not_to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/raw/asset/1-b01de57adb485efdde843154d030644e.js') + expect('1.css').to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/raw/asset/1-f24cc6123afd401ab86d8596cabc619f.css') + expect(['stylesheets/1.css', '/stylesheets/1.css']).not_to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/raw/asset/1-f24cc6123afd401ab86d8596cabc619f.css') # without :type => 'asset' expect(Cloudinary::Utils.cloudinary_url('logo1.png')).not_to include('7dc60722d4653261648038b579fdb89e') end it 'should return Cloudinary asset urls for assets when Cloudinary.config.static_image_support is true (backwards compatibility)' do allow(Cloudinary.config).to receive(:static_image_support).and_return(true) subject.invoke - expect(all_asset_forms_of('images/logo1.png')).to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/image/asset/logo1-7dc60722d4653261648038b579fdb89e.png') + expect(['logo1.png', '/images/logo1.png']).to be_asset_mapped_by_cloudinary_url_to('http://res.cloudinary.com/test/image/asset/logo1-7dc60722d4653261648038b579fdb89e.png') end end end