diff options
author | Louise Crow <louise.crow@gmail.com> | 2013-03-19 14:52:55 -0700 |
---|---|---|
committer | Louise Crow <louise.crow@gmail.com> | 2013-03-19 14:52:55 -0700 |
commit | 0adcb32b81002528ea27855e2303118cbe9aefc1 (patch) | |
tree | c0f3efbf627045d9443e6ff3fadcb40e8e85dbdc /spec/lib/ability_spec.rb | |
parent | 844351acd314467dae44af0e10847dfd597fcc03 (diff) | |
parent | f83b917ec2c59da0ce7c27da19b740366da58419 (diff) |
Merge branch 'release/0.8'
Diffstat (limited to 'spec/lib/ability_spec.rb')
-rw-r--r-- | spec/lib/ability_spec.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/spec/lib/ability_spec.rb b/spec/lib/ability_spec.rb new file mode 100644 index 000000000..f075d0f32 --- /dev/null +++ b/spec/lib/ability_spec.rb @@ -0,0 +1,51 @@ +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +describe Ability do + describe ".can_update_request_state?" do + context "old and unclassified request" do + let(:request) { mock_model(InfoRequest, :is_old_unclassified? => true) } + + context "logged out" do + let(:user) { nil } + before(:each) { request.stub!(:is_owning_user?).and_return(false) } + it { Ability::can_update_request_state?(user, request).should be_false } + end + + context "logged in but not owner of request" do + let(:user) { mock_model(User) } + before(:each) { request.stub!(:is_owning_user?).and_return(false) } + + it { Ability::can_update_request_state?(user, request).should be_true } + end + end + + context "new request" do + let(:request) { mock_model(InfoRequest, :is_old_unclassified? => false) } + + context "logged out" do + let(:user) { nil } + before(:each) { request.stub!(:is_owning_user?).and_return(false) } + + it { Ability::can_update_request_state?(user, request).should be_false } + end + + context "logged in" do + let(:user) { mock_model(User) } + + # An owner of a request can also be someone with admin powers + context "as owner of request" do + before(:each) { request.stub!(:is_owning_user?).and_return(true) } + + it { Ability::can_update_request_state?(user, request).should be_true } + end + + context "but not owner of request" do + before(:each) { request.stub!(:is_owning_user?).and_return(false) } + + it { Ability::can_update_request_state?(user, request).should be_false } + end + end + end + end +end + |