rules_engine 0.1.10 → 0.2.0

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 (55) hide show
  1. data/VERSION +1 -1
  2. data/rails_generators/manifests/rules_engine.rb +25 -18
  3. data/rails_generators/manifests/rules_engine.yml +10 -3
  4. data/rails_generators/templates/app/controllers/re_history_controller.rb +15 -0
  5. data/rails_generators/templates/app/controllers/re_plan_workflows_controller.rb +12 -23
  6. data/rails_generators/templates/app/controllers/re_plans_controller.rb +11 -11
  7. data/rails_generators/templates/app/controllers/re_workflow_rules_controller.rb +2 -1
  8. data/rails_generators/templates/app/controllers/re_workflows_controller.rb +7 -7
  9. data/rails_generators/templates/app/helpers/rules_engine_helper.rb +1 -1
  10. data/rails_generators/templates/app/models/re_plan.rb +1 -1
  11. data/rails_generators/templates/app/models/re_rule.rb +1 -2
  12. data/rails_generators/templates/app/models/re_workflow.rb +1 -9
  13. data/rails_generators/templates/app/views/re_history/_index_prepare.html.erb +12 -0
  14. data/rails_generators/templates/app/views/re_history/_index_update.html.erb +20 -0
  15. data/rails_generators/templates/app/views/re_history/_show.html.erb +30 -0
  16. data/rails_generators/templates/app/views/re_history/index.html.erb +11 -0
  17. data/rails_generators/templates/app/views/re_history/index.js.erb +4 -0
  18. data/rails_generators/templates/app/views/re_history/show.html.erb +8 -0
  19. data/rails_generators/templates/app/views/re_history/show.js.erb +4 -0
  20. data/rails_generators/templates/app/views/re_plans/_copy.html.erb +1 -1
  21. data/rails_generators/templates/app/views/re_plans/{re_process.html.erb → history.html.erb} +3 -3
  22. data/rails_generators/templates/app/views/re_plans/history.js.erb +4 -0
  23. data/rails_generators/templates/app/views/re_plans/index.html.erb +2 -2
  24. data/rails_generators/templates/app/views/re_plans/preview.html.erb +0 -1
  25. data/rails_generators/templates/app/views/re_plans/show.html.erb +2 -2
  26. data/rails_generators/templates/app/views/re_workflows/_copy.html.erb +1 -1
  27. data/rails_generators/templates/app/views/re_workflows/index.html.erb +2 -2
  28. data/rails_generators/templates/doc/README.rules_engine +1 -1
  29. data/rails_generators/templates/public/javascripts/rules_engine/re_history_index.js +43 -0
  30. data/rails_generators/templates/public/javascripts/rules_engine/{re_process_show.js → re_history_show.js} +3 -3
  31. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/{re_process → re_history}/error-14.png +0 -0
  32. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/{re_process → re_history}/info-14.png +0 -0
  33. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/{re_process → re_history}/list-25.png +0 -0
  34. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/{re_process → re_history}/success-14.png +0 -0
  35. data/rails_generators/templates/public/stylesheets/rules_engine/screen.css +19 -69
  36. data/rails_generators/templates/spec/controllers/re_application_controller_spec.rb +68 -0
  37. data/rails_generators/templates/spec/controllers/re_history_controller_spec.rb +41 -0
  38. data/rails_generators/templates/spec/controllers/re_plan_workflow_rules_controller_spec.rb +355 -0
  39. data/rails_generators/templates/spec/controllers/re_plan_workflows_controller_spec.rb +364 -0
  40. data/rails_generators/templates/spec/controllers/re_plans_controller_spec.rb +165 -223
  41. data/rails_generators/templates/spec/controllers/re_publications_controller_spec.rb +29 -0
  42. data/rails_generators/templates/spec/controllers/re_workflow_rules_controller_spec.rb +353 -0
  43. data/rails_generators/templates/spec/controllers/re_workflows_controller_spec.rb +326 -0
  44. data/rails_generators/templates/spec/helpers/rules_engine_helper_spec.rb +8 -8
  45. metadata +28 -21
  46. data/rails_generators/templates/app/controllers/re_processes_controller.rb +0 -15
  47. data/rails_generators/templates/app/views/re_plans/re_process.js.erb +0 -4
  48. data/rails_generators/templates/app/views/re_processes/_index_prepare.html.erb +0 -12
  49. data/rails_generators/templates/app/views/re_processes/_index_update.html.erb +0 -20
  50. data/rails_generators/templates/app/views/re_processes/_show.html.erb +0 -30
  51. data/rails_generators/templates/app/views/re_processes/index.html.erb +0 -11
  52. data/rails_generators/templates/app/views/re_processes/index.js.erb +0 -4
  53. data/rails_generators/templates/app/views/re_processes/show.html.erb +0 -8
  54. data/rails_generators/templates/app/views/re_processes/show.js.erb +0 -4
  55. data/rails_generators/templates/public/javascripts/rules_engine/re_process_index.js +0 -43
