assert_redirected_to :controller => :user, :action => "login", :referer => "/diary_entry/new"
# Now pretend to login by using the session hash, with the
# id of the person we want to login as through session(:user)=user.id
-
- #
get(:new, nil, {'user' => users(:normal_user).id})
assert_response :success
-
- # can't really redirect to the
- #follow_redirect
- # Now login
- #post :login, :user_email => "test@openstreetmap.org", :user_password => "test"
-
- #get :controller => :users, :action => :new
- #assert_response :success
+ #print @response.body
+
#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
+ 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
end
-require 'test_helper'
+require File.dirname(__FILE__) + '/../test_helper'
class UserDiariesTest < ActionController::IntegrationTest
fixtures :users, :diary_entries
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
+
+ assert_select "html:root" do
+ assert_select "body" do
+ assert_select "div#content" do
+ assert_select "h1", "New diary entry"
+ assert_select "form" do
+ assert_select "input[id=diary_entry_title]"
+ end
+ end
+ end
+ end
end
end