From bdcb50641884787ce8c172d70bf7b491fc8e5644 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Thu, 1 Jan 2009 02:38:12 -0600 Subject: [PATCH] Two Bugs 1) Orphaned pages in a Category were not being listed correctly 2) "list" view was not being expired correctly on deletion of orphaned pages. --- app/controllers/web_sweeper.rb | 1 + app/models/page_set.rb | 5 +++-- test/unit/web_test.rb | 8 ++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/controllers/web_sweeper.rb b/app/controllers/web_sweeper.rb index 276a2128..81ebf141 100644 --- a/app/controllers/web_sweeper.rb +++ b/app/controllers/web_sweeper.rb @@ -27,6 +27,7 @@ class WebSweeper < ActionController::Caching::Sweeper expire_cached_summary_pages(record) else expire_cached_page(record.web, record.name) + expire_cached_summary_pages(record.web) end end diff --git a/app/models/page_set.rb b/app/models/page_set.rb index d22a6246..fb0ecf46 100644 --- a/app/models/page_set.rb +++ b/app/models/page_set.rb @@ -67,8 +67,9 @@ class PageSet < Array if never_orphans.include? page.name false else - references = pages_that_reference(page.name) - references.empty? or references == [page] +# references = pages_that_reference(page.name) + references = WikiReference.pages_that_reference(@web, page.name) + references.empty? or references == [page.name] end } end diff --git a/test/unit/web_test.rb b/test/unit/web_test.rb index 3ef65d68..00d1f514 100644 --- a/test/unit/web_test.rb +++ b/test/unit/web_test.rb @@ -79,12 +79,16 @@ class WebTest < Test::Unit::TestCase 'This is an author page, it should not be an orphan', Time.local(2004, 4, 4, 16, 50), 'AlexeyVerkhovsky', test_renderer) self_linked = @web.add_page('SelfLinked', - 'I am SelfLinked and link to EverBeenInLove', + "I am SelfLinked and link to EverBeenInLove\ncategory: fubar", Time.local(2004, 4, 4, 16, 50), 'AnonymousCoward', test_renderer) # page that links to itself, and nobody else links to it must be an orphan assert_equal ['EverBeenHated', 'SelfLinked'], @web.select.orphaned_pages.collect{ |page| page.name }.sort + pages_in_category = @web.select.pages_in_category('fubar') + orphaned_pages = @web.select.orphaned_pages + assert_equal ['SelfLinked'], + (pages_in_category & orphaned_pages).collect{ |page| page.name }.sort end def test_page_names_by_author @@ -98,7 +102,7 @@ class WebTest < Test::Unit::TestCase private def add_sample_pages - @in_love = @web.add_page('EverBeenInLove', 'Who am I me', + @in_love = @web.add_page('EverBeenInLove', "Who am I me\ncategory: fubar", Time.local(2004, 4, 4, 16, 50), 'DavidHeinemeierHansson', test_renderer) @hated = @web.add_page('EverBeenHated', 'I am me EverBeenHated', Time.local(2004, 4, 4, 16, 51), 'DavidHeinemeierHansson', test_renderer)