challah 0.5.2 → 0.5.3

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 (152) hide show
  1. data/CHANGELOG.md +9 -2
  2. data/README.md +18 -18
  3. data/lib/challah/test.rb +22 -5
  4. data/lib/challah/version.rb +1 -1
  5. data/test/audit_test.rb +32 -32
  6. data/test/controller_test.rb +9 -9
  7. data/test/cookie_store_test.rb +25 -25
  8. data/test/factories.rb +7 -7
  9. data/test/helper.rb +14 -12
  10. data/test/permission_test.rb +14 -14
  11. data/test/restrictions_controller_test.rb +29 -30
  12. data/test/role_test.rb +26 -26
  13. data/test/session_test.rb +65 -65
  14. data/test/sessions_controller_test.rb +13 -13
  15. data/test/simple_cookie_store_test.rb +25 -25
  16. data/test/user_test.rb +79 -79
  17. data/vendor/bundle/cache/factory_girl-3.0.0.gem +0 -0
  18. data/vendor/bundle/gems/factory_girl-3.0.0/Appraisals +11 -0
  19. data/vendor/bundle/gems/factory_girl-3.0.0/CONTRIBUTION_GUIDELINES.md +10 -0
  20. data/vendor/bundle/gems/factory_girl-3.0.0/Changelog +168 -0
  21. data/vendor/bundle/gems/factory_girl-3.0.0/GETTING_STARTED.md +735 -0
  22. data/vendor/bundle/gems/factory_girl-3.0.0/Gemfile +5 -0
  23. data/vendor/bundle/gems/factory_girl-3.0.0/Gemfile.lock +95 -0
  24. data/vendor/bundle/gems/factory_girl-3.0.0/LICENSE +19 -0
  25. data/vendor/bundle/gems/factory_girl-3.0.0/README.md +70 -0
  26. data/vendor/bundle/gems/factory_girl-3.0.0/Rakefile +38 -0
  27. data/vendor/bundle/gems/factory_girl-3.0.0/cucumber.yml +1 -0
  28. data/vendor/bundle/gems/factory_girl-3.0.0/factory_girl.gemspec +38 -0
  29. data/vendor/bundle/gems/factory_girl-3.0.0/features/factory_girl_steps.feature +237 -0
  30. data/vendor/bundle/gems/factory_girl-3.0.0/features/find_definitions.feature +75 -0
  31. data/vendor/bundle/gems/factory_girl-3.0.0/features/step_definitions/database_steps.rb +42 -0
  32. data/vendor/bundle/gems/factory_girl-3.0.0/features/step_definitions/factory_girl_steps.rb +43 -0
  33. data/vendor/bundle/gems/factory_girl-3.0.0/features/support/env.rb +11 -0
  34. data/vendor/bundle/gems/factory_girl-3.0.0/features/support/factories.rb +119 -0
  35. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/2.3.gemfile +7 -0
  36. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.0.gemfile +7 -0
  37. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.0.gemfile.lock +86 -0
  38. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.1.gemfile +7 -0
  39. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.1.gemfile.lock +95 -0
  40. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.2.gemfile +7 -0
  41. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.2.gemfile.lock +93 -0
  42. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl.rb +69 -0
  43. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/aliases.rb +19 -0
  44. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute.rb +40 -0
  45. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/association.rb +23 -0
  46. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/dynamic.rb +20 -0
  47. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/sequence.rb +17 -0
  48. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/static.rb +15 -0
  49. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute_assigner.rb +73 -0
  50. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute_list.rb +54 -0
  51. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/callback.rb +33 -0
  52. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration.rb +22 -0
  53. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/association.rb +25 -0
  54. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/dynamic.rb +25 -0
  55. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/implicit.rb +32 -0
  56. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/static.rb +25 -0
  57. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration_list.rb +48 -0
  58. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/definition.rb +76 -0
  59. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/definition_proxy.rb +159 -0
  60. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/errors.rb +19 -0
  61. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/evaluator.rb +76 -0
  62. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/evaluator_class_definer.rb +34 -0
  63. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/factory.rb +145 -0
  64. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/factory_runner.rb +24 -0
  65. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/find_definitions.rb +25 -0
  66. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/null_factory.rb +15 -0
  67. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/null_object.rb +7 -0
  68. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/registry.rb +46 -0
  69. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/reload.rb +8 -0
  70. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/sequence.rb +24 -0
  71. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/step_definitions.rb +130 -0
  72. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy.rb +32 -0
  73. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/attributes_for.rb +12 -0
  74. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/build.rb +15 -0
  75. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/create.rb +17 -0
  76. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/stub.rb +61 -0
  77. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy_calculator.rb +29 -0
  78. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax.rb +16 -0
  79. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/blueprint.rb +42 -0
  80. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/default.rb +56 -0
  81. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/generate.rb +70 -0
  82. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/make.rb +45 -0
  83. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/methods.rb +136 -0
  84. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/sham.rb +45 -0
  85. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/vintage.rb +130 -0
  86. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/trait.rb +29 -0
  87. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/version.rb +4 -0
  88. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/aliases_spec.rb +19 -0
  89. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attribute_aliases_spec.rb +45 -0
  90. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attribute_existing_on_object_spec.rb +68 -0
  91. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attributes_for_spec.rb +89 -0
  92. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attributes_from_instance_spec.rb +53 -0
  93. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attributes_ordered_spec.rb +51 -0
  94. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/build_list_spec.rb +41 -0
  95. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/build_spec.rb +89 -0
  96. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/build_stubbed_spec.rb +104 -0
  97. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/callbacks_spec.rb +47 -0
  98. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/create_list_spec.rb +82 -0
  99. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/create_spec.rb +117 -0
  100. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/define_child_before_parent_spec.rb +21 -0
  101. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/definition_spec.rb +26 -0
  102. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/definition_without_block_spec.rb +15 -0
  103. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/initialize_with_spec.rb +147 -0
  104. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/modify_factories_spec.rb +184 -0
  105. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/modify_inherited_spec.rb +52 -0
  106. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/nested_attributes_spec.rb +32 -0
  107. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/overrides_spec.rb +61 -0
  108. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/parent_spec.rb +90 -0
  109. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/sequence_spec.rb +33 -0
  110. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/stub_spec.rb +62 -0
  111. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/blueprint_spec.rb +34 -0
  112. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/generate_spec.rb +59 -0
  113. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/make_spec.rb +52 -0
  114. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/sham_spec.rb +43 -0
  115. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/vintage_spec.rb +217 -0
  116. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/traits_spec.rb +421 -0
  117. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/transient_attributes_spec.rb +124 -0
  118. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/aliases_spec.rb +31 -0
  119. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/association_spec.rb +28 -0
  120. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/dynamic_spec.rb +52 -0
  121. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/sequence_spec.rb +16 -0
  122. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/static_spec.rb +19 -0
  123. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute_list_spec.rb +78 -0
  124. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute_spec.rb +16 -0
  125. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/callback_spec.rb +41 -0
  126. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/declaration/implicit_spec.rb +25 -0
  127. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/declaration_list_spec.rb +71 -0
  128. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/definition_proxy_spec.rb +197 -0
  129. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/definition_spec.rb +104 -0
  130. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/evaluator_class_definer_spec.rb +54 -0
  131. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/factory_spec.rb +279 -0
  132. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/find_definitions_spec.rb +110 -0
  133. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/null_factory_spec.rb +13 -0
  134. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/null_object_spec.rb +8 -0
  135. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/registry_spec.rb +81 -0
  136. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/sequence_spec.rb +47 -0
  137. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/attributes_for_spec.rb +18 -0
  138. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/build_spec.rb +7 -0
  139. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/create_spec.rb +13 -0
  140. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb +40 -0
  141. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy_calculator_spec.rb +33 -0
  142. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy_spec.rb +21 -0
  143. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl_spec.rb +22 -0
  144. data/vendor/bundle/gems/factory_girl-3.0.0/spec/spec_helper.rb +26 -0
  145. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/macros/define_constant.rb +86 -0
  146. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/callback.rb +9 -0
  147. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/declaration.rb +71 -0
  148. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/delegate.rb +44 -0
  149. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/trait.rb +9 -0
  150. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/shared_examples/strategy.rb +104 -0
  151. data/vendor/bundle/specifications/factory_girl-3.0.0.gemspec +62 -0
  152. metadata +147 -12
