id_please 0.5.0 → 0.6.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.
data/test/roles_test.rb CHANGED
@@ -280,9 +280,10 @@ class RolesTest < ActiveSupport::TestCase
280
280
  assert_same_elements @user1.groups, [@group1, @group2, @group3, @group4]
281
281
  assert_same_elements @user2.groups, [@group2, @group4]
282
282
 
283
- assert_same_elements @group4.children, [@group2, @group1, @user1, @user2]
283
+ assert_same_elements @group4.children, [@group2, @group1, @user1, @user2, @user3]
284
284
  assert_same_elements @group2.children, [@group1, @user1, @user2]
285
-
285
+ assert_same_elements @group2.children(:nested => false), [@group1, @user2]
286
+
286
287
  assert @group4.accepts_role?(:member, @user1)
287
288
  assert @group2.accepts_role?(:member, @user1)
288
289
 
@@ -291,30 +292,23 @@ class RolesTest < ActiveSupport::TestCase
291
292
  assert_false @group4.accepts_role?(:member, @user1, :check_groups => false)
292
293
  end
293
294
 
294
- should "be able to filter children based on roles" do
295
- assert_same_elements @group4.children(), [@group2, @group1, @user1, @user2]
296
- assert_same_elements @group4.children(:roles => :any), [@group2, @group1, @user1, @user2, @user3]
297
- assert_same_elements @group4.children(:roles => [:member]), [@group2, @group1, @user1, @user2]
298
- assert_same_elements @group4.children(:roles => [:owner]), [@user3]
299
- end
300
-
301
295
  should "be able to display hashes of subject permissions" do
302
- assert_equal @group4.children(:roles => :any, :view => :subject_hash), {@group2 => [:member], @group1 => [:member], @user1 => [:member], @user2 => [:member], @user3 => [:owner]}
296
+ assert_equal @group4.children(:view => :subject_hash), {@group2 => [:member], @group1 => [:member], @user1 => [:member], @user2 => [:member], @user3 => [:owner]}
303
297
  end
304
298
 
305
299
  should "display a list of roles, or a hash of roles to users" do
306
- assert_same_elements @group4.children(:roles => :any, :view => :roles), [:member, :owner]
300
+ assert_same_elements @group4.children(:view => :roles), [:member, :owner]
307
301
 
308
- role_hash = @group4.children(:roles => :any, :view => :role_hash)
302
+ role_hash = @group4.children(:view => :role_hash)
309
303
  assert_same_elements role_hash[:member], [@group1, @group2, @user1, @user2]
310
304
  assert_same_elements role_hash[:owner], [@user3]
311
305
  end
312
306
 
313
307
  should "display a hash of roles to users with the relevant groups attached" do
314
- role_with_assignments = @group4.children(:roles => :any, :view => :role_with_assignments)
308
+ role_with_assignments = @group4.children(:view => :role_with_assignments)
315
309
  assert_equal role_with_assignments[:owner], {@user3 => [@group4]}
316
310
  assert_same_elements role_with_assignments[:member].keys, [@user1, @user2, @group1, @group2]
317
- assert_equal role_with_assignments[:member], {@group2 => [@group4], @group1 => [@group2], @user1 => [@group1, @group4], @user2 => [@group2]}
311
+ assert_same_elements_in_hash role_with_assignments[:member], {@group2 => [@group4], @group1 => [@group2], @user1 => [@group1, @group4], @user2 => [@group2]}
318
312
 
319
313
  end
320
314
 
@@ -340,6 +334,27 @@ class RolesTest < ActiveSupport::TestCase
340
334
 
341
335
  end
342
336
 
337
+ context "given a group which is both an member and an owner" do
338
+ setup do
339
+ @user1.in_group!(@group1)
340
+ @group1.in_group!(@group2)
341
+ @group1.has_role!(:owner, @group2)
342
+ end
343
+
344
+ should "propagate multiple roles through nested groups" do
345
+ @user1.has_role?(:owner, @group2)
346
+ @user1.has_role?(:member, @group2)
347
+ end
348
+
349
+ should "display handle multiple roles propagated through the children function" do
350
+ assert_same_elements @group2.children(:view => :roles), [:member, :owner]
351
+ role_hash = @group2.children(:view => :role_hash)
352
+
353
+ assert_same_elements role_hash[:member], [@group1, @user1]
354
+ assert_same_elements role_hash[:owner], [@group1, @user1]
355
+ end
356
+ end
357
+
343
358
  end
344
359
  end
345
360
 
data/test/test_helper.rb CHANGED
@@ -42,5 +42,22 @@ module Test::Unit::Assertions
42
42
  def assert_false(object, message="")
43
43
  assert_equal(false, object, message)
44
44
  end
45
+
46
+ def assert_same_elements_in_hash(hash1, hash2, message = "")
47
+ assert_kind_of Hash, hash1, message + "First object must be a hash"
48
+ assert_kind_of Hash, hash2, message + "Second object must be a hash"
49
+ assert_equal hash1.keys, hash2.keys, "Keys of hashes mismatch"
50
+
51
+ hash1.each_pair do |k, v|
52
+ case v
53
+ when Hash
54
+ assert_same_elements_in_hash v,hash2[k], message + "Under key #{k.inspect} "
55
+ when Array
56
+ assert_same_elements v, hash2[k], message + "Under key #{k.inspect} "
57
+ else
58
+ assert_equal v, hash2[k], message + "Under key #{k.inspect} "
59
+ end
60
+ end
61
+ end
45
62
  end
46
63
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: id_please
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Stuart
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-18 00:00:00 -05:00
12
+ date: 2010-02-19 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -71,6 +71,7 @@ files:
71
71
  - VERSION
72
72
  - id_please.gemspec
73
73
  - lib/id_please.rb
74
+ - lib/id_please/assignment_map.rb
74
75
  - lib/id_please/config.rb
75
76
  - lib/id_please/model_extensions.rb
76
77
  - lib/id_please/model_extensions/for_assignment.rb