+ test "user preferences" do
+ user = create(:user)
+ ability = Ability.new create(:user), tokens
+
+ [:read, :read_one, :update, :update_one, :delete_one].each do |act|
+ assert ability.cannot? act, UserPreference
+ end
+
+ ability = Ability.new user, tokens(:allow_read_prefs)
+
+ [:update, :update_one, :delete_one].each do |act|
+ assert ability.cannot? act, UserPreference
+ end
+
+ [:read, :read_one].each do |act|
+ assert ability.can? act, UserPreference
+ end
+
+ ability = Ability.new user, tokens(:allow_write_prefs)
+ [:read, :read_one].each do |act|
+ assert ability.cannot? act, UserPreference
+ end
+
+ [:update, :update_one, :delete_one].each do |act|
+ assert ability.can? act, UserPreference
+ end
+ end
+end
+
+class AdministratorAbilityTest < AbilityTest
+