+ [[false, 'foo@example.com', true, nil],
+ [false, 'bar@example.com', nil, true],
+ [true, 'foo@example.com', true, nil],
+ [true, 'bar@example.com', true, true],
+ [false, false, nil, nil],
+ [true, false, true, nil]
+ ].each do |auto_admin_first_user_config, auto_admin_user_config, foo_should_be_admin, bar_should_be_admin|
+ # In each case, 'foo' is created first, then 'bar', then 'bar2', then 'baz'.
+ test "auto admin with auto_admin_first=#{auto_admin_first_user_config} auto_admin=#{auto_admin_user_config}" do
+
+ if auto_admin_first_user_config
+ # This test requires no admin users exist (except for the system user)
+ users(:admin).delete
+ @all_users = User.where("uuid not like '%-000000000000000'").where(:is_admin => true).find(:all)
+ assert_equal 0, @all_users.size, "No admin users should exist (except for the system user)"
+ end