data/test/factories.rb CHANGED
@@ -14,7 +14,7 @@ FactoryGirl.define do
14
14
  name { "Manage Users" }
15
15
  key { "manage_users" }
16
16
  end
17
- end
17
+ end
18
18
 
19
19
  factory :role do
20
20
  name { "Sample Role" }
@@ -23,13 +23,13 @@ FactoryGirl.define do
23
23
 
24
24
  factory :administrator_role do
25
25
  name "Administrator"
26
-
27
- after_create do |role|
28
- Factory(:admin_permission_role, :role => role)
29
- Factory(:user_permission_role, :role => role)
26
+
27
+ after_create do |role|
28
+ FactoryGirl.create(:admin_permission_role, :role => role)
29
+ FactoryGirl.create(:user_permission_role, :role => role)
30
30
  end
31
31
  end
32
-
32
+
33
33
  factory :default_role do
34
34
  name { "Default" }
35
35
  end
@@ -57,7 +57,7 @@ FactoryGirl.define do
57
57
  sequence(:username) { |n| "plain#{n}" }
58
58
  role_id nil
59
59
  end
60
-
60
+
61
61
  factory :normal_user do
62
62
  first_name { "Normal" }
63
63
  sequence(:username) { |n| "normal#{n}" }
data/test/helper.rb CHANGED
@@ -32,31 +32,33 @@ require 'challah/test'
32
32
  ActiveRecord::Migration.verbose = false
