- def test_friend_with
- create(:friend, :befriender => users(:normal_user), :befriendee => users(:public_user))
- assert users(:normal_user).is_friends_with?(users(:public_user))
- assert !users(:normal_user).is_friends_with?(users(:inactive_user))
- assert !users(:public_user).is_friends_with?(users(:normal_user))
- assert !users(:public_user).is_friends_with?(users(:inactive_user))
- assert !users(:inactive_user).is_friends_with?(users(:normal_user))
- assert !users(:inactive_user).is_friends_with?(users(:public_user))
+ def test_display_name_user_id_new
+ existing_user = create(:user)
+ user = build(:user)
+
+ user.display_name = "user_#{existing_user.id}"
+ assert_not_predicate user, :valid?, "user_<id> name is valid for existing user id when it shouldn't be"
+
+ user.display_name = "user_#{existing_user.id + 1}"
+ assert_not_predicate user, :valid?, "user_<id> name is valid for new user id when it shouldn't be"
+ end
+
+ def test_display_name_user_id_rename
+ existing_user = create(:user)
+ user = create(:user)
+
+ user.display_name = "user_#{existing_user.id}"
+ assert_not_predicate user, :valid?, "user_<id> name is valid for existing user id when it shouldn't be"
+
+ user.display_name = "user_#{user.id}"
+ assert_predicate user, :valid?, "user_<id> name is invalid for own id, when it should be"
+ end
+
+ def test_display_name_user_id_unchanged_is_valid
+ user = build(:user, :display_name => "user_0")
+ user.save(:validate => false)
+ user.reload
+
+ assert_predicate user, :valid?, "user_0 display_name is invalid but it hasn't been changed"
+ end
+
+ def test_follows
+ alice = create(:user, :active)
+ bob = create(:user, :active)
+ charlie = create(:user, :active)
+ create(:follow, :follower => alice, :following => bob)
+
+ assert alice.follows?(bob)
+ assert_not alice.follows?(charlie)
+ assert_not bob.follows?(alice)
+ assert_not bob.follows?(charlie)
+ assert_not charlie.follows?(bob)
+ assert_not charlie.follows?(alice)