| Class | SitesControllerTest |
| In: |
test/functional/sites_controller_test.rb
|
| Parent: | Test::Unit::TestCase |
# File test/functional/sites_controller_test.rb, line 24
24: def setup
25: logger.debug "Test Case: #{name}"
26: @controller = SitesController.new
27: @request = ActionController::TestRequest.new
28: @response = ActionController::TestResponse.new
29: @andy, @george, @tony = users(:andy), users(:george), users(:tony) # admin, cadmin, user
30: @emails = ActionMailer::Base::deliveries
31: @emails.clear
32: get :list
33: end
# File test/functional/sites_controller_test.rb, line 35
35: def teardown
36: [ENV['EPFWIKI_SITES_PATH'], ENV['EPFWIKI_WIKIS_PATH']].each do |p|
37: FileUtils.rm_r(p) if File.exists?(p)
38: File.makedirs(p)
39: end
40: end
# File test/functional/sites_controller_test.rb, line 42
42: def test_index
43: get :index
44: assert_redirected_to :controller => 'login'
45: session['user'] = @tony
46: assert_not_nil(session['user'])
47: end
# File test/functional/sites_controller_test.rb, line 49
49: def test_list
50: get :list
51: assert_redirected_to :controller => 'login'
52: session['user'] = @tony
53: get :list
54: assert_response :success
55: assert_template 'list'
56: assert_not_nil assigns(:baseline_processes)
57: assert_not_nil assigns(:wikis)
58: end
Shows:
# File test/functional/sites_controller_test.rb, line 64
64: def test_new
65: # 1
66: session['user'] = @tony
67: get :new
68: assert_unot_admin_message
69: # 2
70: session['user'] = @andy
71: get :list
72: assert_response :success
73: assert_tag :tag => 'a', :attributes => {:href => "/sites/new"}
74: # 3
75: get :new
76: assert_response :success
77: assert assigns(:site)
78: assert assigns(:baseline_processes)
79: assert assigns(:folders)
80: assert assigns(:folders).empty?
81: assert assigns(:baseline_processes).empty?
82: assert_response :success
83: #post :upload, :site => nil TODO how to test this here
84: #assert_not_nil assigns(:site)
85: #assert_errors
86: #assert_equal "Folder can't be blank, File can't be blank", assigns(:site).errors.full_messages.join(", ")
87: assert_equal 0, Site.count
88: @oup_20060721 = create_oup_20060721
89: @oup_20060728 = create_oup_20060728
90: @oup_20060825 = create_oup_20060825
91: @oup_20060721.destroy
92: @oup_20060728.destroy
93: @oup_20060825.destroy
94: get :new
95: assert_equal ['oup_20060721', 'oup_20060728', 'oup_20060825'].sort, assigns(:folders).sort
96: assigns(:folders).each do |folder|
97: assert_tag :tag => 'option', :content => folder
98: end
99: site_count = Site.count
100: assert session['user'].admin?
101: post :new, :site => {:title => 'oup_20060721', :folder => assigns(:folders)[0], :description => 'test03_new'}
102: assert_not_nil assigns(:baseline_processes)
103: assert_not_nil assigns(:folders)
104: site = assigns(:site)
105: assert_not_nil site
106: assert_no_errors(site)
107: assert site.valid?
108: assert_redirected_to :action => 'list'
109: assert_equal site_count + 1, Site.count
110: assert_equal ::FLASH_RECORD_CREATED, flash['success']
111: end
Shows:
# File test/functional/sites_controller_test.rb, line 116
116: def test_new_wiki
117: @oup_20060721 = create_oup_20060721
118: # 1
119: session['user'] = @tony
120: get :new_wiki
121: assert_unot_admin_message
122: # 2
123: session['user'] = @andy
124: assert @andy.admin?
125: get :new_wiki
126: assert_not_nil assigns(:wiki)
127: assert_field 'wiki_folder'
128: assert_tag :tag => 'textarea', :attributes => {:id => 'wiki_description', :name => 'wiki[description]'}
129: assert_field 'wiki_title'
130: end
Shows
# File test/functional/sites_controller_test.rb, line 181
181: def test_new_wiki_job_daily
182: # 1
183: get :new_wiki
184: session['user'] = @andy
185: #baseline_process = Site.find_by_title('openup0721')
186: #assert_not_nil baseline_process
187: @oup_20060721 = create_oup_20060721
188: post :new_wiki, :wiki => {:folder => 'openup2', :title => 'OpenUP Wiki2', :description => 'Wiki for OpenUP created in tst06_new_wiki2'}
189: openupwiki2 = Site.find_by_folder('openup2')
190: assert_not_nil openupwiki2
191: assert_equal 'Pending', openupwiki2.status
192: # 2
193: @emails.clear
194: update = Update.new(:user => @andy, :baseline_process => @oup_20060721, :wiki => openupwiki2)
195: assert update.save
196: job_daily
197: openupwiki2.reload
198: assert_equal [], Update.find_todo
199: rep_cnt = 1 # daily
200: rep_cnt = 1 if Time.now.wday == 1 # weekly
201: rep_cnt += 1 if Time.now.day == 1 # monthly
202: assert_equal(3+rep_cnt, @emails.size) # scheduled, started, finished
203: assert_equal 'Ready', openupwiki2.status
204: end
Shows:
# File test/functional/sites_controller_test.rb, line 134
134: def test_new_wiki_post
135: @emails.clear
136: # 1
137: get :new_wiki
138: session['user'] = @andy
139: @oup_20060721 = create_oup_20060721
140: post :new_wiki, :wiki => {:folder => 'openup', :title => 'OpenUP Wiki', :description => 'Wiki for OpenUP created in test05_new_wiki_post', :baseline_process => @oup_20060721}
141: assert_redirected_to :action => 'description'
142: assert SitesController::FLASH_WIKI_SITE_CREATED, flash['success']
143: wiki = assigns(:wiki)
144: assert_not_nil wiki
145: # 2
146: end
Shows:
# File test/functional/sites_controller_test.rb, line 261
261: def test_obsolete
262: wiki = create_templates
263: assert wiki.obsolete_on.nil?
264: # 1
265: session['user'] = @george
266: get :obsolete, :id => wiki.id
267: assert_illegal_get
268: # 2
269: session['user'] = @tony
270: get :obsolete, :id => wiki.id
271: assert_unot_admin_message
272: session['user'] = @andy
273: post :obsolete, :id => wiki.id
274: wiki.reload
275: assert !wiki.obsolete_on.nil?
276: assert_equal @andy.id, wiki.obsolete_by
277: end
Shows
# File test/functional/sites_controller_test.rb, line 211
211: def test_update_wiki
212: # 1
213: @oup_20060721 = create_oup_20060721
214: @oupwiki = create_oup_wiki(@oup_20060721)
215: get :description, :id => @oupwiki.id
216: assert_redirected_to :controller => 'login'
217: session['user'] = @tony
218: get :description, :id => @oupwiki.id
219: BaselineProcess.find(:all).each do |bp|
220: assert_match "/sites/update/#{@oupwiki.id}?baseline_process_id=#{bp.id}", @response.body
221: end
222: # 2
223: session['user'] = @tony
224: post :update
225: assert_unot_admin_message
226: session['user'] = @andy
227: cnt = Update.count
228: post :update, :id => @oupwiki.id, :baseline_process_id => @oup_20060721.id
229: assert_equal 1+cnt, Update.count
230: assert_redirected_to :action => 'description', :id => @oupwiki.id
231: # 3
232: assert_equal 1, Update.find_todo.size
233: update = Update.find_todo[0]
234: session['user'] = @tony
235: post :update_cancel, :id => @oupwiki.id , :update_id => update.id
236: assert_unot_admin_message
237: session['user'] = @andy
238: post :update_cancel, :id => @oupwiki.id , :update_id => update.id
239: assert_equal cnt, Update.count
240: assert_equal 0, Update.find_todo.size
241: # 4
242: @emails.clear
243: update = Update.new(:wiki => @oupwiki, :baseline_process => @oup_20060721, :user => @andy)
244: assert update.save
245: assert_equal(1, @emails.size) # scheduled
246: session['user'] = @tony
247: post :update_now, :update_id => update.id
248: assert_unot_admin_message
249: session['user'] = @andy
250: @emails.clear
251: post :update_now, :update_id => update.id
252: assert_equal SitesController::FLASH_WIKI_UPDATE_SUCCESS, flash['success']
253: assert_equal [], Update.find_todo
254: assert_equal(2, @emails.size) # started, created
255: end
Shows
# File test/functional/sites_controller_test.rb, line 151
151: def test_wikify_now
152: @emails.clear
153: get 'list'
154: # 1.
155: session['user'] = @tony
156: @oup_20060721 = create_oup_20060721
157: wiki = Wiki.new(:folder => 'openup', :title => 'OpenUP Wiki', :user_id => session['user'].id)
158: assert wiki.save
159: assert_equal 'Pending', wiki.status
160: update = Update.new(:wiki => wiki, :baseline_process => @oup_20060721, :user => session['user'])
161: assert update.save
162: get :update_now, :update_id => update.id
163: assert_unot_admin_message
164: # 2
165: session['user'] = @andy
166: post :update_now, :update_id => update.id
167: assert_equal(4, @emails.size)
168: assert_equal ["[EPF Wiki - Test Enviroment] SCHEDULED creation new Wiki OpenUP Wiki using Baseline Process oup_20060721",
169: "[EPF Wiki - Test Enviroment] Autorisation Problem Detected",
170: "[EPF Wiki - Test Enviroment] STARTED creating New Wiki OpenUP Wiki using Baseline Process oup_20060721",
171: "[EPF Wiki - Test Enviroment] FINISHED creating new Wiki OpenUP Wiki using Baseline Process oup_20060721"],
172: [@emails[0].subject, @emails[1].subject, @emails[2].subject, @emails[3].subject]
173: assert_equal 'Ready', wiki.status
174: wiki.reload
175: assert_equal wiki.baseline_process, @oup_20060721
176: end