33
33
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate")
34
34
 
35
- # Use ActiveSupport::TestCase for any tests using factories and database saving,
35
+ # Use ActiveSupport::TestCase for any tests using factories and database saving,
36
36
  # so we can have a transactional rollback after each test.
37
37
  class ActiveSupport::TestCase
38
+ include FactoryGirl::Syntax::Methods
39
+
38
40
  self.use_transactional_fixtures = true
39
41
  end
40
42
 
41
43
  class MockController
42
44
  include Challah::Controller
43
-
45
+
44
46
  attr_accessor :request, :session, :params
45
-
47
+
46
48
  def initialize()
47
49
  @request = MockRequest.new
48
50
  @session ||= {}
49
51
  @params ||= {}
50
52
  end
51
-
53
+
52
54
  def redirect_to(*args)
53
55
  # do nothing
54
56
  end
55
-
57
+
56
58
  def login_path
57
59
  "/login"
58
60
  end
59
-
61
+
60
62
  def logout_path
61
63
  "/logout"
62
64
  end
@@ -64,31 +66,31 @@ end
64
66
 
65
67
  class MockRequest
66
68
  attr_accessor :cookie_jar, :session_options, :url
67
-
69
+
68
70
  class MockCookieJar < Hash
69
71
  def delete(key, options = {})
70
72
  super(key)
71
73
  end
72
74
  end
73
-
75
+
74
76
  def initialize
75
77
  @cookie_jar = MockCookieJar.new
76
78
  @session_options = { :domain => 'test.dev' }
77
79
  @url = "http://example.com/"
78
80
  end
79
-
81
+
80
82
  def cookies
81
83
  @cookie_jar
82
84
  end
83
-
85
+
84
86
  def cookies=(value)
85
87
  @cookie_jar = value
86
88
  end
87
-
89
+
88
90
  def remote_ip
89
91
  "8.8.8.8"
90
92
  end
91
-
93
+
92
94
  def user_agent
93
95
  "Some Cool Browser"
94
96
  end
@@ -3,25 +3,25 @@ require 'helper'
3
3
  class PermissionTest < ActiveSupport::TestCase
4
4
  should validate_presence_of :name
5
5
  should validate_presence_of :key
