backlog 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. data/History.txt +15 -0
  2. data/app/controllers/application.rb +17 -0
  3. data/app/controllers/customers_controller.rb +51 -0
  4. data/app/controllers/estimates_controller.rb +3 -4
  5. data/app/controllers/tasks_controller.rb +20 -32
  6. data/app/helpers/application_helper.rb +11 -2
  7. data/app/helpers/customers_helper.rb +2 -0
  8. data/app/helpers/tasks_helper.rb +69 -0
  9. data/app/views/customers/_form.rhtml +7 -0
  10. data/app/views/customers/edit.rhtml +9 -0
  11. data/app/views/customers/list.rhtml +27 -0
  12. data/app/views/customers/new.rhtml +8 -0
  13. data/app/views/customers/show.rhtml +8 -0
  14. data/app/views/periods/_show_active.rhtml +13 -10
  15. data/app/views/redirect.rjs +1 -0
  16. data/app/views/redirect.rjs~ +0 -0
  17. data/app/views/tasks/_fields_header.rhtml +1 -1
  18. data/app/views/tasks/_form.rhtml +6 -1
  19. data/app/views/tasks/_task.rhtml +3 -3
  20. data/app/views/tasks/finish.rjs +4 -0
  21. data/app/views/tasks/move_to_period.rjs +4 -0
  22. data/app/views/tasks/reopen.rjs +4 -24
  23. data/config/boot.rb +1 -10
  24. data/public/javascripts/builder.js +136 -0
  25. data/public/javascripts/controls.js +486 -354
  26. data/public/javascripts/dragdrop.js +82 -52
  27. data/public/javascripts/effects.js +398 -364
  28. data/public/javascripts/prototype.js +2764 -1095
  29. data/public/javascripts/scriptaculous.js +58 -0
  30. data/public/javascripts/slider.js +275 -0
  31. data/public/javascripts/sound.js +55 -0
  32. data/public/javascripts/unittest.js +568 -0
  33. data/test/functional/backlogs_controller_test.rb +1 -1
  34. data/test/functional/customers_controller_test.rb +93 -0
  35. data/test/functional/tasks_controller_test.rb +4 -8
  36. data/test/functional/work_accounts_controller_test.rb +1 -1
  37. data/test/performance/test_threaded.rb +40 -31
  38. data/test/test_helper.rb +4 -2
  39. metadata +20 -3
  40. data/app/views/tasks/finish_ajax.rjs +0 -25
@@ -5,7 +5,7 @@ require 'backlogs_controller'
5
5
  class BacklogsController; def rescue_action(e) raise e end; end
6
6
 
7
7
  class BacklogsControllerTest < Test::Unit::TestCase
8
- fixtures(*ALL)
8
+ main_scenario
9
9
 
10
10
  def setup
11
11
  @user_controller = UserController.new
@@ -0,0 +1,93 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'customers_controller'
3
+
4
+ # Re-raise errors caught by the controller.
5
+ class CustomersController; def rescue_action(e) raise e end; end
6
+
7
+ class CustomersControllerTest < Test::Unit::TestCase
8
+ fixtures :customers
9
+
10
+ def setup
11
+ @controller = CustomersController.new
12
+ @request = ActionController::TestRequest.new
13
+ @response = ActionController::TestResponse.new
14
+
15
+ @request.session[:user_id] = 1000001
16
+ @first_id = customers(:one).id
17
+ end
18
+
19
+ def test_index
20
+ get :index
21
+ assert_response :success
22
+ assert_template 'list'
23
+ end
24
+
25
+ def test_list
26
+ get :list
27
+
28
+ assert_response :success
29
+ assert_template 'list'
30
+
31
+ assert_not_nil assigns(:customers)
32
+ end
33
+
34
+ def test_show
35
+ get :show, :id => @first_id
36
+
37
+ assert_response :success
38
+ assert_template 'show'
39
+
40
+ assert_not_nil assigns(:customer)
41
+ assert assigns(:customer).valid?
42
+ end
43
+
44
+ def test_new
45
+ get :new
46
+
47
+ assert_response :success
48
+ assert_template 'new'
49
+
50
+ assert_not_nil assigns(:customer)
51
+ end
52
+
53
+ def test_create
54
+ num_customers = Customer.count
55
+
56
+ post :create, :customer => {:name => 'Onkel Skrue'}
57
+
58
+ assert_response :redirect
59
+ assert_redirected_to :action => 'list'
60
+
61
+ assert_equal num_customers + 1, Customer.count
62
+ end
63
+
64
+ def test_edit
65
+ get :edit, :id => @first_id
66
+
67
+ assert_response :success
68
+ assert_template 'edit'
69
+
70
+ assert_not_nil assigns(:customer)
71
+ assert assigns(:customer).valid?
72
+ end
73
+
74
+ def test_update
75
+ post :update, :id => @first_id
76
+ assert_response :redirect
77
+ assert_redirected_to :action => 'show', :id => @first_id
78
+ end
79
+
80
+ def test_destroy
81
+ assert_nothing_raised {
82
+ Customer.find(@first_id)
83
+ }
84
+
85
+ post :destroy, :id => @first_id
86
+ assert_response :redirect
87
+ assert_redirected_to :action => 'list'
88
+
89
+ assert_raise(ActiveRecord::RecordNotFound) {
90
+ Customer.find(@first_id)
91
+ }
92
+ end
93
+ end
@@ -211,8 +211,7 @@ class TasksControllerTest < Test::Unit::TestCase
211
211
 
