X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/5ed41857f723daff3c9d9de810654a6d5c9b01ba..113506bf5159bd06c218653a7d30d5a3c8d5c4e1:/test/integration/user_diaries_test.rb diff --git a/test/integration/user_diaries_test.rb b/test/integration/user_diaries_test.rb index 7ec743804..55e3bce01 100644 --- a/test/integration/user_diaries_test.rb +++ b/test/integration/user_diaries_test.rb @@ -1,28 +1,48 @@ -require 'test_helper' +require "test_helper" -class UserDiariesTest < ActionController::IntegrationTest - fixtures :users, :diary_entries +class UserDiariesTest < ActionDispatch::IntegrationTest + fixtures :users + # 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 - + get_via_redirect "/diary/new" + # We should now be at the login page + assert_response :success + assert_template "user/login" + # We can now login + post "/login", "username" => "test@openstreetmap.org", "password" => "test", :referer => "/diary/new" + assert_response :redirect + # print @response.body + # 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_entry/edit" + # print @response.body + # print @html_document.to_yaml + + # 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/new']" do + assert_select "input[id=diary_entry_title]" + end + end end end