item_id = item::root()->id; $comment->author_id = identity::guest()->id; $comment->text = "text"; $comment->save(); } catch (ORM_Validation_Exception $e) { $this->assert_equal(array("guest_name" => "required", "guest_email" => "required"), $e->validation->errors()); return; } } public function guest_email_must_be_well_formed_test() { try { $comment = ORM::factory("comment"); $comment->item_id = item::root()->id; $comment->author_id = identity::guest()->id; $comment->guest_name = "guest"; $comment->guest_email = "bogus"; $comment->text = "text"; $comment->save(); } catch (ORM_Validation_Exception $e) { $this->assert_equal(array("guest_email" => "invalid"), $e->validation->errors()); return; } } public function cant_view_comments_for_unviewable_items_test() { $album = test::random_album(); $comment = ORM::factory("comment"); $comment->item_id = $album->id; $comment->author_id = identity::admin_user()->id; $comment->text = "text"; $comment->save(); identity::set_active_user(identity::guest()); // We can see the comment when permissions are granted on the album access::allow(identity::everybody(), "view", $album); $this->assert_true( ORM::factory("comment")->viewable()->where("comments.id", "=", $comment->id)->count_all()); // We can't see the comment when permissions are denied on the album access::deny(identity::everybody(), "view", $album); $this->assert_false( ORM::factory("comment")->viewable()->where("comments.id", "=", $comment->id)->count_all()); } }