212
212
  post :move_to_next_period, :id => tasks(:another).id
213
213
 
214
- assert_response :redirect
215
- assert_redirected_to :controller => 'periods', :action => :show, :id => periods(:active)
214
+ assert_response :success
216
215
 
217
216
  after = Task.find(tasks(:another).id)
218
217
  assert_equal tasks(:another).period_id, after.period_id
@@ -229,8 +228,7 @@ class TasksControllerTest < Test::Unit::TestCase
229
228
 
230
229
  post :move_to_next_period, :id => task.id
231
230
 
232
- assert_response :redirect
233
- assert_redirected_to :controller => 'periods', :action => :show, :id => periods(:past)
231
+ assert_response :success
234
232
 
235
233
  after = Task.find(task.id)
236
234
  assert_equal task.period_id, after.period_id
@@ -247,8 +245,7 @@ class TasksControllerTest < Test::Unit::TestCase
247
245
 
248
246
  post :move_to_next_period, :id => tasks(:in_last_period).id
249
247
 
250
- assert_response :redirect
251
- assert_redirected_to :controller => 'periods', :action => :new, :period => {:party_id => 1}
248
+ assert_response :success
252
249
 
253
250
  before.reload
254
251
  assert_equal tasks(:in_last_period).period_id, before.period_id
@@ -263,8 +260,7 @@ class TasksControllerTest < Test::Unit::TestCase
263
260
 
264
261
  post :move_to_next_period, :id => before.id
265
262
 
266
- assert_response :redirect
267
- assert_redirected_to :controller => 'periods', :action => :show, :id => periods(:ancient).id
263
+ assert_response :success
268
264
 
269
265
  after = Task.find(before.id)
270
266
  assert_equal before.period_id, after.period_id
@@ -5,7 +5,7 @@ require 'work_accounts_controller'
5
5
  class WorkAccountsController; def rescue_action(e) raise e end; end
6
6
 
7
7
  class WorkAccountsControllerTest < Test::Unit::TestCase
8
- fixtures(*ALL)
8
+ main_scenario
9
9
 
10
10
  def setup
11
11
  @controller = WorkAccountsController.new
@@ -1,36 +1,45 @@
1
- # TODO (uwe): Start application for test. Don't use production environment...
2
-
3
- runs = 5
4
- no_of_threads = 10
5
- hits_per_thread = 20
6
-
7
- def with_timing title = "Time", count = 1
8
- start = Time.now
9
- yield
10
- stop = Time.now
11
- duration = stop-start
12
- puts "#{title}: #{duration}, #{count/(duration) if count}"
13
- duration
14
- end
1
+ require File.dirname(__FILE__) + '/../test_helper'
15
2
 
16
- def hit
17
- path = 'parties/burn_down_chart/1'
18
- system 'GET http://localhost:3000/#{path} >/dev/null'
19
- #system 'GET http://localhost:8080/backlog/#{path} >/dev/null'
20
- end
21
-
22
- duration = with_timing("First") {hit}
23
- exit 1 if duration > 5
3
+ # TODO (uwe): Start application for test. Don't use production environment...
24
4
 
