[Logilogi-svn] SF.net SVN: logilogi:[1553] trunk
Status: Beta
Brought to you by:
wybow
|
From: <wy...@us...> - 2009-08-25 19:36:02
|
Revision: 1553
http://logilogi.svn.sourceforge.net/logilogi/?rev=1553&view=rev
Author: wybow
Date: 2009-08-25 19:35:46 +0000 (Tue, 25 Aug 2009)
Log Message:
-----------
Added test for max logi size
Modified Paths:
--------------
trunk/app/controllers/logis_controller.rb
trunk/app/models/logi.rb
trunk/test/functional/logis_controller_test.rb
Modified: trunk/app/controllers/logis_controller.rb
===================================================================
--- trunk/app/controllers/logis_controller.rb 2009-08-25 16:30:54 UTC (rev 1552)
+++ trunk/app/controllers/logis_controller.rb 2009-08-25 19:35:46 UTC (rev 1553)
@@ -162,7 +162,7 @@
format.html do
@logi, @logi_version = self.update_logi(@logi, params[:logi])
- if @logi.errors.empty? and @logi_version.valid? and
+ if @logi.errors.empty? and @logi.valid? and @logi_version.valid? and
self.thorny_form_free_of_spam?
@logi.update_if_changed(@logi_version)
flash[:notice] = "Successfully saved #{@logi.to_s(:for => :full_show)}"
@@ -179,7 +179,7 @@
:body => entry.content,
:link_string => entry.categories.collect {|c| c.term}.join('/'))
- if @logi.errors.empty? and @logi_version.valid?
+ if @logi.errors.empty? and @logi.valid? and @logi_version.valid?
@logi.update_if_changed(@logi_version)
head :ok
else
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-08-25 16:30:54 UTC (rev 1552)
+++ trunk/app/models/logi.rb 2009-08-25 19:35:46 UTC (rev 1553)
@@ -347,6 +347,9 @@
#
# Saves only the logi if it's tags changed.
#
+ # Note that validation of both the logi and the logi version has to
+ # be done before calling this method.
+ #
def update_if_changed(logi_version)
if self.logi_version_different?(logi_version)
self.logi_versions << logi_version
Modified: trunk/test/functional/logis_controller_test.rb
===================================================================
--- trunk/test/functional/logis_controller_test.rb 2009-08-25 16:30:54 UTC (rev 1552)
+++ trunk/test/functional/logis_controller_test.rb 2009-08-25 19:35:46 UTC (rev 1553)
@@ -79,6 +79,17 @@
assert_equal [Tag.from_s('Logi_Logi'), Tag.from_s('Extra_Main')], l.tags
end
+ def test_create_too_big
+ post :create, {:ll_link_string => 'Manta/Logi_Logi',
+ :logi => {:link_string => "Logi_Logi/Extra_Main",
+ :title => 'K', :body => ('x' * GlobalConfig.maximum_logi_version_size)
+ }}.merge(self.thorny_ok_hash)
+ l = Logi.find_by_text_stack('<h1>K</h1> ' +
+ ('x' * GlobalConfig.maximum_logi_version_size))
+ assert_response :success
+ assert !l
+ end
+
def test_thorny_form
# too early
now = Time.now.to_i.to_s
@@ -155,6 +166,26 @@
assert_equal [Tag.from_s('Logi_Logi'), Tag.from_s('Extra_Main')], l.tags
end
+ def test_update_too_big
+ eduard = users(:eduard_edison)
+ login(eduard)
+ l = logis(:medieval_economics_politics)
+ title = l.current_logi_version.title
+ link = l.link.to_s
+ l_id = l.id
+ l_versions = l.logi_versions.size
+ l.text_stack += 'x' * (GlobalConfig.maximum_logi_size - 4000)
+ l.save
+ post :update, {:ll_link_string => link,
+ :logi => {:link_string => "Logi_Logi/Extra_Main",
+ :title => title, :body => ('y' * 4000) + ' <p>s0-unusu4l</p>'
+ }}.merge(self.thorny_ok_hash)
+ assert_response :success
+ l = Logi.find(l_id) # needed for tags refresh
+ assert l.current_logi_version.body !~ /.* <p>s0-unusu4l<\/p>$/
+ assert_equal l_versions, l.logi_versions.size
+ end
+
def test_destroy
# anonymous users cannot destroy owned logis
i = logis(:sailing)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|