user_params = params[:user] || {}
@user = User.new
@user.safe_attributes = user_params
+ @user.pref.attributes = params[:pref] if params[:pref]
@user.admin = false
@user.register
if session[:auth_source_registration]
<p><%= f.text_field :firstname, :required => true %></p>
<p><%= f.text_field :lastname, :required => true %></p>
<p><%= f.text_field :mail, :required => true %></p>
+<%= labelled_fields_for :pref, @user.pref do |pref_fields| %>
+<p><%= pref_fields.check_box :hide_mail %></p>
+<% end %>
+
<% unless @user.force_default_language? %>
<p><%= f.select :language, lang_options_for_select %></p>
end
end
+ def test_get_register_should_show_hide_mail_preference
+ get :register
+ assert_select 'input[name=?][checked=checked]', 'pref[hide_mail]'
+ end
+
+ def test_get_register_should_show_hide_mail_preference_with_setting_turned_off
+ with_settings :default_users_hide_mail => '0' do
+ get :register
+ assert_select 'input[name=?]:not([checked=checked])', 'pref[hide_mail]'
+ end
+ end
+
# See integration/account_test.rb for the full test
def test_post_register_with_registration_on
with_settings :self_registration => '3' do
end
end
+ def test_post_register_should_create_user_with_hide_mail_preference
+ with_settings :default_users_hide_mail => '0' do
+ user = new_record(User) do
+ post :register, :user => {
+ :login => 'register',
+ :password => 'secret123', :password_confirmation => 'secret123',
+ :firstname => 'John', :lastname => 'Doe',
+ :mail => 'register@example.com'
+ }, :pref => {
+ :hide_mail => '1'
+ }
+ end
+ assert_equal true, user.pref.hide_mail
+ end
+ end
+
def test_get_lost_password_should_display_lost_password_form
get :lost_password
assert_response :success