Taking care of svn adds and svn deletes for the last 24 hours or so. Boo on me!
This commit is contained in:
parent
ac819d4d68
commit
32d238098e
202
Rakefile
202
Rakefile
|
@ -1,202 +0,0 @@
|
||||||
require 'rake'
|
|
||||||
require 'rake/testtask'
|
|
||||||
require 'rake/rdoctask'
|
|
||||||
|
|
||||||
$VERBOSE = nil
|
|
||||||
TEST_CHANGES_SINCE = Time.now - 600
|
|
||||||
|
|
||||||
desc "Run all the tests on a fresh test database"
|
|
||||||
task :default => [ :test_units, :test_functional ]
|
|
||||||
|
|
||||||
|
|
||||||
desc 'Require application environment.'
|
|
||||||
task :environment do
|
|
||||||
unless defined? RAILS_ROOT
|
|
||||||
require File.dirname(__FILE__) + '/config/environment'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Generate API documentation, show coding stats"
|
|
||||||
task :doc => [ :appdoc, :stats ]
|
|
||||||
|
|
||||||
|
|
||||||
# Look up tests for recently modified sources.
|
|
||||||
def recent_tests(source_pattern, test_path, touched_since = 10.minutes.ago)
|
|
||||||
FileList[source_pattern].map do |path|
|
|
||||||
if File.mtime(path) > touched_since
|
|
||||||
test = "#{test_path}/#{File.basename(path, '.rb')}_test.rb"
|
|
||||||
test if File.exists?(test)
|
|
||||||
end
|
|
||||||
end.compact
|
|
||||||
end
|
|
||||||
|
|
||||||
desc 'Test recent changes.'
|
|
||||||
Rake::TestTask.new(:recent => [ :clone_structure_to_test ]) do |t|
|
|
||||||
since = TEST_CHANGES_SINCE
|
|
||||||
touched = FileList['test/**/*_test.rb'].select { |path| File.mtime(path) > since } +
|
|
||||||
recent_tests('app/models/*.rb', 'test/unit', since) +
|
|
||||||
recent_tests('app/controllers/*.rb', 'test/functional', since)
|
|
||||||
|
|
||||||
t.libs << 'test'
|
|
||||||
t.verbose = true
|
|
||||||
t.test_files = touched.uniq
|
|
||||||
end
|
|
||||||
task :test_recent => [ :clone_structure_to_test ]
|
|
||||||
|
|
||||||
desc "Run the unit tests in test/unit"
|
|
||||||
Rake::TestTask.new("test_units") { |t|
|
|
||||||
t.libs << "test"
|
|
||||||
t.pattern = 'test/unit/**/*_test.rb'
|
|
||||||
t.verbose = true
|
|
||||||
}
|
|
||||||
task :test_units => [ :clone_structure_to_test ]
|
|
||||||
|
|
||||||
desc "Run the functional tests in test/functional"
|
|
||||||
Rake::TestTask.new("test_functional") { |t|
|
|
||||||
t.libs << "test"
|
|
||||||
t.pattern = 'test/functional/**/*_test.rb'
|
|
||||||
t.verbose = true
|
|
||||||
}
|
|
||||||
task :test_functional => [ :clone_structure_to_test ]
|
|
||||||
|
|
||||||
desc "Generate documentation for the application"
|
|
||||||
Rake::RDocTask.new("appdoc") { |rdoc|
|
|
||||||
rdoc.rdoc_dir = 'doc/app'
|
|
||||||
rdoc.title = "Rails Application Documentation"
|
|
||||||
rdoc.options << '--line-numbers --inline-source'
|
|
||||||
rdoc.rdoc_files.include('doc/README_FOR_APP')
|
|
||||||
rdoc.rdoc_files.include('app/**/*.rb')
|
|
||||||
}
|
|
||||||
|
|
||||||
desc "Generate documentation for the Rails framework"
|
|
||||||
Rake::RDocTask.new("apidoc") { |rdoc|
|
|
||||||
rdoc.rdoc_dir = 'doc/api'
|
|
||||||
rdoc.template = "#{ENV['template']}.rb" if ENV['template']
|
|
||||||
rdoc.title = "Rails Framework Documentation"
|
|
||||||
rdoc.options << '--line-numbers --inline-source'
|
|
||||||
rdoc.rdoc_files.include('README')
|
|
||||||
rdoc.rdoc_files.include('CHANGELOG')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/railties/CHANGELOG')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/railties/MIT-LICENSE')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/activerecord/README')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/activerecord/CHANGELOG')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/activerecord/lib/active_record/**/*.rb')
|
|
||||||
rdoc.rdoc_files.exclude('vendor/rails/activerecord/lib/active_record/vendor/*')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionpack/README')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionpack/CHANGELOG')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_controller/**/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_view/**/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionmailer/README')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionmailer/CHANGELOG')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionmailer/lib/action_mailer/base.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/README')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/CHANGELOG')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/api/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/client/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/container/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/dispatcher/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/protocol/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/support/*.rb')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/activesupport/README')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/activesupport/CHANGELOG')
|
|
||||||
rdoc.rdoc_files.include('vendor/rails/activesupport/lib/active_support/**/*.rb')
|
|
||||||
}
|
|
||||||
|
|
||||||
desc "Report code statistics (KLOCs, etc) from the application"
|
|
||||||
task :stats => [ :environment ] do
|
|
||||||
require 'code_statistics'
|
|
||||||
CodeStatistics.new(
|
|
||||||
["Helpers", "app/helpers"],
|
|
||||||
["Controllers", "app/controllers"],
|
|
||||||
["APIs", "app/apis"],
|
|
||||||
["Components", "components"],
|
|
||||||
["Functionals", "test/functional"],
|
|
||||||
["Models", "app/models"],
|
|
||||||
["Units", "test/unit"]
|
|
||||||
).to_s
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Recreate the test databases from the development structure"
|
|
||||||
task :clone_structure_to_test => [ :db_structure_dump, :purge_test_database ] do
|
|
||||||
abcs = ActiveRecord::Base.configurations
|
|
||||||
case abcs["test"]["adapter"]
|
|
||||||
when "mysql"
|
|
||||||
ActiveRecord::Base.establish_connection(:test)
|
|
||||||
ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0')
|
|
||||||
IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split("\n\n").each do |table|
|
|
||||||
ActiveRecord::Base.connection.execute(table)
|
|
||||||
end
|
|
||||||
when "postgresql"
|
|
||||||
ENV['PGHOST'] = abcs["test"]["host"] if abcs["test"]["host"]
|
|
||||||
ENV['PGPORT'] = abcs["test"]["port"].to_s if abcs["test"]["port"]
|
|
||||||
ENV['PGPASSWORD'] = abcs["test"]["password"].to_s if abcs["test"]["password"]
|
|
||||||
`psql -U "#{abcs["test"]["username"]}" -f db/#{RAILS_ENV}_structure.sql #{abcs["test"]["database"]}`
|
|
||||||
when "sqlite", "sqlite3"
|
|
||||||
`#{abcs[RAILS_ENV]["adapter"]} #{abcs["test"]["dbfile"]} < db/#{RAILS_ENV}_structure.sql`
|
|
||||||
when "sqlserver"
|
|
||||||
`osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{RAILS_ENV}_structure.sql`
|
|
||||||
else
|
|
||||||
raise "Unknown database adapter '#{abcs["test"]["adapter"]}'"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Dump the database structure to a SQL file"
|
|
||||||
task :db_structure_dump => :environment do
|
|
||||||
abcs = ActiveRecord::Base.configurations
|
|
||||||
case abcs[RAILS_ENV]["adapter"]
|
|
||||||
when "mysql"
|
|
||||||
ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
|
|
||||||
File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
|
|
||||||
when "postgresql"
|
|
||||||
ENV['PGHOST'] = abcs[RAILS_ENV]["host"] if abcs[RAILS_ENV]["host"]
|
|
||||||
ENV['PGPORT'] = abcs[RAILS_ENV]["port"].to_s if abcs[RAILS_ENV]["port"]
|
|
||||||
ENV['PGPASSWORD'] = abcs[RAILS_ENV]["password"].to_s if abcs[RAILS_ENV]["password"]
|
|
||||||
`pg_dump -U "#{abcs[RAILS_ENV]["username"]}" -s -x -O -f db/#{RAILS_ENV}_structure.sql #{abcs[RAILS_ENV]["database"]}`
|
|
||||||
when "sqlite", "sqlite3"
|
|
||||||
`#{abcs[RAILS_ENV]["adapter"]} #{abcs[RAILS_ENV]["dbfile"]} .schema > db/#{RAILS_ENV}_structure.sql`
|
|
||||||
when "sqlserver"
|
|
||||||
`scptxfr /s #{abcs[RAILS_ENV]["host"]} /d #{abcs[RAILS_ENV]["database"]} /I /f db\\#{RAILS_ENV}_structure.sql /q /A /r`
|
|
||||||
`scptxfr /s #{abcs[RAILS_ENV]["host"]} /d #{abcs[RAILS_ENV]["database"]} /I /F db\ /q /A /r`
|
|
||||||
else
|
|
||||||
raise "Unknown database adapter '#{abcs["test"]["adapter"]}'"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Empty the test database"
|
|
||||||
task :purge_test_database => :environment do
|
|
||||||
abcs = ActiveRecord::Base.configurations
|
|
||||||
case abcs["test"]["adapter"]
|
|
||||||
when "mysql"
|
|
||||||
ActiveRecord::Base.establish_connection(:test)
|
|
||||||
ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"])
|
|
||||||
when "postgresql"
|
|
||||||
ENV['PGHOST'] = abcs["test"]["host"] if abcs["test"]["host"]
|
|
||||||
ENV['PGPORT'] = abcs["test"]["port"].to_s if abcs["test"]["port"]
|
|
||||||
ENV['PGPASSWORD'] = abcs["test"]["password"].to_s if abcs["test"]["password"]
|
|
||||||
`dropdb -U "#{abcs["test"]["username"]}" #{abcs["test"]["database"]}`
|
|
||||||
`createdb -T template0 -U "#{abcs["test"]["username"]}" #{abcs["test"]["database"]}`
|
|
||||||
when "sqlite","sqlite3"
|
|
||||||
File.delete(abcs["test"]["dbfile"]) if File.exist?(abcs["test"]["dbfile"])
|
|
||||||
when "sqlserver"
|
|
||||||
dropfkscript = "#{abcs["test"]["host"]}.#{abcs["test"]["database"]}.DP1".gsub(/\\/,'-')
|
|
||||||
`osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{dropfkscript}`
|
|
||||||
`osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{RAILS_ENV}_structure.sql`
|
|
||||||
else
|
|
||||||
raise "Unknown database adapter '#{abcs["test"]["adapter"]}'"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Clears all *.log files in log/"
|
|
||||||
task :clear_logs => :environment do
|
|
||||||
FileList["log/*.log"].each do |log_file|
|
|
||||||
f = File.open(log_file, "w")
|
|
||||||
f.close
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Migrate the database according to the migrate scripts in db/migrate (only supported on PG/MySQL). A specific version can be targetted with VERSION=x"
|
|
||||||
task :migrate => :environment do
|
|
||||||
ActiveRecord::Migrator.migrate(File.dirname(__FILE__) + '/db/migrate/', ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
|
||||||
end
|
|
15
app/models/page_observer.rb
Normal file
15
app/models/page_observer.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# This class maintains the state of wiki references for newly created or newly deleted pages
|
||||||
|
class PageObserver < ActiveRecord::Observer
|
||||||
|
|
||||||
|
def after_create(page)
|
||||||
|
WikiReference.update_all("link_type = '#{WikiReference::LINKED_PAGE}'",
|
||||||
|
['referenced_page_name = ?', page.name])
|
||||||
|
end
|
||||||
|
|
||||||
|
def before_destroy(page)
|
||||||
|
WikiReference.delete_all ['page_id = ?', page.id]
|
||||||
|
WikiReference.update_all("link_type = '#{WikiReference::WANTED_PAGE}'",
|
||||||
|
['referenced_page_name = ?', page.name])
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
50
app/models/wiki_reference.rb
Normal file
50
app/models/wiki_reference.rb
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
class WikiReference < ActiveRecord::Base
|
||||||
|
|
||||||
|
LINKED_PAGE = 'L'
|
||||||
|
WANTED_PAGE = 'W'
|
||||||
|
INCLUDED_PAGE = 'I'
|
||||||
|
|
||||||
|
belongs_to :page
|
||||||
|
validates_inclusion_of :link_type, :in => [LINKED_PAGE, WANTED_PAGE, INCLUDED_PAGE]
|
||||||
|
|
||||||
|
def self.link_type(web, page_name)
|
||||||
|
web.has_page?(page_name) ? LINKED_PAGE : WANTED_PAGE
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.pages_that_reference(page_name)
|
||||||
|
query = 'SELECT name FROM pages JOIN wiki_references ON pages.id = wiki_references.page_id ' +
|
||||||
|
'WHERE wiki_references.referenced_page_name = ?'
|
||||||
|
names = connection.select_all(sanitize_sql([query, page_name])).map { |row| row['name'] }
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.pages_that_link_to(page_name)
|
||||||
|
query = 'SELECT name FROM pages JOIN wiki_references ON pages.id = wiki_references.page_id ' +
|
||||||
|
'WHERE wiki_references.referenced_page_name = ? ' +
|
||||||
|
"AND wiki_references.link_type in ('#{LINKED_PAGE}', '#{WANTED_PAGE}')"
|
||||||
|
names = connection.select_all(sanitize_sql([query, page_name])).map { |row| row['name'] }
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.pages_that_include(page_name)
|
||||||
|
query = 'SELECT name FROM pages JOIN wiki_references ON pages.id = wiki_references.page_id ' +
|
||||||
|
'WHERE wiki_references.referenced_page_name = ? ' +
|
||||||
|
"AND wiki_references.link_type = '#{INCLUDED_PAGE}'"
|
||||||
|
names = connection.select_all(sanitize_sql([query, page_name])).map { |row| row['name'] }
|
||||||
|
end
|
||||||
|
|
||||||
|
def wiki_link?
|
||||||
|
linked_page? or wanted_page?
|
||||||
|
end
|
||||||
|
|
||||||
|
def linked_page?
|
||||||
|
link_type == LINKED_PAGE
|
||||||
|
end
|
||||||
|
|
||||||
|
def wanted_page?
|
||||||
|
link_type == WANTED_PAGE
|
||||||
|
end
|
||||||
|
|
||||||
|
def included_page?
|
||||||
|
link_type == INCLUDED_PAGE
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
9
db/wiki_references.erbsql
Normal file
9
db/wiki_references.erbsql
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
CREATE TABLE wiki_references (
|
||||||
|
id <%= @pk %>,
|
||||||
|
created_at <%= @datetime %> NOT NULL,
|
||||||
|
updated_at <%= @datetime %> NOT NULL,
|
||||||
|
|
||||||
|
page_id INTEGER NOT NULL,
|
||||||
|
referenced_page_name VARCHAR NOT NULL,
|
||||||
|
link_type CHAR(1) NOT NULL
|
||||||
|
) <%= create_options %>;
|
|
@ -89,7 +89,8 @@ class PageRenderer
|
||||||
def render(options = {})
|
def render(options = {})
|
||||||
result = WikiContent.new(@revision, @@url_generator, options).render!
|
result = WikiContent.new(@revision, @@url_generator, options).render!
|
||||||
WikiReference.delete_all ['page_id = ?', @revision.page_id]
|
WikiReference.delete_all ['page_id = ?', @revision.page_id]
|
||||||
@revision.page.wiki_references.delete
|
|
||||||
|
references = @revision.page.wiki_references
|
||||||
|
|
||||||
wiki_word_chunks = result.find_chunks(WikiChunk::WikiLink)
|
wiki_word_chunks = result.find_chunks(WikiChunk::WikiLink)
|
||||||
wiki_words = wiki_word_chunks.map { |c| ( c.escaped? ? nil : c.page_name ) }.compact.uniq
|
wiki_words = wiki_word_chunks.map { |c| ( c.escaped? ? nil : c.page_name ) }.compact.uniq
|
||||||
|
@ -101,10 +102,14 @@ class PageRenderer
|
||||||
else
|
else
|
||||||
link_type = WikiReference.link_type(@revision.page.web, referenced_page_name)
|
link_type = WikiReference.link_type(@revision.page.web, referenced_page_name)
|
||||||
end
|
end
|
||||||
@revision.page.wiki_references.create({
|
references.create :referenced_page_name => referenced_page_name, :link_type => link_type
|
||||||
:referenced_page_name => referenced_page_name,
|
end
|
||||||
:link_type => link_type
|
|
||||||
})
|
include_chunks = result.find_chunks(Include)
|
||||||
|
includes = include_chunks.map { |c| ( c.escaped? ? nil : c.page_name ) }.compact.uniq
|
||||||
|
includes.each do |included_page_name|
|
||||||
|
references.create :referenced_page_name => included_page_name,
|
||||||
|
:link_type => WikiReference::INCLUDED_PAGE
|
||||||
end
|
end
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
|
|
25
script/reset_references
Normal file
25
script/reset_references
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
ENV['RAILS_ENV'] = ARGV.first || 'development'
|
||||||
|
|
||||||
|
$stderr.puts "Loading Rails for #{ENV['RAILS_ENV']} environment..."
|
||||||
|
require File.dirname(__FILE__) + '/../config/environment'
|
||||||
|
|
||||||
|
class StubUrlGenerator
|
||||||
|
def make_link(*args)
|
||||||
|
'StubLink'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
PageRenderer.setup_url_generator(StubUrlGenerator.new)
|
||||||
|
WikiReference.delete_all
|
||||||
|
|
||||||
|
Web.find_all.each do |web|
|
||||||
|
web.pages.find(:all, :order => 'name').each do |page|
|
||||||
|
$stderr.puts "Processing page '#{page.name}'"
|
||||||
|
begin
|
||||||
|
PageRenderer.new(page.current_revision).display_content
|
||||||
|
rescue => e
|
||||||
|
puts e
|
||||||
|
puts e.backtrace
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
95
test/fixtures/wiki_references.yml
vendored
Normal file
95
test/fixtures/wiki_references.yml
vendored
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
my_way_1:
|
||||||
|
id: 1
|
||||||
|
page_id: 2
|
||||||
|
referenced_page_name: MyWay
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
smart_engine_1:
|
||||||
|
id: 2
|
||||||
|
page_id: 3
|
||||||
|
referenced_page_name: SmartEngine
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
that_way_1:
|
||||||
|
id: 3
|
||||||
|
page_id: 4
|
||||||
|
referenced_page_name: ThatWay
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
home_page_1:
|
||||||
|
id: 4
|
||||||
|
page_id: 1
|
||||||
|
referenced_page_name: HisWay
|
||||||
|
link_type: W
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
home_page_2:
|
||||||
|
id: 5
|
||||||
|
page_id: 1
|
||||||
|
referenced_page_name: MyWay
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
home_page_3:
|
||||||
|
id: 6
|
||||||
|
page_id: 1
|
||||||
|
referenced_page_name: ThatWay
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
home_page_4:
|
||||||
|
id: 7
|
||||||
|
page_id: 1
|
||||||
|
referenced_page_name: SmartEngine
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
first_page_1:
|
||||||
|
id: 8
|
||||||
|
page_id: 6
|
||||||
|
referenced_page_name: HisWay
|
||||||
|
link_type: W
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
first_page_2:
|
||||||
|
id: 9
|
||||||
|
page_id: 6
|
||||||
|
referenced_page_name: MyWay
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
first_page_3:
|
||||||
|
id: 10
|
||||||
|
page_id: 6
|
||||||
|
referenced_page_name: ThatWay
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
first_page_4:
|
||||||
|
id: 11
|
||||||
|
page_id: 6
|
||||||
|
referenced_page_name: OverThere
|
||||||
|
link_type: W
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
||||||
|
|
||||||
|
first_page_5:
|
||||||
|
id: 12
|
||||||
|
page_id: 6
|
||||||
|
referenced_page_name: SmartEngine
|
||||||
|
link_type: L
|
||||||
|
created_at: <%= Time.now %>
|
||||||
|
updated_at: <%= Time.now %>
|
|
@ -326,8 +326,7 @@ class PageRendererTest < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# Tests for the caching of wiki references and categories
|
def test_references_creation_links
|
||||||
def test_references_creation
|
|
||||||
new_page = @web.add_page('NewPage', 'HomePage NewPage',
|
new_page = @web.add_page('NewPage', 'HomePage NewPage',
|
||||||
Time.local(2004, 4, 4, 16, 50), 'AlexeyVerkhovsky', test_renderer)
|
Time.local(2004, 4, 4, 16, 50), 'AlexeyVerkhovsky', test_renderer)
|
||||||
|
|
||||||
|
@ -339,6 +338,16 @@ class PageRendererTest < Test::Unit::TestCase
|
||||||
assert_equal WikiReference::LINKED_PAGE, references[1].link_type
|
assert_equal WikiReference::LINKED_PAGE, references[1].link_type
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_references_creation_includes
|
||||||
|
new_page = @web.add_page('NewPage', '[[!include IncludedPage]]',
|
||||||
|
Time.local(2004, 4, 4, 16, 50), 'AlexeyVerkhovsky', test_renderer)
|
||||||
|
|
||||||
|
references = new_page.wiki_references(true)
|
||||||
|
assert_equal 1, references.size
|
||||||
|
assert_equal 'IncludedPage', references[0].referenced_page_name
|
||||||
|
assert_equal WikiReference::INCLUDED_PAGE, references[0].link_type
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def add_sample_pages
|
def add_sample_pages
|
||||||
|
|
Loading…
Reference in a new issue