aboutsummaryrefslogtreecommitdiff
path: root/spec/unit/request/parameter
diff options
context:
space:
mode:
authorGibheer <gibheer@gmail.com>2012-11-29 19:44:12 +0100
committerGibheer <gibheer@gmail.com>2012-11-29 19:44:12 +0100
commit8c7eed073c7afa8f432da84b4cf96bffd3ba2656 (patch)
treee5a57f33139328e71954e31ad21d13de8532fd85 /spec/unit/request/parameter
parent2762f68363d7578ca02b77e4248496c62873d93c (diff)
added custom parameter
Diffstat (limited to 'spec/unit/request/parameter')
-rw-r--r--spec/unit/request/parameter/[]_spec.rb56
-rw-r--r--spec/unit/request/parameter/custom_spec.rb18
2 files changed, 74 insertions, 0 deletions
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