[Logilogi-svn] SF.net SVN: logilogi:[1637] trunk
Status: Beta
Brought to you by:
wybow
|
From: <wy...@us...> - 2009-11-03 00:35:10
|
Revision: 1637
http://logilogi.svn.sourceforge.net/logilogi/?rev=1637&view=rev
Author: wybow
Date: 2009-11-03 00:30:32 +0000 (Tue, 03 Nov 2009)
Log Message:
-----------
Fixed same link adding twice bug
Modified Paths:
--------------
trunk/app/controllers/application_controller.rb
trunk/app/models/logi.rb
trunk/test/functional/links_controller_test.rb
trunk/test/unit/link_test.rb
Modified: trunk/app/controllers/application_controller.rb
===================================================================
--- trunk/app/controllers/application_controller.rb 2009-11-02 19:52:26 UTC (rev 1636)
+++ trunk/app/controllers/application_controller.rb 2009-11-03 00:30:32 UTC (rev 1637)
@@ -409,9 +409,9 @@
translate_to_view(logi_version.position_ranges)
# '-' reckons with p_r-attributes, so overlap of the same links is removed here
added_link_p_r_list = new_link_position_range_list - old_link_p_r_list
- # gets links that did not exist already at different ranges
- added_link_list = (added_link_p_r_list.collect {|p_r| p_r.link}.uniq) - old_link_list
-
+ # gets links, same objects also still in the added_link_p_r_list
+ added_link_list = (added_link_p_r_list.collect {|p_r| p_r.link}.uniq)
+
added_link_list.each {|added_link|
added_link.user = self.current_user
added_link.from_logi = logi
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-11-02 19:52:26 UTC (rev 1636)
+++ trunk/app/models/logi.rb 2009-11-03 00:30:32 UTC (rev 1637)
@@ -398,8 +398,8 @@
#
def add_links_to_position_ranges(link_p_r_list)
link_p_r_list.each do |link_p_r|
- if self.from_links.include?(link_p_r.link)
- link = self.from_links.detect {|li| li == link_p_r.link}
+ if self.from_links.detect {|li| link_p_r.link.eql?(li)} # eql? uses <=>
+ link = self.from_links.detect {|li| li.eql?(link_p_r.link)}
link_p_r.link = link
link.position_ranges << link_p_r
link.save
Modified: trunk/test/functional/links_controller_test.rb
===================================================================
--- trunk/test/functional/links_controller_test.rb 2009-11-02 19:52:26 UTC (rev 1636)
+++ trunk/test/functional/links_controller_test.rb 2009-11-03 00:30:32 UTC (rev 1637)
@@ -31,19 +31,47 @@
nr_of_l = l.from_links.size
l_v = l.current_logi_version
b_t = l_v.body
- l_l = "Manta" # The inserted link
- new_b_t = b_t[0...49] + "<a title=\"" + l_l + "\">" +
+ new_l_s = "Manta" # The inserted link
+
+ new_b_t = b_t[0...49] + "<a title=\"" + new_l_s + "\">" +
b_t[49...63] + "</a>" + b_t[63...-1]
+
post :create, {:ll_link_string => l.link.to_s,
:body_with_inserts => new_b_t}.merge(self.thorny_ok_hash)
+
assert_response :redirect
assert_equal nr_of_l + 1, l.from_links.size
- manta_l = l.from_links.find_by_requested_tags_string(l_l)
- assert manta_l
- assert_equal l_v.raw_title.size + 49, manta_l.position_ranges.first.first
- assert_equal l_v.raw_title.size + 63, manta_l.position_ranges.first.last
+ new_l = l.from_links.find_by_requested_tags_string(new_l_s)
+ assert new_l
+ assert_equal l_v.raw_title.size + 49, new_l.position_ranges.first.first
+ assert_equal l_v.raw_title.size + 63, new_l.position_ranges.first.last
end
+ def test_create_second_link_to_same_tags
+ l = logis(:logi_logi)
+ old_link = links(:tag)
+ nr_of_l = l.from_links.size
+ l_v = l.current_logi_version
+ b_t = l_v.body
+ new_l_s = old_link.to_s # The inserted link
+
+ new_b_t = b_t[0...89] + "<a title=\"" + new_l_s + "\">" +
+ b_t[89...100] + "</a>" + b_t[100...-1]
+
+ post :create, {:ll_link_string => l.link.to_s,
+ :body_with_inserts => new_b_t}.merge(self.thorny_ok_hash)
+
+ assert_response :redirect
+ assert_equal nr_of_l, l.from_links.size
+ new_l = l.from_links.find_by_requested_tags_string(new_l_s)
+ assert new_l
+ assert_equal 2, new_l.position_ranges.size
+ assert_equal 43, new_l.position_ranges.first.first
+ assert_equal 48, new_l.position_ranges.first.last
+ assert_equal l_v.raw_title.size + 89, new_l.position_ranges.last.first
+ assert_equal l_v.raw_title.size + 100, new_l.position_ranges.last.last
+ end
+
def test_destroy
l = logis(:logi_logi)
nr_of_l = l.from_links.size
Modified: trunk/test/unit/link_test.rb
===================================================================
--- trunk/test/unit/link_test.rb 2009-11-02 19:52:26 UTC (rev 1636)
+++ trunk/test/unit/link_test.rb 2009-11-03 00:30:32 UTC (rev 1637)
@@ -289,6 +289,13 @@
# precision
assert_equal -1, second_logi_link.<=>(
second_logi_version_link, :direction => :received)
+
+ # new and old
+ new_l = Link.new_from_s(tag_link.to_s)
+ new_l.resolve
+
+ assert_equal 0, tag_link <=> new_l
+ assert tag_link.eql?(new_l)
end
### Resolving
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|