]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/diary_entry_controller_test.rb
Stub nominatim for reverse lookups in diary tests
[rails.git] / test / controllers / diary_entry_controller_test.rb
index 6ab40e18992a6cff95809204150f95299167ff49..5e53cb6b0cb137c92b4812e8eaf7d54fe0d66a1e 100644 (file)
@@ -1,10 +1,18 @@
 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")
+    # Stub nominatim response for diary entry locations
+    stub_request(:get, %r{^http://nominatim\.openstreetmap\.org/reverse\?})
+      .to_return(:status => 404)
+  end
+
   ##
   # test all routes which lead to this controller
   def test_routes
@@ -162,6 +170,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 +481,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 +501,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 +518,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 +534,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
@@ -552,6 +566,13 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_response :not_found, "Should not be able to get a deleted users diary RSS"
   end
 
+  def test_rss_character_escaping
+    create(:diary_entry, :title => "<script>")
+    get :rss, :format => :rss
+
+    assert_match "<title>&lt;script&gt;</title>", response.body
+  end
+
   def test_view
     # Try a normal entry that should work
     diary_entry = create(:diary_entry, :user => users(:normal_user))