[#604] Add basic WikiPageDrop
This commit is contained in:
parent
91914cb877
commit
6f8d8c4105
|
@ -0,0 +1,3 @@
|
|||
class WikiPageDrop < BaseDrop
|
||||
allowed_methods :title
|
||||
end
|
|
@ -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
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue