Kill almost all mutants in Zero::Request:AcceptType
Killed 13 of 14 mutants. I will see later, how it's possible to kill the last one. I also fixed the return value of "preferred", if the in initialize given string is empty. Fixed the default value here.
This commit is contained in:
parent
5ca122b84c
commit
3bb53d7343
|
@ -8,11 +8,8 @@ module Zero
|
|||
|
||||
# create a new instance of AcceptType
|
||||
def initialize(string)
|
||||
if string.nil?
|
||||
@elements = []
|
||||
else
|
||||
@elements = parse_elements(string)
|
||||
end
|
||||
string = '*/*' if string.nil? or string.empty?
|
||||
@elements = parse_elements(string)
|
||||
end
|
||||
|
||||
# return the preferred type
|
||||
|
@ -30,7 +27,7 @@ module Zero
|
|||
|
||||
# converts the accept string to a useable array
|
||||
# @param string the string containing media ranges and options
|
||||
def parse_elements(string = '*/*')
|
||||
def parse_elements(string)
|
||||
string.
|
||||
gsub(/\s/, '').
|
||||
split(MEDIA_TYPE_SEPERATOR).
|
||||
|
|
|
@ -7,18 +7,23 @@ describe Zero::Request::AcceptType, '#preferred' do
|
|||
let(:foo) { 'text/foo' }
|
||||
let(:lower_quality) { foo + ';q=0.5' }
|
||||
let(:default) { '*/*;q=0.1' }
|
||||
let(:option) { [foo + ';b=23', html].join(',') }
|
||||
let(:simple_accept) { [html, json].join(',') }
|
||||
let(:quality_accept) { [html, lower_quality, default].join(',') }
|
||||
let(:random_accept) { [lower_quality, default, html].join(',') }
|
||||
let(:lower_accept) { [lower_quality, default].join(',') }
|
||||
|
||||
context 'without mapping' do
|
||||
it { subject.new(html).preferred.should == html }
|
||||
it { subject.new(json).preferred.should == json }
|
||||
it { subject.new(simple_accept).preferred.should == html }
|
||||
it { subject.new(quality_accept).preferred.should == html }
|
||||
it { subject.new(random_accept).preferred.should == html }
|
||||
it { subject.new(lower_accept).preferred.should == foo }
|
||||
it { subject.new(html).preferred.should == html }
|
||||
it { subject.new(json).preferred.should == json }
|
||||
it { subject.new(option).preferred.should == foo }
|
||||
it { subject.new(simple_accept).preferred.should == html }
|
||||
it { subject.new(quality_accept).preferred.should == html }
|
||||
it { subject.new(random_accept).preferred.should == html }
|
||||
it { subject.new(lower_accept).preferred.should == foo }
|
||||
it { subject.new(nil).preferred.should == '*/*' }
|
||||
it { subject.new('').preferred.should == '*/*' }
|
||||
it { subject.new('text / html').preferred.should == html }
|
||||
end
|
||||
|
||||
# context 'with mapping' do
|
||||
|
|
Loading…
Reference in New Issue