6
-
6
+
7
7
  should have_many :roles
8
8
  should have_many :users
9
9
  should have_many :permission_roles
10
10
  should have_many :permission_users
11
-
11
+
12
12
  context "With existing permissions" do
13
13
  setup do
14
- Factory(:permission)
14
+ create(:permission)
15
15
  end
16
-
16
+
17
17
  should validate_uniqueness_of :name
18
18
  should validate_uniqueness_of :key
19
19
  end
20
-
20
+
21
21
  context "The Permission class" do
22
22
  should "load with the brackets shortcut" do
23
- one = Factory(:permission, :name => 'Permission One', :key => 'permission_one')
24
- two = Factory(:permission, :name => 'Permission Two', :key => 'permission_two')
23
+ one = create(:permission, :name => 'Permission One', :key => 'permission_one')
24
+ two = create(:permission, :name => 'Permission Two', :key => 'permission_two')
25
25
 
26
26
  assert_equal one, Permission[:permission_one]
27
27
  assert_equal one, Permission[:Permission_One]
@@ -30,19 +30,19 @@ class PermissionTest < ActiveSupport::TestCase
30
30
  assert_equal nil, Permission[:no_permission_exists]
31
31
  end
32
32
  end
33
-
34
- context "A Permission instance" do
33
+
34
+ context "A Permission instance" do
35
35
  should "get added to the admin role on create" do
36
- admin_role = Factory(:role, :name => 'Administrator')
36
+ admin_role = create(:role, :name => 'Administrator')
37
37
  assert_equal nil, admin_role.permission_keys.index('new_permission')
38
-
38
+
39
39
  #Role.stubs(:admin).returns(admin_role)
40
-
40
+
41
41
  permission = Permission.new(:name => 'New Permission', :key => 'new_permission', :description => 'This is just a test.')
42
-
42
+
43
43
  assert_difference [ 'Permission.count', 'PermissionRole.count' ], 1 do
44
44
  assert permission.save
45
- end
45
+ end
46
46
  end
47
47
  end
48
48
  end
@@ -2,101 +2,100 @@ require 'helper'
2
2
 
3
3
  class RestrictionsControllerTest < ActionController::TestCase
4
4
  tests Challah::Test::RestrictionsController
5
-
5
+
6
6
  context "The restrictions controller" do
7
7
  context "With no user" do
8
8
  setup do
9
- Challah::Session.destroy
9
+ logout
10
10
  end
11
-
11
+
12
12
  should "be able to get to the index page" do
13
13
  get :index
14
14
  assert_response :success
15
15
  assert_equal nil, assigns(:current_user)
16
- end
17
-
16
+ end
17
+
18
18
  should "not be able to get to the edit page" do
19
19
  get :edit
20
20
  assert_redirected_to '/login'
21
21
  end
22
-
22
+
23
23
  should "not get to the new page" do
24
24
  get :new
25
25
  assert_redirected_to '/login'
26
26
  end
27
27
  end
28
-
28
+
29
29
  context "with a regular user" do
30
30
  setup do
31
- @user = Factory(:user)
32
-
33
- Challah::Session.create!(@user)
31
+ @user = create(:user)
32
+ login_as(@user)
34
33
  end
35
-
34
+
36
35
  should "get to the index page" do
37
36
  get :index
38
37
  assert_response :success
39
38
  assert_equal @user, assigns(:current_user)
40
39
  end
41
-
40
+
42
41
  should "get to the edit page" do
43
42
  get :edit
44
43
  assert_response :success
45
44
  end
46
-
45
+
47
46
  should "get to the show page" do
48
47
  get :show
49
48
  assert_response :success
50
49
  end
51
-
50
+
52
51
  should "not get to the new page" do
53
52
  get :new
54
-
53
+
55
54
  assert_template 'sessions/access_denied'
56
55
  assert_response :unauthorized
57
56
  end
58
57
  end
59
-
58
+
60
59
  context "with an admin user" do
61
60
  setup do
