[#604] Add basic WikiPageDrop
This commit is contained in:
parent
91914cb877
commit
6f8d8c4105
3
app/drops/wiki_page_drop.rb
Normal file
3
app/drops/wiki_page_drop.rb
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
class WikiPageDrop < BaseDrop
|
||||||
|
allowed_methods :title
|
||||||
|
end
|
@ -53,6 +53,10 @@ class WikiPage < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def to_liquid
|
||||||
|
WikiPageDrop.new(self)
|
||||||
|
end
|
||||||
|
|
||||||
def visible?(user=User.current)
|
def visible?(user=User.current)
|
||||||
!user.nil? && user.allowed_to?(:view_wiki_pages, project)
|
!user.nil? && user.allowed_to?(:view_wiki_pages, project)
|
||||||
end
|
end
|
||||||
|
40
test/unit/wiki_page_drop_test.rb
Normal file
40
test/unit/wiki_page_drop_test.rb
Normal 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
|
Loading…
x
Reference in New Issue
Block a user