@@ -0,0 +1,11 @@
1
+ <% set_re_javascript_include ['rules_engine/re_history_index', 'rules_engine/re_history_show'] %>
2
+ <% set_re_breadcrumbs link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"),
3
+ '<span class="re-bc-history-list">Process History</span>' %>
4
+
5
+ <div class="prepend-1 span-22 append-1">
6
+ <div class="re-infobox">
7
+ <%= render '/re_history/index_prepare', :re_plan_id => 0 %>
8
+ <div class="clear top-5"></div>
9
+ </div>
10
+ </div>
11
+ <div class="clear"></div>
@@ -0,0 +1,4 @@
1
+ $('#re_history_list_pending').hide();
2
+
3
+ $('#re_history_list').html('<%=escape_javascript(render('/re_history/index_update'))%>');
4
+ $('#re_history_list').show();
@@ -0,0 +1,8 @@
1
+ <% set_re_breadcrumbs link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"),
2
+ link_to("Process History", re_history_index_path, :class => "re-bc-history-list"),
3
+ '<span class="re-bc-history-list">Process Audit</span>' %>
4
+
5
+ <div class="span-22 prepend-1 append-1">
6
+ <%= render '/re_history/show' %>
7
+ </div>
8
+ <div class="clear"></div>
@@ -0,0 +1,4 @@
1
+ $('#re_content').html('<%=escape_javascript(render('/re_history/show'))%>');
2
+
3
+ $.re_unblock();
4
+ $.fancybox({ href: '#re_content'});
@@ -2,7 +2,7 @@
2
2
  <h3 class="re-hdr-plan-copy"> Copy Plan : <%=h @re_plan.title %></h3>
3
3
  <div class="clear top-10"></div>
4
4
 
5
- <% re_form_for(@re_plan_new, :url => duplicate_re_plan_path(@re_plan), :method => :post, :span => "3x13", :html => {:id => "re_plan_copy_form"}) do |f| %>
5
+ <% re_form_for(@re_plan_copy, :url => duplicate_re_plan_path(@re_plan), :method => :post, :span => "3x13", :html => {:id => "re_plan_copy_form"}) do |f| %>
6
6
  <%= f.error_messages :message => "Unable To Duplicated Plan" %>
7
7
  <% re_whitebox do %>
8
8
  <%= f.text_field(:code, :required => true, :hint => "must be unique") %>
@@ -1,11 +1,11 @@
1
- <% set_re_javascript_include ['rules_engine/re_process_index'] %>
1
+ <% set_re_javascript_include ['rules_engine/re_history_index'] %>
2
2
  <% set_re_breadcrumbs link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"),
3
3
  link_to("Show Plan", re_plan_path(@re_plan), :class => "re-bc-plan-show"),
4
- '<span class="re-bc-process-list">Show Processes</span>' %>
4
+ '<span class="re-bc-history-list">Process History</span>' %>
5
5
 
6
6
  <div class="prepend-1 span-22 append-1">
7
7
  <div class="re-infobox">
8
- <%= render '/re_processes/index_prepare', :re_plan_id => @re_plan.id %>
8
+ <%= render '/re_history/index_prepare', :re_plan_id => @re_plan.id %>
9
9
  <div class="clear top-5"></div>
10
10
  </div>
11
11
  </div>
