Revision a5a7bc71
Added by Alon Goldboim over 8 years ago
app/models/bookmark.rb | ||
---|---|---|
attr_accessible :name, :controller, :query, :public
|
||
audited :allow_mass_assignment => true
|
||
|
||
validates :name, :uniqueness => true, :unless => Proc.new{|b| Bookmark.my_bookmarks.where(:name => b.name).empty?}
|
||
validates :name, :uniqueness => {:scope => :controller}, :unless => Proc.new{|b| Bookmark.my_bookmarks.where(:name => b.name).empty?}
|
||
validates :name, :query, :presence => true
|
||
validates :controller, :presence => true, :no_whitespace => true,
|
||
:inclusion => {
|
test/factories/bookmark.rb | ||
---|---|---|
FactoryGirl.define do
|
||
factory :bookmark do
|
||
sequence(:name) { |n| "bookmark_#{n}" }
|
||
query "bar"
|
||
public false
|
||
end
|
||
end
|
test/unit/bookmark_test.rb | ||
---|---|---|
end
|
||
|
||
test "my bookmarks should not contain private bookmarks" do
|
||
enable_login do
|
||
as_user :one do
|
||
assert_equal Bookmark.my_bookmarks.include?(bookmarks(:two)), false
|
||
end
|
||
end
|
||
|
||
test "my bookmarks should contain my private bookmarks" do
|
||
enable_login do
|
||
assert_difference('Bookmark.count') do
|
||
Bookmark.create({:name => "private", :query => "bar", :public => false, :controller => "hosts"})
|
||
end
|
||
assert_equal Bookmark.my_bookmarks.include?(Bookmark.find_by_name("private")), true
|
||
assert_difference('Bookmark.count') do
|
||
Bookmark.create({:name => "private", :query => "bar", :public => false, :controller => "hosts"})
|
||
end
|
||
assert_equal Bookmark.my_bookmarks.include?(Bookmark.find_by_name("private")), true
|
||
end
|
||
|
||
test "my bookmarks should be able to create two bookmarks with same name under different controllers" do
|
||
assert_difference 'Bookmark.count',1 do
|
||
FactoryGirl.create(:bookmark, :name => 'private', :controller => "users")
|
||
bookmark = FactoryGirl.build(:bookmark, :name => 'private', :controller => "hosts")
|
||
assert_valid bookmark
|
||
end
|
||
end
|
||
|
||
... | ... | |
b.controller = "foo bar"
|
||
assert_not b.valid?
|
||
end
|
||
|
||
private
|
||
|
||
def enable_login(&block)
|
||
login = SETTINGS[:login]
|
||
user = User.current
|
||
SETTINGS[:login] = true
|
||
User.current = users(:one)
|
||
yield
|
||
User.current = user
|
||
SETTINGS[:login] = login
|
||
end
|
||
end
|
Also available in: Unified diff
Fixes #11451 - Changed bookmark name to be unique per controller.