X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/5ed41857f723daff3c9d9de810654a6d5c9b01ba..18c7c4f5d7995a56bf76bf81b86ff607bd27ef21:/test/integration/user_diaries_test.rb diff --git a/test/integration/user_diaries_test.rb b/test/integration/user_diaries_test.rb index 7ec743804..58e70bfd2 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 +class UserDiariesTest < ActionDispatch::IntegrationTest fixtures :users, :diary_entries + # 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