X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/5ed41857f723daff3c9d9de810654a6d5c9b01ba..be541bcab21487560d4974215bd35be74012c492:/test/integration/user_diaries_test.rb diff --git a/test/integration/user_diaries_test.rb b/test/integration/user_diaries_test.rb index 7ec743804..57a98823b 100644 --- a/test/integration/user_diaries_test.rb +++ b/test/integration/user_diaries_test.rb @@ -1,28 +1,48 @@ -require 'test_helper' - -class UserDiariesTest < ActionController::IntegrationTest - fixtures :users, :diary_entries +require "test_helper" +class UserDiariesTest < ActionDispatch::IntegrationTest + # Test the creation of a diary entry, making sure that you are redirected to + # login page when not logged in def test_showing_create_diary_entry - get '/user/test/diary/new' - assert_response 302 - assert_redirected_to :controller => :user, :action => "login", :referer => "/user/test/diary/new" - #follow_redirect - # Now login - #post :login, :user_email => "test@openstreetmap.org", :user_password => "test" - # - #get :controller => :users, :action => :new - #assert_response :success - #print @response.to_yaml - #assert_select "html" do - # assert_select "body" do - # assert_select "div#content" do - # assert_select "form" do - # assert_select "input[id=diary_entry_title]" - # end - # end - # end - #end - + user = create(:user) + + get "/diary/new" + follow_redirect! + follow_redirect! + # We should now be at the login page + assert_response :success + assert_template "sessions/new" + # We can now login + post "/login", :params => { "username" => user.email, "password" => "test", :referer => "/diary/new" } + assert_response :redirect + + # Check that there is some payload alerting the user to the redirect + # and allowing them to get to the page they are being directed to + assert_select "html:root" do + assert_select "body" do + assert_select "a[href='http://www.example.com/diary/new']" + end + end + # Required due to a bug in the rails testing framework + # http://markmail.org/message/wnslvi5xv5moqg7g + @html_document = nil + follow_redirect! + + assert_response :success + assert_template "diary_entries/new" + + # We will make sure that the form exists here, full + # assert testing of the full form should be done in the + # functional tests rather than this integration test + # There are some things that are specific to the integratio + # that need to be tested, which can't be tested in the functional tests + assert_select "div.content-heading", :count => 1 do + assert_select "h1", "New Diary Entry" + end + assert_select "div#content" do + assert_select "form[action='/diary']" do + assert_select "input[id=diary_entry_title]" + end + end end end