Refactor
diff --git a/source/test/integration/authoring_test.rb b/source/test/integration/authoring_test.rb
index f0c3f70..ee1dbd8 100644
--- a/source/test/integration/authoring_test.rb
+++ b/source/test/integration/authoring_test.rb
@@ -3,58 +3,51 @@
class AuthoringTest < ActionDispatch::IntegrationTest
def setup
- #logger.debug "Test Case: #{name}"
@george = Factory(:user, :name => 'George Shapiro', :password => 'secret', :admin => 'C')
@andy = Factory(:user, :name => 'Andy Kaufman', :password => 'secret', :admin => 'Y')
@cash = Factory(:user, :name => 'Cash Oshman', :password => 'secret', :admin => 'N')
end
def teardown
- #[ENV['EPFWIKI_SITES_PATH'], ENV['EPFWIKI_WIKIS_PATH']].each do |p|
- # FileUtils.rm_r(p) if File.exists?(p)
- # FileUtils.makedirs(p)
- #end
+ [ENV['EPFWIKI_SITES_PATH'], ENV['EPFWIKI_WIKIS_PATH']].each do |p|
+ FileUtils.rm_r(p) if File.exists?(p)
+ FileUtils.makedirs(p)
+ end
end
test "View discussion edit new history" do
Rails.logger.info("Andy creates a version without changing anything")
- post 'login/login', :user => {:email => @andy.email, :password => 'secret'}
+ user = login(@andy)
+
@page1 = WikiPage.find_by_presentation_name('Toolmentor Template')
- assert_page_success @page1
- post 'pages/checkout', :user_version => {:version_id => @page1.current_version.id, :note => 'Changing toolmentor template'}
+ user.post 'pages/checkout', :user_version => {:version_id => @page1.current_version.id, :note => 'Changing toolmentor template'}
assert_not_nil @page1.checkout
assert_redirected_to :action => 'edit', :checkout_id => @page1.checkout.id
- post 'pages/checkin', :checkout_id => @page1.checkout.id # TODO change
+ user.post 'pages/checkin', :checkout_id => @page1.checkout.id # TODO change
Rails.logger.info("George makes a change")
- post 'login/login', :user => {:email => @george.email, :password => 'secret'}
- assert_page_success @page1
+ user = login(@george)
- post 'pages/checkout', :user_version => {:version_id => @page1.current_version.id, :note => 'Change of george'}
+ user.post 'pages/checkout', :user_version => {:version_id => @page1.current_version.id, :note => 'Change of george'}
@page1.reload
assert_not_nil @page1.checkout
assert_equal 'Change of george', @page1.checkout.version.note
assert_redirected_to :action => 'edit', :checkout_id => @page1.checkout.id
- get "pages/edit?checkout_id=#{@page1.checkout.id}"
+ user.get "pages/edit?checkout_id=#{@page1.checkout.id}"
assert_response :success
- assert_page_success @page1
v = @page1.checkout.version
assert_not_nil v
- post 'pages/checkin', :checkout_id => @page1.checkout.id, :html => v.html.gsub("accomplish a piece of work", "REPLACED")
- get @page1.url # e.g. /development_wikis/mywiki/new/guidances/toolmentors/toolmentor_template_E9930C53.html
+ user.post 'pages/checkin', :checkout_id => @page1.checkout.id, :html => v.html.gsub("accomplish a piece of work", "REPLACED")
+ user.get @page1.url # e.g. /development_wikis/mywiki/new/guidances/toolmentors/toolmentor_template_E9930C53.html
assert_match 'REPLACED', @response.body
- assert_page_success @page1
- put 'pages/checkin', :version => {:id => v.id, :note => 'Change of George updated'} # TODO post or put, improve
+ user.put 'pages/checkin', :version => {:id => v.id, :note => 'Change of George updated'} # TODO post or put, improve
assert_redirected_to '/' + v.wiki.rel_path + '/' + v.page.rel_path
v.reload
assert_equal 'Change of George updated', v.note
- assert_page_success @page1
-
-
end
@@ -65,37 +58,36 @@
@oup_wiki = create_oup_wiki(@oup_20060721)
Rails.logger.info("Cash creates a version")
- post 'login/login', :user => {:email => @cash.email, :password => 'secret'}
+ user = login(@cash)
@page1 = WikiPage.find_by_presentation_name('Analyst')
- assert_page_success @page1
- post 'pages/checkout', :user_version => {:version_id => @page1.current_version.id, :note => 'Changing the Analyst'}
+
+ user.post 'pages/checkout', :user_version => {:version_id => @page1.current_version.id, :note => 'Changing the Analyst'}
assert_not_nil @page1.checkout
v = @page1.checkout.version
assert_redirected_to :action => 'edit', :checkout_id => @page1.checkout.id
- post 'pages/checkin', :checkout_id => @page1.checkout.id, :html => v.html.gsub("leads and coordinates requirements elicitation", "REPLACED")
- assert_page_success @page1
+ user.post 'pages/checkin', :checkout_id => @page1.checkout.id, :html => v.html.gsub("leads and coordinates requirements elicitation", "REPLACED")
Rails.logger.info("Andy review")
- post 'login/login', :user => {:email => @andy.email, :password => 'secret'}
- get "/sites/versions/#{@page1.site.id}"
+ user = login(@andy)
+ user.get "/sites/versions/#{@page1.site.id}"
assert_response :success
assert_match 'Changing the Analyst', @response.body
assert_match '<div class="edit-area" id="/versions/note/' + v.id.to_s + '/UserVersion">Changing the Analyst</div>', @response.body
- post "/versions/note/#{v.id}/UserVersion", :format => 'js', :value => 'Changing the Analyst 2'
+ user.post "/versions/note/#{v.id}/UserVersion", :format => 'js', :value => 'Changing the Analyst 2'
assert_response :success
- get "/sites/versions/#{@page1.site.id}"
+ user.get "/sites/versions/#{@page1.site.id}"
assert_match 'Changing the Analyst 2', @response.body
#http://localhost:3000/development_wikis/mywiki/new/guidances/supportingmaterials/supporting_material_template_D3F13112.html_EPFWIKI_DIFF_V0_V1.html
diff_url = "#{@page1.url}.html_EPFWIKI_DIFF_V0_V1.html"
- get diff_url
+ user.get diff_url
assert_response :missing, 'Diff file should not exist'
- get "/versions/diff?id=#{v.id}"
+ user.get "/versions/diff?id=#{v.id}"
assert_response :success
path = "#{Rails.root}/public#{@page1.url}_EPFWIKI_DIFF_V0_V1.html"
#assert_equal '', path
assert File.exists? path
- get diff_url
+ user.get diff_url
diff_html = File.read(path)
assert diff_html.include? "<del>"
assert diff_html.include? "<ins>"
@@ -104,11 +96,11 @@
v = @page1.current_version
v.html = File.read(File.join(Rails.root, 'test', 'integration', 'authoring_test.html')) # this is a file authored by TinyMCE
File.delete(path)
- get "/versions/diff?id=#{v.id}"
+ user.get "/versions/diff?id=#{v.id}"
assert_response :success
path = "#{Rails.root}/public#{@page1.url}_EPFWIKI_DIFF_V0_V1.html"
assert File.exists? path
- get diff_url
+ user.get diff_url
diff_html = File.read(path)
#assert diff_html.include? "<del>This role leads and coordinates requirements elicitation; outlines and delimits the system's functionality; specifies and maintains the detailed system requirements.</del><ins>This role REPLACED; outlines and delimits the system's functionality; specifies and maintains the detailed system requirements.</ins></td>"
@@ -129,19 +121,19 @@
post '/portal/feedback', :feedback =>{"email"=>"onno.van.der.straaten@gmail.com", "text"=>"Some feedback 3"}
assert flash['success'].include?("succesfully sent")
- post 'login/login', :user => {:email => @cash.email, :password => 'secret'}
- get "/sites/feedback/#{w.id}"
+ user = login(@cash)
+ user.get "/sites/feedback/#{w.id}"
assert_response :success
assert !@response.body.include?('Some feedback')
# Admin can see
f = Feedback.find(:first)
- post 'login/login', :user => {:email => @andy.email, :password => 'secret'}
- get "/sites/feedback/#{w.id}"
+ user = login(@andy)
+ user.get "/sites/feedback/#{w.id}"
assert @response.body.include?('id="/review/note/' + f.id.to_s)
# Cadmin can destroy
- post 'login/login', :user => {:email => @george.email, :password => 'secret'}
+ user = login(@george)
request.env['HTTP_REFERER'] = 'http://test.com/go/back'
#@request.env['HTTP_REFERER'] = "http://test.com/sites/feedback/#{w.id}" TODO this should work but doesn't
delete "/feedbacks/#{f.id}",{}, {'HTTP_REFERER' => "/sites/feedback/#{w.id}"}
@@ -151,22 +143,22 @@
# Make reviewer
f = Feedback.find(:first)
assert_nil f.reviewer
- get "/review/assign?class_name=Feedback&div_id=Feedback#{f.id}_reviewer&id=#{f.id}" , :format => 'js'
+ user.get "/review/assign?class_name=Feedback&div_id=Feedback#{f.id}_reviewer&id=#{f.id}" , :format => 'js'
assert_response :success
f.reload
assert_equal @george, f.reviewer
- get "/review/assign?class_name=Feedback&div_id=Feedback#{f.id}_reviewer&id=#{f.id}" , :format => 'js'
+ user.get "/review/assign?class_name=Feedback&div_id=Feedback#{f.id}_reviewer&id=#{f.id}" , :format => 'js'
assert_response :success
f.reload
assert_nil f.reviewer
# Mark done
assert_equal 'N', f.done
- get "/review/toggle_done?class_name=Feedback&id=#{f.id}" , :format => 'js'
+ user.get "/review/toggle_done?class_name=Feedback&id=#{f.id}" , :format => 'js'
assert_response :success
f.reload
assert_equal 'Y', f.done
- get "/review/toggle_done?class_name=Feedback&id=#{f.id}" , :format => 'js'
+ user.get "/review/toggle_done?class_name=Feedback&id=#{f.id}" , :format => 'js'
assert_response :success
f.reload
assert_equal 'N', f.done
@@ -178,17 +170,17 @@
w = Wiki.find(:first)
Rails.logger.info("No uploads")
- post 'login/login', :user => {:email => @andy.email, :password => 'secret'}
- get "sites/uploads/#{w.id}"
+ user = login(@andy)
+ user.get "sites/uploads/#{w.id}"
assert_response :success
Rails.logger.info("Cash creates upload")
- get 'uploads/new'
+ user.get 'uploads/new'
assert_response :success
- post 'uploads', :upload => {:upload_type => 'Image', :description => 'OpenUP PT image',
+ user.post 'uploads', :upload => {:upload_type => 'Image', :description => 'OpenUP PT image',
:file => Rack::Test::UploadedFile.new(Rails.root.join('test/fixtures/files/openup_pt.jpg'), 'image/jpeg')}
assert_redirected_to '/uploads'
- get '/uploads'
+ user.get '/uploads'
assert_response :success
end
@@ -200,32 +192,32 @@
assert_not_nil p
Rails.logger.info("No comments")
- post 'login/login', :user => {:email => @andy.email, :password => 'secret'}
- get "sites/uploads/#{w.id}"
+ user = login(@andy)
+ user.get "sites/uploads/#{w.id}"
assert_response :success
Rails.logger.info("Cash creates some comments")
- get p.url
+ user.get p.url
assert_response :success
- get "#{w.folder}/#{p.id}/discussion"
+ user.get "#{w.folder}/#{p.id}/discussion"
assert_response :success
#http://localhost:3000/pages/view/_development_wikis_mywiki_new_guidances_guidelines_estimating_guideline_templae_BA401F96_html.js?url=http://localhost:3000/development_wikis/mywiki/new/guidances/guidelines/estimating_guideline_templae_BA401F96.html
id = (w.rel_path + '/' + p.rel_path).gsub('/', '_').gsub('.','_') # id allows us to cache the requests (pages)
- get "/pages/view/_#{id}.js?url=#{p.url}", :format => 'js'
+ user.get "/pages/view/_#{id}.js?url=#{p.url}", :format => 'js'
assert_response :success
[1..15].each do |i|
- post "#{w.folder}/#{p.id}/discussion", :comment => {:page_id => p.id, :site_id => w.id, :text => "Comment #{i}" }
+ user.post "#{w.folder}/#{p.id}/discussion", :comment => {:page_id => p.id, :site_id => w.id, :text => "Comment #{i}" }
assert_redirected_to "/#{w.folder}/#{p.id}/discussion"
- get "#{w.folder}/#{p.id}/discussion"
+ user.get "#{w.folder}/#{p.id}/discussion"
assert_response :success
assert @response.body.include? "Comment #{i}"
end
Rails.logger.info("Andy review comments")
- post 'login/login', :user => {:email => @andy.email, :password => 'secret'}
- get "/sites/comments/#{w.id}"
+ user = login(@andy)
+ user.get "/sites/comments/#{w.id}"
assert_response :success
assert @response.body.include? 'Comment 1'
@@ -234,16 +226,16 @@
test "Obsolete" do
w = Wiki.find(:first)
- post 'login/login', :user => {:email => @andy.email, :password => 'secret'}
+ user = login(@andy)
t = Time.now
- post "/sites/obsolete/#{w.id}"
+ user.post "/sites/obsolete/#{w.id}"
assert_response :success
w.reload
assert_equal @andy, User.find(w.obsolete_by)
assert_not_nil w.obsolete_on
- post "/sites/obsolete/#{w.id}"
+ user.post "/sites/obsolete/#{w.id}"
assert_response :success
w.reload
assert_equal nil, w.obsolete_on