fda5bcf3f6
Now that we've resolved the issue with the invalid git repository in the parent commit, we can run all of the tests in our CI environment.
85 lines
2.2 KiB
Ruby
85 lines
2.2 KiB
Ruby
# ~*~ encoding: utf-8 ~*~
|
|
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
|
|
|
def load_script(**args)
|
|
settings = {
|
|
:run_silent => true,
|
|
:no_dry_run => true,
|
|
:prefer_relative => true,
|
|
:hyphenate => false,
|
|
:page_file_dir => nil,
|
|
}.merge(args)
|
|
|
|
settings.each do |setting, val|
|
|
variable_name = :"@@#{setting.to_s}"
|
|
|
|
unless Object.class_variable_defined?(variable_name) && Object.class_variable_get(variable_name) == val
|
|
Object.class_variable_set(variable_name, val)
|
|
end
|
|
end
|
|
|
|
script_path = File.expand_path(File.join(File.dirname(__FILE__), '../', 'bin', 'gollum-migrate-tags'))
|
|
|
|
Dir.chdir(@path) do
|
|
load script_path
|
|
end
|
|
end
|
|
|
|
context '4.x -> 5.x tag migrator' do
|
|
include Rack::Test::Methods
|
|
|
|
setup do
|
|
@path = cloned_testpath("examples/lotr_migration.git")
|
|
end
|
|
|
|
test 'repair broken links' do
|
|
# The original contents of Subdir/Foo.md:
|
|
#
|
|
# waa
|
|
# [[Samwi]]
|
|
# [[samwise gamgee.mediaWiki]]
|
|
# [[Samwise Gamgee.mediawiki]]
|
|
# [[Samwise Gamgee]]
|
|
# [[Test|Samwise Gamgee#Anchor]]
|
|
# [[Waaa|Test]]
|
|
# [[Zaa]]
|
|
#
|
|
# The contents will be updated after running the migration script.
|
|
load_script
|
|
|
|
file = ::File.new(::File.join(@path, 'Subdir/Foo.md'), 'r')
|
|
assert_equal <<~FILE_CONTENTS, file.read
|
|
waa
|
|
[[Samwi]]
|
|
[[/Samwise Gamgee.mediawiki]]
|
|
[[/Samwise Gamgee.mediawiki]]
|
|
[[/Samwise Gamgee.md]]
|
|
[[Test|/Samwise Gamgee.md#Anchor]]
|
|
[[Waaa|/Bar/Test.md]]
|
|
[[Subsub/Zaa.md]]
|
|
FILE_CONTENTS
|
|
end
|
|
|
|
test 'change spaced filenames to hyphenated filenames' do
|
|
load_script(hyphenate: true)
|
|
|
|
f = ::File.new(::File.join(@path, 'Home.textile'), 'r')
|
|
output = f.read
|
|
assert_equal true, output.include?('[[Bilbo-Baggins.md]]')
|
|
assert_equal true, output.include?('[[evil|Mordor/Eye-Of-Sauron.md]]')
|
|
end
|
|
|
|
test 'migration with page file dir' do
|
|
load_script(page_file_dir: 'Subdir')
|
|
|
|
f = ::File.new(::File.join(@path, 'Subdir/Foo.md'), 'r')
|
|
output = f.read
|
|
assert_equal true, output.include?('[[Subsub/Zaa.md]]')
|
|
assert_equal true, output.include?('[[Samwi]]')
|
|
end
|
|
|
|
teardown do
|
|
FileUtils.rm_rf(@path)
|
|
end
|
|
end
|