X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/5ed41857f723daff3c9d9de810654a6d5c9b01ba..55c915cd9fb1a62c773a4fe8f07271a252d19b5a:/test/integration/user_diaries_test.rb diff --git a/test/integration/user_diaries_test.rb b/test/integration/user_diaries_test.rb index 7ec743804..8fcc694e9 100644 --- a/test/integration/user_diaries_test.rb +++ b/test/integration/user_diaries_test.rb @@ -1,28 +1,52 @@ -require 'test_helper' +require File.dirname(__FILE__) + '/../test_helper' class UserDiariesTest < ActionController::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 '/user/test/diary/new' + # We should now be at the login page + assert_response :success + assert_template 'user/login' + # We can now login + post '/login', {'user[email]' => "test@openstreetmap.org", 'user[password]' => "test", :referer => '/user/test/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/user/test/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 "html:root" do + assert_select "body" do + assert_select "div#content" do + assert_select "h1", "New Diary Entry" + assert_select "form[action='/user/#{users(:normal_user).display_name}/diary/new']" do + assert_select "input[id=diary_entry_title]" + end + end + end + end + + end end