25
- runs.times do |run_no|
26
- threads = (1..no_of_threads).map do |i|
27
- Thread.new do
28
- hits_per_thread.times {hit}
5
+ class BacklogsControllerTest < Test::Unit::TestCase
6
+ def test_lots_of_requests
7
+ runs = 5
8
+ no_of_threads = 10
9
+ hits_per_thread = 20
10
+
11
+ duration = with_timing("First") {hit}
12
+ assert duration <= 5
13
+
14
+ runs.times do |run_no|
15
+ threads = (1..no_of_threads).map do |i|
16
+ Thread.new do
17
+ hits_per_thread.times {hit}
18
+ end
19
+ end
20
+ duration = with_timing((run_no+1)*no_of_threads*hits_per_thread, no_of_threads*hits_per_thread) do
21
+ threads.each {|thread| thread.run}
22
+ threads.each {|thread| thread.join}
23
+ end
24
+ assert duration <= 90
29
25
  end
30
26
  end
31
- duration = with_timing((run_no+1)*no_of_threads*hits_per_thread, no_of_threads*hits_per_thread) do
32
- threads.each {|thread| thread.run}
33
- threads.each {|thread| thread.join}
27
+
28
+ private
29
+
30
+ def with_timing title = "Time", count = 1
31
+ start = Time.now
32
+ yield
33
+ stop = Time.now
34
+ duration = stop-start
35
+ puts "#{title}: #{'%.1f' % duration}s, #{(count/duration).to_i if count}/s"
36
+ duration
37
+ end
38
+
39
+ def hit
40
+ path = 'parties/burn_down_chart/1'
41
+ system 'GET http://localhost:3000/#{path} >/dev/null'
42
+ #system 'GET http://localhost:8080/backlog/#{path} >/dev/null'
34
43
  end
35
- exit 1 if duration > 90
36
- end
44
+
45
+ end
data/test/test_helper.rb CHANGED
@@ -4,8 +4,10 @@ require 'test_help'
4
4
  require 'user_notify'
5
5
 
6
6
  class Test::Unit::TestCase
7
- ALL = [:parties, :users, :groups, :groups_users, :work_accounts, :backlogs, :periods, :tasks, :task_files, :works, :estimates]
8
-
7
+ def self.main_scenario
8
+ fixtures :parties, :users, :groups, :groups_users, :work_accounts, :backlogs, :periods, :tasks, :task_files, :works, :estimates
9
+ end
10
+
9
11
  # Transactional fixtures accelerate your tests by wrapping each test method
10
12
  # in a transaction that's rolled back on completion. This ensures that the
11
13
  # test database remains unchanged so your fixtures don't have to be reloaded
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: backlog
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.12.0
7
- date: 2007-11-06 00:00:00 +01:00
6
+ version: 0.12.1
7
+ date: 2007-11-08 00:00:00 +01:00
8
8
  summary: Application to aid collecting, processing, organizing, reviewing and doing tasks.
9
9
  require_paths:
10
10
  - lib
@@ -79,7 +79,10 @@ files:
79
79
  - public/javascripts/controls.js
80
80
  - public/javascripts/effects.js
81
81
  - public/javascripts/prototype.js
82
+ - public/javascripts/unittest.js
82
83
  - public/javascripts/application.js
84
+ - public/javascripts/sound.js
85
+ - public/javascripts/scriptaculous.js
83
86
  - public/javascripts/zapatec
84
87
  - public/javascripts/zapatec/utils
85
88
  - public/javascripts/zapatec/utils/utils.js
@@ -95,6 +98,8 @@ files:
95
98
  - public/javascripts/zapatec/zpcal/src/calendar-date-core.js
96
99
  - public/javascripts/zapatec/zpcal/src/calendar-core.js
97
100
  - public/javascripts/zapatec/zpcal/src/calendar.js
101
+ - public/javascripts/slider.js
102
+ - public/javascripts/builder.js
98
103
  - public/javascripts/dragdrop.js
99
104
  - "public/Frav\xC3\xA6rsskjema.xls"
100
105
  - public/stylesheets
@@ -159,6 +164,7 @@ files:
159
164
  - test/performance/test.rb
160
165
  - test/performance/test_threaded.rb
161
166
  - test/functional
