Commit 6005ec894a726cfa54685b703a4ea74a961f3956
Exists in
master
and in
4 other branches
Merge pull request #3392 from hiroponz/fix-non-ascii-char-username
Fix RoutingError when changing username to non ascii char.
Showing
3 changed files
with
33 additions
and
0 deletions
Show diff stats
app/controllers/admin/users_controller.rb
@@ -84,6 +84,8 @@ class Admin::UsersController < Admin::ApplicationController | @@ -84,6 +84,8 @@ class Admin::UsersController < Admin::ApplicationController | ||
84 | format.html { redirect_to [:admin, admin_user], notice: 'User was successfully updated.' } | 84 | format.html { redirect_to [:admin, admin_user], notice: 'User was successfully updated.' } |
85 | format.json { head :ok } | 85 | format.json { head :ok } |
86 | else | 86 | else |
87 | + # restore username to keep form action url. | ||
88 | + admin_user.username = params[:id] | ||
87 | format.html { render action: "edit" } | 89 | format.html { render action: "edit" } |
88 | format.json { render json: admin_user.errors, status: :unprocessable_entity } | 90 | format.json { render json: admin_user.errors, status: :unprocessable_entity } |
89 | end | 91 | end |
features/admin/users.feature
@@ -6,3 +6,11 @@ Feature: Admin Users | @@ -6,3 +6,11 @@ Feature: Admin Users | ||
6 | Scenario: On Admin Users | 6 | Scenario: On Admin Users |
7 | Given I visit admin users page | 7 | Given I visit admin users page |
8 | Then I should see all users | 8 | Then I should see all users |
9 | + | ||
10 | + Scenario: Edit user and change username to non ascii char | ||
11 | + When I visit admin users page | ||
12 | + And Click edit | ||
13 | + And Input non ascii char in username | ||
14 | + And Click save | ||
15 | + Then See username error message | ||
16 | + And Not chenged form action url |
features/steps/admin/admin_users.rb
@@ -8,4 +8,27 @@ class AdminUsers < Spinach::FeatureSteps | @@ -8,4 +8,27 @@ class AdminUsers < Spinach::FeatureSteps | ||
8 | page.should have_content user.name | 8 | page.should have_content user.name |
9 | end | 9 | end |
10 | end | 10 | end |
11 | + | ||
12 | + And 'Click edit' do | ||
13 | + @user = User.first | ||
14 | + find("#edit_user_#{@user.id}").click | ||
15 | + end | ||
16 | + | ||
17 | + And 'Input non ascii char in username' do | ||
18 | + fill_in 'user_username', with: "\u3042\u3044" | ||
19 | + end | ||
20 | + | ||
21 | + And 'Click save' do | ||
22 | + click_button("Save") | ||
23 | + end | ||
24 | + | ||
25 | + Then 'See username error message' do | ||
26 | + within "#error_explanation" do | ||
27 | + page.should have_content "Username" | ||
28 | + end | ||
29 | + end | ||
30 | + | ||
31 | + And 'Not chenged form action url' do | ||
32 | + page.should have_selector %(form[action="/admin/users/#{@user.username}"]) | ||
33 | + end | ||
11 | end | 34 | end |