62
- @user = Factory(:admin_user)
63
- @permission = Factory(:permission, :key => 'special')
64
-
65
- Challah::Session.create!(@user)
61
+ @user = create(:admin_user)
62
+ @permission = create(:permission, :key => 'special')
63
+
64
+ login_as(@user)
66
65
  end
67
-
66
+
68
67
  should "get to the index page" do
69
68
  get :index
70
69
  assert_response :success
71
70
  assert_equal @user, assigns(:current_user)
72
71
  end
73
-
72
+
74
73
  should "get to the edit page" do
75
74
  get :edit
76
75
  assert_response :success
77
76
  end
78
-
77
+
79
78
  should "get to the show page" do
80
79
  get :show
81
80
  assert_response :success
82
81
  end
83
-
82
+
84
83
  should "get to the new page" do
85
84
  get :new
86
85
  assert_response :success
87
86
  end
88
87
  end
89
-
88
+
90
89
  context "With an api key" do
91
90
  setup do
92
- @user = Factory(:user)
91
+ @user = create(:user)
93
92
  end
94
-
93
+
95
94
  context "and api_key functionality enabled" do
96
95
  setup do
97
96
  Challah.options[:api_key_enabled] = true
98
97
  end
99
-
98
+
100
99
  should "get to the index page" do
101
100
  get :index, :key => @user.api_key
102
101
  assert_response :success
@@ -120,12 +119,12 @@ class RestrictionsControllerTest < ActionController::TestCase
120
119
  assert_response :unauthorized
121
120
  end
122
121
  end
123
-
122
+
124
123
  context "and api_key functionality disabled" do
125
124
  setup do
126
125
  Challah.options[:api_key_enabled] = false
127
126
  end
128
-
127
+
129
128
  should "get to the index page" do
130
129
  get :index, :key => @user.api_key
131
130
  assert_response :success
data/test/role_test.rb CHANGED
@@ -1,24 +1,24 @@
1
1
  require 'helper'
2
2
 
3
3
  class RoleTest < ActiveSupport::TestCase
4
- should validate_presence_of :name
4
+ should validate_presence_of :name
5
5
  should have_many :users
6
6
 
7
7
  should have_many :permission_roles
8
8
  should have_many :permissions
9
-
9
+
10
10
  context "With existing roles" do
11
11
  setup do
12
- Factory(:role)
12
+ create(:role)
13
13
  end
14
-
14
+
15
15
  should validate_uniqueness_of :name
16
16
  end
17
-
17
+
18
18
  context "The Role model" do
19
19
  should "load with the brackets shortcut" do
20
- test = Factory(:role, :name => 'Test Role')
21
- default = Factory(:default_role)
20
+ test = create(:role, :name => 'Test Role')
21
+ default = create(:default_role)
22
22
 
23
23
  assert_equal test, Role[:test_role]
24
24
  assert_equal default, Role[:default]
@@ -26,54 +26,54 @@ class RoleTest < ActiveSupport::TestCase
26
26
  assert_equal default, Role[' defAult ']
27
27
  assert_equal nil, Role[:bad_role]
28
28
  end
29
-
29
+
30
30
  should "be able to quickly load the admin role" do
31
- admin_role = Factory(:role, :name => 'Administrator')
32
-
31
+ admin_role = create(:role, :name => 'Administrator')
32
+
33
33
  assert_equal admin_role, Role[:administrator]
34
34
  assert_equal admin_role, Role.admin
35
- end
35
+ end
36
36
  end
37
-
37
+
38
38
  context "A Role instance" do
39
39
  should "have a permission keys array" do
40
- admin_permission = Factory(:admin_permission)
41
- users_permission = Factory(:users_permission)
42
-
43
- role = Factory.build(:role)
44
-
40
+ admin_permission = create(:admin_permission)
41
+ users_permission = create(:users_permission)
42
+
43
+ role = build(:role)
44
+
45
45
  assert_equal 0, role.permission_keys.length
46
-
46
+
47
47
  assert_difference 'Role.count', 1 do
48
48
  role.save
49
49
  end
50
-
50
+
51
51
  assert_difference 'PermissionRole.count', 2 do