167
+ - test/functional/customers_controller_test.rb
162
168
  - test/functional/work_accounts_controller_test.rb
163
169
  - test/functional/task_files_controller_test.rb
164
170
  - test/functional/parties_controller_test.rb
@@ -369,6 +375,7 @@ files:
369
375
  - app/controllers
370
376
  - app/controllers/groups_controller.rb
371
377
  - app/controllers/tasks_controller.rb
378
+ - app/controllers/customers_controller.rb
372
379
  - app/controllers/search_controller.rb
373
380
  - app/controllers/estimates_controller.rb
374
381
  - app/controllers/backlogs_controller.rb
@@ -386,6 +393,7 @@ files:
386
393
  - app/helpers/work_accounts_helper.rb
387
394
  - app/helpers/application_helper.rb
388
395
  - app/helpers/tasks_helper.rb
396
+ - app/helpers/customers_helper.rb
389
397
  - app/helpers/task_files_helper.rb
390
398
  - app/helpers/groups_helper.rb
391
399
  - app/helpers/works_helper.rb
@@ -454,9 +462,10 @@ files:
454
462
  - app/views/tasks
455
463
  - app/views/tasks/_backlog_header.rhtml
456
464
  - app/views/tasks/list.rhtml
457
- - app/views/tasks/finish_ajax.rjs
465
+ - app/views/tasks/move_to_period.rjs
458
466
  - app/views/tasks/_form.rhtml
459
467
  - app/views/tasks/_period_header.rhtml
468
+ - app/views/tasks/finish.rjs
460
469
  - app/views/tasks/new.rhtml
461
470
  - app/views/tasks/start_work.rjs
462
471
  - app/views/tasks/_fields_header.rhtml
@@ -465,6 +474,12 @@ files:
465
474
  - app/views/tasks/list_started.rhtml
466
475
  - app/views/tasks/reopen.rjs
467
476
  - app/views/tasks/_task.rhtml
477
+ - app/views/customers
478
+ - app/views/customers/list.rhtml
479
+ - app/views/customers/show.rhtml
480
+ - app/views/customers/_form.rhtml
481
+ - app/views/customers/new.rhtml
482
+ - app/views/customers/edit.rhtml
468
483
  - app/views/works
469
484
  - app/views/works/list.rhtml
470
485
  - app/views/works/_buttons.rhtml
@@ -486,6 +501,7 @@ files:
486
501
  - app/views/user_notify/change_password_en.rhtml
487
502
  - app/views/user_notify/forgot_password_en.rhtml
488
503
  - app/views/user_notify/signup_en.rhtml
504
+ - app/views/redirect.rjs
489
505
  - app/views/periods
490
506
  - app/views/periods/show.rhtml
491
507
  - app/views/periods/_show_active.rhtml
@@ -495,6 +511,7 @@ files:
495
511
  - app/views/periods/_title.rhtml
496
512
  - app/views/periods/_link.rhtml
497
513
  - app/views/periods/_burn_down_chart.rhtml
514
+ - app/views/redirect.rjs~
498
515
  test_files:
499
516
  - test/performance/test_threaded.rb
500
517
  - test/test_helper.rb
@@ -1,25 +0,0 @@
1
- page.replace_html :notice, @message
2
- page.visual_effect(:appear, :notice)
3
-
4
- page.visual_effect :fade, "task_#{@task.id}"
5
- page.remove "task_#{@task.id}"
6
-
7
- if @last_active_in_backlog
8
- page.select('#active_tasks tr').first.remove
9
- page.select('#active_tasks tr').first.remove
10
- end
11
-
12
- if @last_active
13
- page.visual_effect :appear, "no_tasks_message"
14
- end
15
-
16
- unless @first_finished
17
- page.select('#completed_tasks tr').first.remove
18
- end
19
-
20
- page.insert_html :top, :completed_tasks, :partial => '/tasks/task', :locals => {:active => false, :hidden => true, :highlight_task => false}
21
- page.visual_effect :appear, "task_#{@task.id}"
22
-
23
- page.insert_html :top, :completed_tasks, :partial => '/tasks/fields_header', :locals => {:backlog => @task.backlog, :active => false}
24
-
25
- page['burn_down_chart'].src = url_for(:controller => 'periods', :action => :burn_down_chart_thumbnail, :id => @task.period_id, :rnd => rand)