From 8c7eed073c7afa8f432da84b4cf96bffd3ba2656 Mon Sep 17 00:00:00 2001 From: Gibheer Date: Thu, 29 Nov 2012 19:44:12 +0100 Subject: added custom parameter --- spec/unit/request/parameter/[]_spec.rb | 56 ++++++++++++++++++++++++++++++ spec/unit/request/parameter/custom_spec.rb | 18 ++++++++++ 2 files changed, 74 insertions(+) create mode 100644 spec/unit/request/parameter/[]_spec.rb create mode 100644 spec/unit/request/parameter/custom_spec.rb (limited to 'spec/unit/request/parameter') diff --git a/spec/unit/request/parameter/[]_spec.rb b/spec/unit/request/parameter/[]_spec.rb new file mode 100644 index 0000000..1136eae --- /dev/null +++ b/spec/unit/request/parameter/[]_spec.rb @@ -0,0 +1,56 @@ +require 'spec_helper' + +describe Zero::Request::Parameter, '#[]' do + subject { Zero::Request::Parameter.new(env) } + + context 'without parameters' do + let(:env) { EnvGenerator.get('/foo') } + + it 'returns the custom parameter' do + subject['foo'] = 'bar' + expect(subject['foo']).to eq('bar') + end + end + + context 'with query parameters' do + let(:env) { EnvGenerator.get('/foo?foo=bar') } + + it 'returns the query parameter' do + expect(subject['foo']).to eq('bar') + end + + it 'returns the custom parameter' do + subject['foo'] = 'baz' + expect(subject['foo']).to eq('baz') + end + end + + context 'with payload parameters' do + let(:env) do + EnvGenerator.post('/foo', { + :input => 'foo=bar', 'CONTENT_TYPE' => 'multipart/form-data' + }) + end + + it 'returns the payload value' do + expect(subject['foo']).to eq('bar') + end + + it 'returns the custom parameter' do + subject['foo'] = 'baz' + expect(subject['foo']).to eq('baz') + end + end + + context 'with query and payload parameters' do + let(:env) do + EnvGenerator.post('/foo?foo=baz', { + :input => 'foo=bar', 'CONTENT_TYPE' => 'multipart/form-data' + }) + end + + it 'returns the payload parameter' do + expect(subject['foo']).to eq('bar') + end + end +end diff --git a/spec/unit/request/parameter/custom_spec.rb b/spec/unit/request/parameter/custom_spec.rb new file mode 100644 index 0000000..9c720d2 --- /dev/null +++ b/spec/unit/request/parameter/custom_spec.rb @@ -0,0 +1,18 @@ +require 'spec_helper' + +describe Zero::Request::Parameter, '#custom' do + subject { Zero::Request::Parameter.new(env) } + let(:env) { EnvGenerator.get('/foo') } + + it 'returns a set custom parameter' do + subject['foo'] = 'bar' + expect(subject.custom['foo']).to eq('bar') + end + + it 'returns the latest set value' do + subject['foo'] = 'first' + subject['foo'] = 'latest' + + expect(subject.custom['foo']).to eq('latest') + end +end -- cgit v1.2.3-70-g09d2