52
52
  role.permission_keys = %w( admin manage_users )
53
53
  role.save
54
54
  end
55
-
55
+
56
56
  assert_equal %w( admin manage_users ), role.permission_keys.sort
57
57
  end
58
-
58
+
59
59
  should "be able to check for a permission" do
60
60
  role = Role.new
61
61
  role.stubs(:permission_keys).returns(%w( admin permission1 permission 2 ))
62
-
62
+
63
63
  assert_equal true, role.permission?(:admin)
64
64
  assert_equal true, role.has(:admin)
65
65
  assert_equal true, role.admin?
66
-
66
+
67
67
  assert_equal true, role.permission?(:permission1)
68
68
  assert_equal true, role.has(:permission1)
69
69
  assert_equal true, role.permission1?
70
-
70
+
71
71
  assert_equal false, role.permission?(:bad)
72
72
  assert_equal false, role.has(:bad)
73
73
  assert_equal false, role.bad?
74
-
74
+
75
75
  # no question mark, use regular method_missing
76
-
76
+
77
77
  assert_raises NoMethodError do
78
78
  role.bad_call_without_question_mark
79
79
  end
data/test/session_test.rb CHANGED
@@ -2,173 +2,173 @@ require 'helper'
2
2
 
3
3
  class SessionTest < ActiveSupport::TestCase
4
4
  include Challah
5
-
5
+
6
6
  context "An Challah::Session class" do
7
7
  should "use the test storage method" do
8
8
  assert_equal TestSessionStore, Challah.options[:storage_class]
9
9
  end
10
-
10
+
11
11
  should "create a new session instance from a user or id" do
12
- user = Factory(:user)
13
-
14
- assert_equal true, user.active?
15
-
16
- session = Session.create(user)
12
+ user = create(:user)
13
+
14
+ assert_equal true, user.active?
15
+
16
+ session = Session.create(user)
17
17
  assert_equal true, session.valid?
18
18
  assert_equal user.id, session.user_id
19
19
  end
20
-
20
+
21
21
  should "create a blank but invalid session for a non-existant or inactive user" do
22
22
  session = Session.create(999)
23
23
  assert_equal false, session.valid?
24
24
  assert_equal nil, session.user_id
25
25
  end
26
-
26
+
27
27
  should "persist a session" do
28
- user = Factory(:user)
29
-
28
+ user = create(:user)
29
+
30
30
  session = Session.create(user)
31
31
  assert_equal true, session.valid?
32
32
  assert_equal user, session.user
33
-
33
+
34
34
  session.save
35
-
35
+
36
36
  session_two = Session.find
37
37
  assert_equal true, session_two.valid?
38
38
  assert_equal user, session_two.user
39
-
39
+
40
40
  Session.destroy
41
-
41
+
42
42
  session_three = Session.find
43
43
  assert_equal false, session_three.valid?
44
44
  assert_equal nil, session_three.user
45
45
  end
46
46
  end
47
-
48
- context "A Challah::Session instance" do
47
+
48
+ context "A Challah::Session instance" do
49
49
  should "receive a request and params object" do
50
50
  session = Session.new(MockRequest.new, { :username => 'test-user', :password => 'test123' })
51
-
51
+
52
52
  assert_not_nil session.request
53
53
  assert_not_nil session.params
54
-
54
+
55
55
  assert_equal true, session.username?
56
56
  end
57
-
57
+
58
58
  should "be able to set a username" do
59
59
  session = Session.new
60
-
60
+
61
61
  assert_equal false, session.username?
62
-
62
+
63
63
  session.username = 'test-user'
64
-
64
+
65
65
  assert_equal true, session.username?
66
-
66
+
67
67
  assert_equal 'test-user', session.username
68
68
  end
69
-
69
+
70
70
  should "be able to set attributes" do
71
71
  session = Session.new
72
-
72
+
73
73
  assert_equal Hash.new, session.params
74
-
74
+
75
75
  session.username = 'test-user'
76
76
  expected = { :username => 'test-user' }
77
77
  assert_equal expected, session.params
