aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStormwind <stormwind@stormwinds-page.de>2013-01-05 18:30:36 +0100
committerStormwind <stormwind@stormwinds-page.de>2013-01-05 18:30:36 +0100
commit3bb53d7343915e1a9f75f5ca4b53d61313b0ef29 (patch)
tree688889e58d9d4c1e84a815442771826abf8dea7e
parent5ca122b84c080c67082eeb5d0571e0baf6a1716e (diff)
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.
-rw-r--r--lib/zero/request/accept_type.rb9
-rw-r--r--spec/unit/request/accepttype/preferred_spec.rb17
2 files changed, 14 insertions, 12 deletions
diff --git a/lib/zero/request/accept_type.rb b/lib/zero/request/accept_type.rb
index 918bf24..a8f5dc9 100644
--- a/lib/zero/request/accept_type.rb
+++ b/lib/zero/request/accept_type.rb
@@ -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).
diff --git a/spec/unit/request/accepttype/preferred_spec.rb b/spec/unit/request/accepttype/preferred_spec.rb
index 1156aa0..ef21e8d 100644
--- a/spec/unit/request/accepttype/preferred_spec.rb
+++ b/spec/unit/request/accepttype/preferred_spec.rb
@@ -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