From: Tom Hughes Date: Tue, 31 Mar 2015 19:48:31 +0000 (+0100) Subject: Allow space as a language separator X-Git-Tag: live~4108 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/650adc10b2fbcbaa9a9fb1827bc3abe1a58fe051?ds=sidebyside Allow space as a language separator The separator is supposed to be comma, so technically having space instead is user error, but it seems to be very common. Fixes #942 --- diff --git a/app/models/user.rb b/app/models/user.rb index d8c5153b1..2ac94b65b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -120,7 +120,7 @@ class User < ActiveRecord::Base end def languages - attribute_present?(:languages) ? self[:languages].split(/ *, */) : [] + attribute_present?(:languages) ? self[:languages].split(/ *[, ] */) : [] end def languages=(languages) diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index 2055faa13..32a4e0387 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -30,7 +30,7 @@ public_user: home_zoom: 12 terms_agreed: "2010-01-01 11:22:33" terms_seen: true - languages: en + languages: "en de" creation_ip: "4.5.6.7" inactive_user: diff --git a/test/models/user_test.rb b/test/models/user_test.rb index 59445aee4..b5a9f45ff 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -200,6 +200,8 @@ class UserTest < ActiveSupport::TestCase user.languages = %w(fr de sl) assert_equal "de", user.preferred_language assert_equal "de", user.preferred_language_from(%w(en sl de es)) + user = users(:public_user) + assert_equal %w(en de), user.languages end def test_visible?