78
78
  assert_equal true, session.username?
79
-
79
+
80
80
  session.password = 'abc123'
81
81
  expected = { :username => 'test-user', :password => 'abc123' }
82
82
  assert_equal expected, session.params
83
83
  assert_equal true, session.password?
84
-
84
+
85
85
  session.api_key = '122345873847'
86
86
  expected = { :username => 'test-user', :password => 'abc123', :api_key => '122345873847' }
87
87
  assert_equal expected, session.params
88
88
  assert_equal true, session.api_key?
89
-
89
+
90
90
  session.other = true
91
91
  expected = { :username => 'test-user', :password => 'abc123', :api_key => '122345873847', :other => true }
92
92
  assert_equal expected, session.params
93
93
  assert_equal true, session.other?
94
-
94
+
95
95
  assert_raises NoMethodError do
96
96
  session.no_key
97
97
  end
98
- end
99
-
98
+ end
99
+
100
100
  should "validate with a password" do
101
- user = Factory(:user, :username => 'test-user')
102
-
101
+ user = create(:user, :username => 'test-user')
102
+
103
103
  User.stubs(:find_for_session).returns(user)
104
-
104
+
105
105
  session = Session.new
106
106
  session.ip = '127.0.0.1'
107
107
  session.username = 'test-user'
108
108
  session.password = 'abc123'
109
-
109
+
110
110
  user.expects(:successful_authentication!).with('127.0.0.1').once
111
-
111
+
112
112
  assert_equal true, session.valid?
113
113
  assert_equal user, session.user
114
114
  assert_equal user.id, session.user_id
115
115
  assert_equal true, session.persist?
116
116
  assert_equal true, session.save
117
-
117
+
118
118
  User.unstub(:find_for_session)
119
119
  end
120
-
120
+
121
121
  should "validate with an api key" do
122
122
  Challah.options[:api_key_enabled] = true
123
-
124
- user = Factory(:user, :api_key => '123456abcdefg')
125
-
123
+
124
+ user = create(:user, :api_key => '123456abcdefg')
125
+
126
126
  User.stubs(:find_for_session).returns(user)
127
-
127
+
128
128
  session = Session.new
129
129
  session.ip = '127.0.0.1'
130
130
  session.key = '123456abcdefg'
131
-
131
+
132
132
  assert_equal true, session.valid?
133
133
  assert_equal user, session.user
134
- assert_equal user.id, session.user_id
134
+ assert_equal user.id, session.user_id
135
135
  assert_equal false, session.persist?
136
136
  assert_equal false, session.save
137
-
137
+
138
138
  user.expects(:successful_authentication!).with('127.0.0.1').once
139
-
139
+
140
140
  User.unstub(:find_for_session)
141
-
141
+
142
142
  Challah.options[:api_key_enabled] = false
143
- end
144
-
143
+ end
144
+
145
145
  should "reject if password is incorrect" do
146
- user = Factory(:user, :username => 'test-user')
147
-
146
+ user = create(:user, :username => 'test-user')
147
+
148
148
  User.stubs(:find_for_session).returns(user)
149
-
149
+
150
150
  session = Session.new
151
151
  session.username = 'test-user'
152
152
  session.password = 'bad-pass'
153
-
153
+
154
154
  user.expects(:failed_authentication!).once
155
-
156
- assert_equal false, session.valid?
155
+
156
+ assert_equal false, session.valid?
157
157
  assert_equal nil, session.user
158
-
158
+
159
159
  User.unstub(:find_for_session)
160
160
  end
161
-
161
+
162
162
  should "have a default_path attribute" do
163
- user = Factory(:user, :username => 'test-user')
164
-
163
+ user = create(:user, :username => 'test-user')
164
+
165
165
  user.stubs(:default_path).returns("/user-path")
166
-
167
- session = Session.new
166
+
167
+ session = Session.new
168
168
  assert_equal '/', session.default_path
169
-
169
+
170
170
  session = Session.create(user)
171
171
  assert_equal '/user-path', session.default_path
172
- end
172
+ end
173
173
  end
174
174
  end