blob: 0addc864f16f7b394402074ef3d851e8de1d5077 [file] [log] [blame]
require File.dirname(__FILE__) + '/../test_helper'
#--######################################################################
# Copyright (c) 2006 LogicaCMG
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#
# Onno van der Straaten:: initial implementation
#++######################################################################
# {Copyright (c) 2006 LogicaCMG}[link:files/COPYRIGHT.html]
class VersionTest < Test::Unit::TestCase
fixtures :users #, :checkouts, :versions
def setup
@onno = User.find(1)
@onno_cadmin = User.find(5)
@user4 = User.find(4)
@user3 = User.find(3)
end
# Shows:
# 1. we cannot use find_current_version on a baseline process (we cannot create versions)
# 2. find_current_version does not create the baseversion
# 3. or find_current_version does create the baseversion
# 4. shows that the baseversion was prepared correctly using Page.prepare_html_for_editing
def test01_find_current_version
version_count = Version.count
openupwiki = Site.find_by_title('OpenUP Wiki')
openup0825 = Site.find_by_folder(openup0825_folder)
assert_not_nil openupwiki
page = Page.find_by_filename('determine_architectural_feasibility_0oreoclgEdmt3adZL5Dmdw_desc.html')
assert File.exists?(page.path(openupwiki))
html_before = IO.readlines(page.path(openupwiki))
assert_not_nil page
# 1
assert_raise(RuntimeError) {Version.find_current_version(openup0825, page)}
# 2
version = Version.find_current_version(openupwiki, page)
assert version.nil?
assert_equal version_count, Version.count # default not created
# 3
version = Version.find_current_version(openupwiki, page, true)
assert_not_nil version
assert version.save
version.reload
assert version_count + 1, Version.count
assert_equal 0, version.version
if ENV['EPFWIKI_TESTDATA'] == 'test'
#assert_equal "determine_architectural_feasibility_0oreoclgEdmt3adZL5Dmdw_desc.html_EPFWIKI_v0_OUP_20060728.html", version.filename
assert_equal 'determine_architectural_feasibility_0oreoclgEdmt3adZL5Dmdw_desc.html_EPFWIKI_v0_OUP_20060728.html', version.rel_path
else
#assert_equal "determine_architectural_feasibility_0oreoclgEdmt3adZL5Dmdw_desc.html_EPFWIKI_v0_OUP_20060728.html", version.filename
assert_equal 'openup_basic/capabilitypatterns/determine_architectural_feasibility_0oreoclgEdmt3adZL5Dmdw_desc.html_EPFWIKI_v0_OUP_20060728.html', version.rel_path
end
assert_equal 'OUP_20060728', version.baseline.baseline
assert File.exists?(version.path)
# 4
assert File.compare("#{ENV['EPFWIKI_ROOT_DIR']}test/unit/version_test/determine_architectural_feasibility_0oreoclgEdmt3adZL5Dmdw_desc.html_EPFWIKI_v0_OUP_20060728.html", version.path)
end
# Shows:
#
# When there is only the baseversion
# 1. Version.find_current_version creates a baseversion as there are no versions yet! This version is not saved yet!
# 2. a baseversion does not have a previous_version
# 3. this created baseversion is the current version
# 4. when creating version1 using Version.new_basedonversion, the baseversion is the first (0) version
# 5. we can create version2 based on version1
# Creating version2 based on version1
# 6. before changes version2 is equal to version1
# 7. we can rollback changes by creaint version3 based on version1
# 8. create a version using a version from another site, this will overwrite changes
def test02_version_types
openupwiki = Site.find_by_title('OpenUP Wiki')
openup0825 = Site.find_by_folder(openup0825_folder)
assert_not_nil openupwiki
page = Page.find_by_filename('implementation,_0TeDoMlgEdmt3adZL5Dmdw.html')
assert File.exists?(page.path(openupwiki))
baseversion = Version.find_current_version(openupwiki, page, true)
assert_equal 0, baseversion.version #baseversion, not saved yet!
assert baseversion.save
# 1
assert_equal baseversion, baseversion.baseversion
assert_equal 0, baseversion.version
# 2
assert_equal nil, baseversion.previous_version
# 3
assert_equal baseversion, baseversion.current_version
# creating a new version
version1 = Version.new_basedonversion(openupwiki, page, baseversion, @user4)
assert version1.save
version1.reload
version1.html('version1')
# 4
assert_equal baseversion, version1.baseversion
assert_equal 0, version1.baseversion.version
# 5
assert_equal 1, version1.version
# creating version2 based on version1
version2 = Version.new_basedonversion(openupwiki, page, version1, @user4)
assert version2.save
# 6
assert_equal version1.html, version2.html
version2.html('version2')
assert_equal 2, version2.version
# 7
version3 = Version.new_basedonversion(openupwiki, page, version1, @user4)
assert version3.save
assert_equal version3.html, version1.html
end
# Shows:
# 1. cannot checkout to baseline process, only to a Wiki
# 2. checkout to openupwiki2 creates version1, a baseversion is not created as the page doesn't exist openupwiki2
# 3. checkout to openupwiki2 creates version1 and a new baseversion
def test03_checkout_to_other_wiki
openupwiki = Site.find_by_title('OpenUP Wiki')
openupwiki2 = Site.new_wiki(:folder => 'openup2', :title => 'OpenUP Wiki2', :user_id => User.find_central_admin.id, :site_id_baseline_process => baseline_process = Site.find_by_folder_and_site_type(openup0721_folder,'S'))
assert openupwiki2.save
openup0825 = Site.find_by_folder(openup0825_folder)
# 1
page = Page.find_by_filename('implementation,_0TeDoMlgEdmt3adZL5Dmdw.html')
version_source = Version.find_current_version(openupwiki, page, true)
assert_equal 3, version_source.version
version_source.html('version3 from openupwiki')
assert_raise(RuntimeError) {version1 = Version.new_basedonversion(openup0825, page, version_source, @user4)}
# 2
baseversion = Version.find_current_version(openupwiki2, page) # we don't create the baseversion here
assert !File.exists?(page.path(openupwiki2)) # page does not exist in openupwiki2
assert_equal nil, baseversion
version1 = Version.new_basedonversion(openupwiki2, page, version_source, @user4)
assert version1.save
version1.reload
assert_equal 1, version1.version
assert_equal version_source.html, version1.html
assert version1.baseversion.nil?
#assert baseversion.html != version1.html
assert_equal version_source, version1.source_version
# 3
#page = Page.find_by_filename('')
end
def test04_rel_path_root
openupwiki = Site.find_by_title('OpenUP Wiki')
page = Page.find_by_filename('implementation,_0TeDoMlgEdmt3adZL5Dmdw.html')
assert_not_nil openupwiki
assert_not_nil page
version = Version.find_current_version(openupwiki, page)
assert_equal 3, version.version
if !ENV['EPFWIKI_TESTDATA'].blank?
assert_equal "#{ENV['EPFWIKI_WIKIS_FOLDER']}/openup/implementation,_0TeDoMlgEdmt3adZL5Dmdw.html_EPFWIKI_v3_OUP_20060728.html", version.rel_path_root
end
end
def test05_template_test
openupwiki = Site.find_by_title('OpenUP Wiki')
assert_not_nil openupwiki
['Tool Mentor Template.html','Checklist Template.html'].each do |filename|
page = Page.find_by_filename(filename)
assert_not_nil page
page.versions.each do |version|
assert version.template?
end
end
end
end