[#604] Add basic WikiPageDrop

This commit is contained in:
Eric Davis 2011-05-03 13:25:41 -07:00 committed by Holger Just
parent 91914cb877
commit 6f8d8c4105
3 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,3 @@
class WikiPageDrop < BaseDrop
allowed_methods :title
end

View File

@ -53,6 +53,10 @@ class WikiPage < ActiveRecord::Base
end
end
def to_liquid
WikiPageDrop.new(self)
end
def visible?(user=User.current)
!user.nil? && user.allowed_to?(:view_wiki_pages, project)
end

View File

@ -0,0 +1,40 @@
require File.expand_path('../../test_helper', __FILE__)
class WikiPageDropTest < ActiveSupport::TestCase
def setup
@project = Project.generate!
@wiki = Wiki.generate(:project => @project)
@wiki_page = WikiPage.generate!(:wiki => @wiki)
User.current = @user = User.generate!
@role = Role.generate!(:permissions => [:view_wiki_pages])
Member.generate!(:principal => @user, :project => @project, :roles => [@role])
@drop = @wiki_page.to_liquid
end
context "drop" do
should "be a WikiPageDrop" do
assert @drop.is_a?(WikiPageDrop), "drop is not a WikiPageDrop"
end
end
context "#title" do
should "return the title of the wiki page" do
assert_equal @wiki_page.title, @drop.title
end
end
should "only load an object if it's visible to the current user" do
assert User.current.logged?
assert @wiki_page.visible?
@private_project = Project.generate!(:is_public => false)
@private_wiki = Wiki.generate!(:project => @private_project)
@private_wiki_page = WikiPage.generate!(:wiki => @private_wiki)
assert !@private_wiki_page.visible?, "WikiPage is visible"
@private_drop = WikiPageDrop.new(@private_wiki_page)
assert_equal nil, @private_drop.instance_variable_get("@object")
assert_equal nil, @private_drop.title
end
end