@@ -0,0 +1,4 @@
1
+ $('#re_history_list_pending').hide();
2
+
3
+ $('#re_history_list').html('<%=escape_javascript(render('/re_history/index_update'))%>');
4
+ $('#re_history_list').show();
@@ -1,4 +1,4 @@
1
- <% set_re_javascript_include ['rules_engine/re_plan_preview', 'rules_engine/re_plan_new', 'rules_engine/re_process_index', 'rules_engine/re_process_show'] %>
1
+ <% set_re_javascript_include ['rules_engine/re_plan_preview', 'rules_engine/re_plan_new', 'rules_engine/re_history_index', 'rules_engine/re_history_show'] %>
2
2
  <% set_re_breadcrumbs_right link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"),
3
3
  link_to("<em>All Workflows</em>", re_workflows_path, :class => "re-bc-workflow-list blue")%>
4
4
 
@@ -28,6 +28,6 @@
28
28
  <div class="clear top-5"></div>
29
29
  <% end %>
30
30
 
31
- <%= render '/re_processes/index_prepare', :re_plan_id => 0 %>
31
+ <%= render '/re_history/index_prepare', :re_plan_id => 0 %>
32
32
  <div class="clear"></div>
33
33
  </div>
@@ -1,4 +1,3 @@
1
- <%# set_re_javascript_include ['rules_engine/re_process_index', 'rules_engine/re_plan_show_processs'] %>
2
1
  <% set_re_breadcrumbs link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"), '<span class="re-bc-plan-show">Preview Plan</span>' %>
3
2
 
4
3
  <div class="prepend-1 span-22 append-1">
@@ -1,4 +1,4 @@
1
- <% set_re_javascript_include ['rules_engine/re_workflow_preview', 'rules_engine/re_publication_show', 'rules_engine/re_process_index', 'rules_engine/re_process_show'] %>
1
+ <% set_re_javascript_include ['rules_engine/re_workflow_preview', 'rules_engine/re_publication_show', 'rules_engine/re_history_index', 'rules_engine/re_history_show'] %>
2
2
  <% set_re_breadcrumbs link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"), '<span class="re-bc-plan-show">View Plan</span>' %>
3
3
 
4
4
  <div class="span-17 border">
@@ -42,7 +42,7 @@
42
42
  <div class="clear top-5"></div>
43
43
  <% end %>
44
44
 
45
- <%= render '/re_processes/index_prepare', :re_plan_id => @re_plan.id %>
45
+ <%= render '/re_history/index_prepare', :re_plan_id => @re_plan.id %>
46
46
  <div class="clear top-5"></div>
47
47
 
48
48
  <div class="clear top-20"></div>
@@ -5,7 +5,7 @@
5
5
  <h3 class="re-hdr-workflow-new">Copy Workflow : <%=h @re_workflow.title %></h3>
6
6
  <div class="clear top-10"></div>
7
7
 
8
- <% re_form_for(@re_workflow_new, :url => duplicate_path, :method => :post, :span => "3x13", :html => {:id => "re_workflow_copy_form"}) do |f| %>
8
+ <% re_form_for(@re_workflow_copy, :url => duplicate_path, :method => :post, :span => "3x13", :html => {:id => "re_workflow_copy_form"}) do |f| %>
9
9
  <%= f.error_messages :message => "Unable To Duplicate Workflow" %>
10
10
  <% re_whitebox do %>
11
11
  <%= f.text_field(:code, :required => true, :hint => "must be unique") %>
@@ -1,4 +1,4 @@
1
- <% set_re_javascript_include ['rules_engine/re_workflow_preview', 'rules_engine/re_workflow_new', 'rules_engine/re_process_index', 'rules_engine/re_process_show'] %>
1
+ <% set_re_javascript_include ['rules_engine/re_workflow_preview', 'rules_engine/re_workflow_new', 'rules_engine/re_history_index', 'rules_engine/re_history_show'] %>
2
2
  <% set_re_breadcrumbs_right link_to("All Workflows", re_workflows_path, :class => "re-bc-workflow-list"),
3
3
  link_to("<em>All Plans</em>", re_plans_path, :class => "re-bc-plan-list blue")%>
4
4
 
@@ -29,6 +29,6 @@
29
29
  <div class="clear top-5"></div>
