From c365e2b28ac47e27b8cbbaca27fde59dedafdbca Mon Sep 17 00:00:00 2001 From: Andy Allan Date: Wed, 26 Oct 2016 13:14:52 +0100 Subject: [PATCH] Convert the languages fixtures to a factory For some tests, the existance of an 'en' language is assumed by the database structure (not null default 'en'::character varying) so this can be created in a setup block. --- test/controllers/diary_entry_controller_test.rb | 13 ++++++++++++- test/factories/languages.rb | 7 +++++++ test/fixtures/languages.yml | 16 ---------------- test/models/diary_comment_test.rb | 7 ++++++- test/models/diary_entry_test.rb | 7 ++++++- test/models/language_test.rb | 13 +++---------- test/models/user_test.rb | 6 +++++- 7 files changed, 39 insertions(+), 30 deletions(-) create mode 100644 test/factories/languages.rb delete mode 100644 test/fixtures/languages.yml diff --git a/test/controllers/diary_entry_controller_test.rb b/test/controllers/diary_entry_controller_test.rb index 6ab40e189..6e766460e 100644 --- a/test/controllers/diary_entry_controller_test.rb +++ b/test/controllers/diary_entry_controller_test.rb @@ -1,10 +1,15 @@ require "test_helper" class DiaryEntryControllerTest < ActionController::TestCase - fixtures :users, :user_roles, :languages + fixtures :users, :user_roles include ActionView::Helpers::NumberHelper + def setup + # Create the default language for diary entries + create(:language, :code => "en") + end + ## # test all routes which lead to this controller def test_routes @@ -162,6 +167,7 @@ class DiaryEntryControllerTest < ActionController::TestCase assert_equal new_language_code, UserPreference.where(:user_id => users(:normal_user).id, :k => "diary.default_language").first.v new_language_code = "de" + create(:language, :code => new_language_code) # Now try creating a diary entry in a different language assert_difference "DiaryEntry.count", 1 do @@ -472,6 +478,8 @@ class DiaryEntryControllerTest < ActionController::TestCase end def test_list_language + create(:language, :code => "de") + create(:language, :code => "sl") diary_entry_en = create(:diary_entry, :language_code => "en") diary_entry_en2 = create(:diary_entry, :language_code => "en") diary_entry_de = create(:diary_entry, :language_code => "de") @@ -490,6 +498,7 @@ class DiaryEntryControllerTest < ActionController::TestCase end def test_rss + create(:language, :code => "de") create(:diary_entry, :language_code => "en") create(:diary_entry, :language_code => "en") create(:diary_entry, :language_code => "de") @@ -506,6 +515,7 @@ class DiaryEntryControllerTest < ActionController::TestCase end def test_rss_language + create(:language, :code => "de") create(:diary_entry, :language_code => "en") create(:diary_entry, :language_code => "en") create(:diary_entry, :language_code => "de") @@ -521,6 +531,7 @@ class DiaryEntryControllerTest < ActionController::TestCase # end def test_rss_language_with_no_entries + create(:language, :code => "sl") create(:diary_entry, :language_code => "en") get :rss, :language => "sl", :format => :rss diff --git a/test/factories/languages.rb b/test/factories/languages.rb new file mode 100644 index 000000000..0887c9129 --- /dev/null +++ b/test/factories/languages.rb @@ -0,0 +1,7 @@ +FactoryGirl.define do + factory :language do + code "en" + english_name "English" + native_name "English" + end +end diff --git a/test/fixtures/languages.yml b/test/fixtures/languages.yml deleted file mode 100644 index 7f4a18af6..000000000 --- a/test/fixtures/languages.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html - -en: - code: en - english_name: English - native_name: English - -de: - code: de - english_name: German - native_name: Deutsch - -sl: - code: sl - english_name: Slovenian - native_name: slovenščina diff --git a/test/models/diary_comment_test.rb b/test/models/diary_comment_test.rb index aeb054a02..162cfa833 100644 --- a/test/models/diary_comment_test.rb +++ b/test/models/diary_comment_test.rb @@ -1,7 +1,12 @@ require "test_helper" class DiaryCommentTest < ActiveSupport::TestCase - fixtures :users, :languages + fixtures :users + + def setup + # Create the default language for diary entries + create(:language, :code => "en") + end test "body must be present" do comment = build(:diary_comment, :body => "") diff --git a/test/models/diary_entry_test.rb b/test/models/diary_entry_test.rb index 958ca403f..6c9a75443 100644 --- a/test/models/diary_entry_test.rb +++ b/test/models/diary_entry_test.rb @@ -1,7 +1,12 @@ require "test_helper" class DiaryEntryTest < ActiveSupport::TestCase - fixtures :users, :languages + fixtures :users + + def setup + # Create the default language for diary entries + create(:language, :code => "en") + end def test_diary_entry_validations diary_entry_valid({}) diff --git a/test/models/language_test.rb b/test/models/language_test.rb index cb4c8c631..9b2ef72c1 100644 --- a/test/models/language_test.rb +++ b/test/models/language_test.rb @@ -2,20 +2,13 @@ require "test_helper" class LanguageTest < ActiveSupport::TestCase - fixtures :languages - - def test_language_count - assert_equal 3, Language.count - end - def test_name - assert_equal "English (English)", languages(:en).name - assert_equal "German (Deutsch)", languages(:de).name - assert_equal "Slovenian (slovenščina)", languages(:sl).name + create(:language, :code => "sl", :english_name => "Slovenian", :native_name => "slovenščina") + assert_equal "Slovenian (slovenščina)", Language.find("sl").name end def test_load - assert_equal 3, Language.count + assert_equal 0, Language.count assert_raise ActiveRecord::RecordNotFound do Language.find("zh") end diff --git a/test/models/user_test.rb b/test/models/user_test.rb index 275e95d6c..d480849dd 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -5,7 +5,7 @@ class UserTest < ActiveSupport::TestCase include Rails::Dom::Testing::Assertions::SelectorAssertions api_fixtures - fixtures :languages, :user_roles + fixtures :user_roles def test_invalid_with_empty_attributes user = User.new @@ -191,6 +191,10 @@ class UserTest < ActiveSupport::TestCase end def test_languages + create(:language, :code => "en") + create(:language, :code => "de") + create(:language, :code => "sl") + user = users(:normal_user) assert_equal ["en"], user.languages user.languages = %w(de fr en) -- 2.43.2