Project

General

Profile

« Previous | Next » 

Revision a5a7bc71

Added by Alon Goldboim over 8 years ago

Fixes #11451 - Changed bookmark name to be unique per controller.

View differences:

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