more diary entry tests, and a minor fix to the relation member that makes the code...
authorShaun McDonald <shaun@shaunmcdonald.me.uk>
Tue, 11 Nov 2008 18:07:59 +0000 (18:07 +0000)
committerShaun McDonald <shaun@shaunmcdonald.me.uk>
Tue, 11 Nov 2008 18:07:59 +0000 (18:07 +0000)
app/models/relation_member.rb
test/functional/diary_entry_controller_test.rb
test/integration/user_diaries_test.rb

index 1cb6d7131a6d1c434b0a1158a3f65ced3b5b90f6..f3033d1c641494225b15dc77ac108ee623866249 100644 (file)
@@ -10,7 +10,7 @@ class RelationMember < ActiveRecord::Base
   end
 
   def after_initialize
-      self[:member_class] = self.member_type.capitalize if !self.member_type.nil?
+    self[:member_class] = self.member_type.capitalize unless self.member_type.nil?
   end
 
   def before_save
index 31c62fe9fd3d04de67eb5316ee98cb899147c14c..ca9ce4c364ca5f9691ef34b52a82dbf3dc732327 100644 (file)
@@ -17,28 +17,20 @@ class DiaryEntryControllerTest < ActionController::TestCase
     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
   
index 7ec7438041446e6d7543467ea7ff2f154309fbf0..02908e18d44ef7af4299b07377438ca1c088de8e 100644 (file)
@@ -1,28 +1,43 @@
-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