Replace user_preferences fixture with a factory.
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 26 Oct 2016 09:07:49 +0000 (10:07 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 26 Oct 2016 09:07:49 +0000 (10:07 +0100)
test/controllers/trace_controller_test.rb
test/controllers/user_preference_controller_test.rb
test/factories/user_preferences.rb [new file with mode: 0644]
test/fixtures/user_preferences.yml [deleted file]
test/models/user_preference_test.rb

index 2fec258af4855a2cfe0ecd8a54a3fe6f0ee647ad..5a5234cb5c4b92e6a0caeafbfb3ea4ca1d16ea7c 100644 (file)
@@ -1,7 +1,7 @@
 require "test_helper"
 
 class TraceControllerTest < ActionController::TestCase
-  fixtures :users, :user_preferences, :gpx_files
+  fixtures :users, :gpx_files
   set_fixture_class :gpx_files => Trace
 
   def setup
@@ -455,12 +455,14 @@ class TraceControllerTest < ActionController::TestCase
     assert_redirected_to :controller => :user, :action => :login, :referer => trace_create_path
 
     # Now authenticated as a user with gps.trace.visibility set
+    create(:user_preference, :user => users(:public_user), :k => "gps.trace.visibility", :v => "identifiable")
     get :create, {}, { :user => users(:public_user).id }
     assert_response :success
     assert_template :create
     assert_select "select#trace_visibility option[value=identifiable][selected]", 1
 
     # Now authenticated as a user with gps.trace.public set
+    create(:user_preference, :user => users(:second_public_user), :k => "gps.trace.public", :v => "default")
     get :create, {}, { :user => users(:second_public_user).id }
     assert_response :success
     assert_template :create
@@ -483,6 +485,7 @@ class TraceControllerTest < ActionController::TestCase
     assert_response :forbidden
 
     # Now authenticated
+    create(:user_preference, :user => users(:public_user), :k => "gps.trace.visibility", :v => "identifiable")
     assert_not_equal "trackable", users(:public_user).preferences.where(:k => "gps.trace.visibility").first.v
     post :create, { :trace => { :gpx_file => file, :description => "New Trace", :tagstring => "new,trace", :visibility => "trackable" } }, { :user => users(:public_user).id }
     assert_response :redirect
@@ -710,6 +713,7 @@ class TraceControllerTest < ActionController::TestCase
     assert_response :unauthorized
 
     # Now authenticated
+    create(:user_preference, :user => users(:public_user), :k => "gps.trace.visibility", :v => "identifiable")
     assert_not_equal "trackable", users(:public_user).preferences.where(:k => "gps.trace.visibility").first.v
     basic_authorization(users(:public_user).display_name, "test")
     post :api_create, :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable"
index c8f52b279e9b259e3373fb26f7bac0d3f10336e3..96ba4375c2d6fe59980ff37b9a34d6e98809d48e 100644 (file)
@@ -1,7 +1,7 @@
 require "test_helper"
 
 class UserPreferenceControllerTest < ActionController::TestCase
-  fixtures :users, :user_preferences
+  fixtures :users
 
   ##
   # test all routes which lead to this controller
@@ -47,6 +47,8 @@ class UserPreferenceControllerTest < ActionController::TestCase
     end
 
     # authenticate as a user with preferences
+    user_preference = create(:user_preference, :user => users(:normal_user))
+    user_preference2 = create(:user_preference, :user => users(:normal_user))
     basic_authorization("test@openstreetmap.org", "test")
 
     # try the read again
@@ -56,8 +58,8 @@ class UserPreferenceControllerTest < ActionController::TestCase
     assert_select "osm" do
       assert_select "preferences", :count => 1 do
         assert_select "preference", :count => 2
-        assert_select "preference[k=\"#{user_preferences(:a).k}\"][v=\"#{user_preferences(:a).v}\"]", :count => 1
-        assert_select "preference[k=\"#{user_preferences(:two).k}\"][v=\"#{user_preferences(:two).v}\"]", :count => 1
+        assert_select "preference[k=\"#{user_preference.k}\"][v=\"#{user_preference.v}\"]", :count => 1
+        assert_select "preference[k=\"#{user_preference2.k}\"][v=\"#{user_preference2.v}\"]", :count => 1
       end
     end
   end
@@ -65,6 +67,8 @@ class UserPreferenceControllerTest < ActionController::TestCase
   ##
   # test read_one action
   def test_read_one
+    create(:user_preference, :user => users(:normal_user), :k => "key", :v => "value")
+
     # try a read without auth
     get :read_one, :preference_key => "key"
     assert_response :unauthorized, "should be authenticated"
@@ -86,6 +90,9 @@ class UserPreferenceControllerTest < ActionController::TestCase
   ##
   # test update action
   def test_update
+    create(:user_preference, :user => users(:normal_user), :k => "key", :v => "value")
+    create(:user_preference, :user => users(:normal_user), :k => "some_key", :v => "some_value")
+
     # try a put without auth
     assert_no_difference "UserPreference.count" do
       content "<osm><preferences><preference k='key' v='new_value'/><preference k='new_key' v='value'/></preferences></osm>"
@@ -173,6 +180,8 @@ class UserPreferenceControllerTest < ActionController::TestCase
   ##
   # test delete_one action
   def test_delete_one
+    create(:user_preference, :user => users(:normal_user), :k => "key", :v => "value")
+
     # try a delete without auth
     assert_no_difference "UserPreference.count" do
       delete :delete_one, :preference_key => "key"
diff --git a/test/factories/user_preferences.rb b/test/factories/user_preferences.rb
new file mode 100644 (file)
index 0000000..552cfcd
--- /dev/null
@@ -0,0 +1,9 @@
+FactoryGirl.define do
+  factory :user_preference do
+    sequence(:k) { |n| "Key #{n}" }
+    sequence(:v) { |n| "Value #{n}" }
+
+    # FIXME: needs user factory
+    user_id 1
+  end
+end
diff --git a/test/fixtures/user_preferences.yml b/test/fixtures/user_preferences.yml
deleted file mode 100644 (file)
index 03065a9..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
-
-a:
-  user_id: 1
-  k: "key"
-  v: "value"
-
-two:
-  user_id: 1
-  k: "some_key"
-  v: "some_value"
-
-u2_trace:
-  user_id: 2
-  k: "gps.trace.visibility"
-  v: "identifiable"
-
-u3_trace:
-  user_id: 4
-  k: "gps.trace.public"
-  v: "default"
index d3400bc9d4d8cc2bdba5bf68109435987b0fb1e2..c61bd607dcce10e92e5ab7c85ccb38cf22cf84d4 100644 (file)
@@ -2,19 +2,10 @@ require "test_helper"
 
 class UserPreferenceTest < ActiveSupport::TestCase
   api_fixtures
-  fixtures :user_preferences
-
-  # This checks to make sure that there are two user preferences
-  # stored in the test database.
-  # This test needs to be updated for every addition/deletion from
-  # the fixture file
-  def test_check_count
-    assert_equal 4, UserPreference.count
-  end
 
   # Checks that you cannot add a new preference, that is a duplicate
   def test_add_duplicate_preference
-    up = user_preferences(:a)
+    up = create(:user_preference)
     new_up = UserPreference.new
     new_up.user = users(:normal_user)
     new_up.k = up.k