From 89b51dddf90214d19586a22706813d1331d9326a Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Sat, 3 Sep 2016 11:14:06 +0200 Subject: [PATCH 1/3] Add application controller specs for grammatical gender --- .../application_controller_spec.rb | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 7b23695ac..d9501a19c 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -124,4 +124,39 @@ describe ApplicationController, :type => :controller do expect(@controller.send(:after_sign_out_path_for, alice)).to eq(new_user_session_path) end end + + describe "#set_grammatical_gender" do + it "is called on page load" do + expect(@controller).to receive(:set_grammatical_gender) + get :index + end + + context "for inflected locales" do + before do + alice.language = :pl + alice.save + end + + it "returns nil for an empty gender" do + alice.person.profile.gender = "" + alice.person.profile.save + get :index + expect(assigns[:grammatical_gender]).to be_nil + end + + it "returns nil for an unrecognized gender" do + alice.person.profile.gender = "robot" + alice.person.profile.save + get :index + expect(assigns[:grammatical_gender]).to be_nil + end + + it "sets the correct grammatical gender" do + alice.person.profile.gender = "ona" + alice.person.profile.save + get :index + expect(assigns[:grammatical_gender]).to eq(:f) + end + end + end end From ce7d008e09c443ac924347742fdfc9769d8d43b3 Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Sat, 3 Sep 2016 11:14:16 +0200 Subject: [PATCH 2/3] Set grammatical gender in tags controller --- app/controllers/tags_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index a18e934b6..30ddfec00 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -3,7 +3,6 @@ # the COPYRIGHT file. class TagsController < ApplicationController - skip_before_action :set_grammatical_gender before_action :ensure_page, :only => :show helper_method :tag_followed? From 28dd88543ef254d1513b2242782649e9f0ed70a3 Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Sat, 3 Sep 2016 12:54:45 +0200 Subject: [PATCH 3/3] Add cuke for changing the preferred language closes #7053 --- ...e_email.feature => change_settings.feature} | 18 ++++++++++++------ features/step_definitions/web_steps.rb | 6 ++++++ 2 files changed, 18 insertions(+), 6 deletions(-) rename features/desktop/{change_email.feature => change_settings.feature} (62%) diff --git a/features/desktop/change_email.feature b/features/desktop/change_settings.feature similarity index 62% rename from features/desktop/change_email.feature rename to features/desktop/change_settings.feature index c13b53275..f636e29ce 100644 --- a/features/desktop/change_email.feature +++ b/features/desktop/change_settings.feature @@ -1,10 +1,12 @@ @javascript -Feature: Change email +Feature: Change settings - Scenario: Change my email + Background: Given I am signed in When I go to the edit user page - And I fill in the following: + + Scenario: Change my email + When I fill in the following: | user_email | new_email@newplac.es | And I press "Change email" Then I should see "Email changed" @@ -13,9 +15,13 @@ Feature: Change email And my "email" should be "new_email@newplac.es" Scenario: Change my email preferences - Given I am signed in - When I go to the edit user page - And I uncheck "user_email_preferences_mentioned" + When I uncheck "user_email_preferences_mentioned" And I press "change_email_preferences" Then I should see "Email notifications changed" And the "user_email_preferences_mentioned" checkbox should not be checked + + Scenario: Change my preferred language + When I select "polski" from "user_language" + And I press "Change language" + Then I should see "Język został zmieniony" + And "polski" should be selected from "user_language" diff --git a/features/step_definitions/web_steps.rb b/features/step_definitions/web_steps.rb index 7c8da9054..74c1d0b42 100644 --- a/features/step_definitions/web_steps.rb +++ b/features/step_definitions/web_steps.rb @@ -160,6 +160,12 @@ Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do | end end +Then /^"([^"]*)" should be selected from "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector| + with_scope(selector) do + expect(page).to have_select(field, selected: value) + end +end + Then /^the "([^"]*)" bootstrap-switch should be (on|off)$/ do |label, state| if state == "on" expect(page.evaluate_script("$('#{label}').bootstrapSwitch('state')")).to be_truthy