30
30
  <% end %>
31
31
 
32
- <%= render '/re_processes/index_prepare', :re_plan_id => 0 %>
32
+ <%= render '/re_history/index_prepare', :re_plan_id => 0 %>
33
33
  <div class="clear top-5"></div>
34
34
  </div>
@@ -96,7 +96,7 @@ ActionController::Routing::Routes.draw do |map|
96
96
  :member => {:move_up => :put, :move_down => :put}
97
97
  end
98
98
 
99
- map.resources :re_processes, :only => [:index, :show]
99
+ map.resources :re_history, :only => [:index, :show]
100
100
  map.resources :re_publications, :only => [:show]
101
101
 
102
102
  ...
@@ -0,0 +1,43 @@
1
+ re_history_list_get = function(page) {
2
+ var plan_id = $('.re-menu-history-list:first').attr('id').replace('re_menu_process_list_', '')
3
+
4
+ if (plan_id.length == 0 || plan_id == "0")
5
+ $.get('/re_history?page=' + page, null, null, 'script');
6
+ else
7
+ $.get('/re_plans/' + plan_id + '/history?page=' + page, null, null, 'script');
8
+ }
9
+
10
+ $(document).ready(function() {
11
+
12
+ re_history_list_get(1);
13
+
14
+ $('.re-xtra-history-next-enabled').live('click', function() {
15
+ var page = $(this).attr('href').replace('#', '')
16
+
17
+ $('#re_history_list').hide();
18
+ $('#re_history_list_pending').show();
19
+
20
+ re_history_list_get(page);
21
+ return false;
22
+ });
23
+
24
+ $('.re-xtra-history-next-disabled').live('click', function() {
25
+ return false;
26
+ });
27
+
28
+ $('.re-xtra-history-prev-enabled').live('click', function() {
29
+ var page = $(this).attr('href').replace('#', '')
30
+
31
+ $('#re_history_list').hide();
32
+ $('#re_history_list_pending').show();
33
+
34
+ re_history_list_get(page);
35
+ return false;
36
+ });
37
+
38
+ $('.re-xtra-history-prev-disabled').live('click', function() {
39
+ return false;
40
+ });
41
+ });
42
+
43
+
@@ -1,14 +1,14 @@
1
1
  $(document).ready(function() {
2
2
 
3
- $('a.re-xtra-process-show').live('click', function() {
3
+ $('a.re-xtra-history-show').live('click', function() {
4
4
  var id = $(this).attr('href').replace('#', '')
5
5
 
6
6
  $.re_block();
7
- $.get('/re_processes/' + id, null, null, 'script');
7
+ $.get('/re_history/' + id, null, null, 'script');
8
8
  return false;
9
9
  });
10
10
 
11
- $("#re_process_show_close").live('click', function() {
11
+ $("#re_history_show_close").live('click', function() {
12
12
  $.fancybox.close();
13
13
  return false;
14
14
  });
@@ -757,53 +757,53 @@ div.re-xtra-publication-show-pending {
757
757
  }
758
758
 
759
759
  /* ************************************* */
760
- /* PROCESSES */
760
+ /* HISTORY */
761
761
  /* ************************************* */
762
- .re-breadcrumbs .re-bc-process-list {
763
- background: transparent url('./images/rules_engine/re_process/list-25.png') no-repeat 0 4px;
762
+ .re-breadcrumbs .re-bc-history-list {
763
+ background: transparent url('./images/rules_engine/re_history/list-25.png') no-repeat 0 4px;
764
764
  padding: 0 0 0 30px;
765
765
  }
766
766
 
767
- h3.re-hdr-process-show {
768
- background: transparent url('./images/rules_engine/re_process/list-25.png') no-repeat left 2px;
767
+ h3.re-hdr-history-show {
768
+ background: transparent url('./images/rules_engine/re_history/list-25.png') no-repeat left 2px;
769
769
  padding: 0 0 0 30px;
770
770
  }
771
771
 
772
- div.re-menu-process-list {
773
- background: transparent url('./images/rules_engine/re_process/list-25.png') no-repeat left -1px;
772
+ div.re-menu-history-list {
773
+ background: transparent url('./images/rules_engine/re_history/list-25.png') no-repeat left -1px;
774
774
  padding: 0 0 0 30px;
775
775
  color: #222;
776
776
  text-decoration: none;
777
777
  }
778
778
 
779
- div.re-xtra-process-list-pending {
779
+ div.re-xtra-history-list-pending {
780
780
  background: transparent url('./images/rules_engine/re_common/loading.gif') no-repeat 20px 4px;
781
781
  padding: 16px 0 0 50px;
782
782
  color: #696969;
783
783
  }
784
784
 
785
- a.re-xtra-process-next-enabled {
785
+ a.re-xtra-history-next-enabled {
786
786
  float: right;
787
787
  background: transparent url('./images/rules_engine/re_common/list-next-enabled-14.png') no-repeat 0px 0px;
788
788
  height: 16px;
789
789
  width: 16px;
790
790
  padding: 0 5px 0 2px;
791
791
  }
792
- a.re-xtra-process-next-disabled {
792
+ a.re-xtra-history-next-disabled {
793
793
  float: right;
794
794
  background: transparent url('./images/rules_engine/re_common/list-next-disabled-14.png') no-repeat 0px 0px;
795
795
  height: 16px;
796
796
  width: 16px;
797
797
  padding: 0 5px 0 2px;
798
798
  }
799
- a.re-xtra-process-prev-enabled {
799
+ a.re-xtra-history-prev-enabled {
800
800
  float: right;
801
801
  background: transparent url('./images/rules_engine/re_common/list-prev-enabled-14.png') no-repeat 0px 0px;
802
802
  height: 16px;
803
803
  width: 16px;
804
804
  padding: 0 2px 0 5px;
805
805
  }
806
- a.re-xtra-process-prev-disabled {
806
+ a.re-xtra-history-prev-disabled {
807
807
  float: right;
808
808
  background: transparent url('./images/rules_engine/re_common/list-prev-disabled-14.png') no-repeat 0px 0px;
809
809
  height: 16px;
@@ -811,93 +811,43 @@ a.re-xtra-process-prev-disabled {
811
811
  padding: 0 2px 0 5px;
812
812
  }
813
813
 
814
- .re-xtra-process-success {
814
+ .re-xtra-history-success {
815
815
  background: transparent url('./images/rules_engine/re_common/status-success-14.png') no-repeat 0px 2px;
816
816
  height: 16px;
817
817
  padding-left: 20px;
818
818
  }
819
- .re-xtra-process-error {
819
+ .re-xtra-history-error {
820
820
  background: transparent url('./images/rules_engine/re_common/status-error-14.png') no-repeat 0px 2px;
821
821
  height: 16px;
822
822
  padding-left: 20px;
823
823
  }
824
- .re-xtra-process-info {
824
+ .re-xtra-history-info {
825
825
  background: transparent url('./images/rules_engine/re_common/status-info-14.png') no-repeat 0px 2px;
826
826
  height: 16px;
827
827
  padding-left: 20px;
828
828
  }
829
- .re-xtra-process-running {
829
+ .re-xtra-history-running {
830
830
  background: transparent url('./images/rules_engine/re_common/status-info-14.png') no-repeat 0px 2px;
831
831
  height: 16px;
832
832
  padding-left: 20px;
833
833
  }
834
834
 
835
- .re-xtra-process-audit-success {
835
+ .re-xtra-history-audit-success {
836
836
  background: transparent url('./images/rules_engine/re_common/status-success-14.png') no-repeat 0px 2px;
837
837
  height: 16px;
838
838
  padding-left: 20px;
839
839
  }
840
- .re-xtra-process-audit-error {
840
+ .re-xtra-history-audit-error {
841
841
  background: transparent url('./images/rules_engine/re_common/status-error-14.png') no-repeat 0px 2px;
842
842
  height: 16px;
843
843
  padding-left: 20px;
844
844
  }
845
- .re-xtra-process-audit-info {
845
+ .re-xtra-history-audit-info {
846
846
  background: transparent url('./images/rules_engine/re_common/status-info-14.png') no-repeat 0px 2px;
847
847
  height: 16px;
848
848
  padding-left: 20px;
849
849
  }
850
850
 
851
- /*div.re-menu-process-list {
852
- background: transparent url('./images/rules_engine/re_process/list-25.png') no-repeat left -1px;
853
- padding: 0 0 0 30px;
854
- color: #244A9F;
855
- text-decoration: none;
856
- }
857
-
858
- .re-process-success {
859
- background: transparent url('./images/rules_engine/re_process/success-14.png') no-repeat 0px 2px;
860
- height: 16px;
861
- padding-left: 20px;
862
- }
863
- .re-process-error {
864
- background: transparent url('./images/rules_engine/re_process/error-14.png') no-repeat 0px 2px;
865
- height: 16px;
866
- padding-left: 20px;
867
- }
868
- .re-process-info {
869
- background: transparent url('./images/rules_engine/re_process/info-14.png') no-repeat 0px 2px;
870
- height: 16px;
871
- padding-left: 20px;
872
- }
873
-
874
- .process-running {
875
- background: transparent url('./images/rules_engine/re_process/info-14.png') no-repeat 0px 2px;
876
- height: 16px;
877
- padding-left: 20px;
878
- }
879
-
880
- #re_process_list_pending {
881
- background: transparent url('./images/rules_engine/re_process/loadingAnimation.gif') no-repeat 20px 10px;
882
- padding : 20px 0px 5px 15px;
883
- }
884
- #re_process_list_pending h4 {
885
- background: transparent url('./images/rules_engine/re_process/list-25.png') no-repeat 0px 4px;
886
- padding: 5px 0 5px 30px;
887
- color: #bbb;
888
- }
889
-
890
- a.re-process-detail {
891
- color: #222;
892
- text-decoration: none;
893
- background-color: #222;
894
- }
895
- tr.re-process-row td, tr.re-process-row-odd td {
896
- background-color: #FFEBCD;
897
- }
898
- */
899
-
900
-
901
851
  /* generated from src/re_view_table.css */
902
852
  table{
903
853
  margin:0;
@@ -0,0 +1,68 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ class MockRulesEngineController < ApplicationController
4
+ before_filter :rules_engine_editor_access_required, :only => [:editor]
5
+ before_filter :rules_engine_reader_access_required, :only => [:reader]
6
+
7
+ def editor
8
+ end
9
+
10
+ def reader
11
+ end
12
+ end
13
+
14
+ describe "ReApplicationController", :type => :controller do
15
+ controller_name 'MockRulesEngine'
16
+
17
+ describe "editor" do
18
+ describe "editor access enabled" do
19
+ it "should be successfull with rules_engine_editor true" do
20
+ controller.stub(:cookies).and_return(:rules_engine_editor => 'true')
21
+ get :editor
22
+ response.should be_success
23
+ response.should render_template('editor')
24
+ end
25
+
26
+ it "should be successfull with rules_engine_editor nil" do
27
+ controller.stub(:cookies).and_return({})
28
+ get :editor
29
+ response.should be_success
30
+ response.should render_template('editor')
31
+ end
32
+ end
33
+
34
+ describe "editor access disabled" do
35
+ it "should redirect to the root path" do
36
+ controller.stub(:cookies).and_return(:rules_engine_editor => 'false')
37
+ get :editor
38
+ response.should redirect_to(root_path)
39
+ end
40
+ end
41
+ end
42
+
43
+ describe "reader" do
44
+ describe "reder access enabled" do
45
+ it "should be successfull with rules_engine_reader true" do
46
+ controller.stub(:cookies).and_return(:rules_engine_reader => 'true')
47
+ get :reader
48
+ response.should be_success
49
+ response.should render_template('reader')
50
+ end
51
+
52
+ it "should be successfull with rules_engine_reader nil" do
53
+ controller.stub(:cookies).and_return({})
54
+ get :reader
55
+ response.should be_success
56
+ response.should render_template('reader')
57
+ end
58
+ end
59
+
60
+ describe "reader access disabled" do
61
+ it "should redirect to the root path" do
62
+ controller.stub(:cookies).and_return(:rules_engine_reader => 'false')
63
+ get :reader
64
+ response.should redirect_to(root_path)
65
+ end
66
+ end
67
+ end
68
+ end