WpTimthumb::Existable specs
This commit is contained in:
@@ -8,5 +8,4 @@ class WpTimthumb < WpItem
|
|||||||
include WpTimthumb::Versionable
|
include WpTimthumb::Versionable
|
||||||
include WpTimthumb::Existable
|
include WpTimthumb::Existable
|
||||||
include WpTimthumb::Output
|
include WpTimthumb::Output
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
class WpTimthumb < WpItem
|
class WpTimthumb < WpItem
|
||||||
module Existable
|
module Existable
|
||||||
|
|
||||||
|
# @param [ Typhoeus::Response ] response
|
||||||
|
# @param [ Hash ] options
|
||||||
|
#
|
||||||
|
# @return [ Boolean ]
|
||||||
def exists_from_response?(response, options = {})
|
def exists_from_response?(response, options = {})
|
||||||
response.code == 400 && response.body =~ /no image specified/i ? true : false
|
response.code == 400 && response.body =~ /no image specified/i ? true : false
|
||||||
end
|
end
|
||||||
|
|||||||
12
spec/lib/common/models/wp_timthumb_spec.rb
Normal file
12
spec/lib/common/models/wp_timthumb_spec.rb
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# encoding: UTF-8
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe WpTimthumb do
|
||||||
|
it_behaves_like 'WpTimthumb::Existable'
|
||||||
|
|
||||||
|
subject(:wp_timthumb) { WpTimthumb.new(uri, options) }
|
||||||
|
let(:uri) { URI.parse('http://example.com/') }
|
||||||
|
let(:options) { {} }
|
||||||
|
|
||||||
|
end
|
||||||
37
spec/shared_examples/wp_timthumb_existable.rb
Normal file
37
spec/shared_examples/wp_timthumb_existable.rb
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# encoding: UTF-8
|
||||||
|
|
||||||
|
shared_examples 'WpTimthumb::Existable' do
|
||||||
|
|
||||||
|
describe 'exists_from_response?' do
|
||||||
|
after do
|
||||||
|
response = Typhoeus::Response.new(@resp_opt)
|
||||||
|
subject.send(:exists_from_response?, response).should == @expected
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the status is not a 400' do
|
||||||
|
it 'returns false' do
|
||||||
|
@resp_opt = { code: 200 }
|
||||||
|
@expected = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the status is a 400' do
|
||||||
|
let(:opt) { { code: 400 } }
|
||||||
|
|
||||||
|
context 'when the body contains "no image specified"' do
|
||||||
|
it 'returns true' do
|
||||||
|
@resp_opt = opt.merge(body: 'The following error(s) occured:<br/>No image specified')
|
||||||
|
@expected = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'otherwise' do
|
||||||
|
it 'returns false' do
|
||||||
|
@resp_opt = opt.merge(body: 'im a fake one, hehe')
|
||||||
|
@expected = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user