assert_equal($photo->id, $resolved->id); } public function resolve_needs_permission_test() { $album = test::random_album(); $photo = test::random_photo($album); $album->reload(); // new photo changed the album in the db access::deny(identity::everybody(), "view", $album); identity::set_active_user(identity::guest()); try { data_rest::resolve($photo->id); $this->assert_true(false); } catch (Kohana_404_Exception $e) { // pass } } public function basic_get_test() { $photo = test::random_photo(); $request = new stdClass(); $request->url = rest::url("data", $photo, "thumb"); $request->params = new stdClass(); $request->params->size = "thumb"; $this->assert_same($photo->thumb_path(), data_rest::get($request)); $request->params->size = "resize"; $this->assert_same($photo->resize_path(), data_rest::get($request)); $request->params->size = "full"; $this->assert_same($photo->file_path(), data_rest::get($request)); } public function illegal_access_test() { $album = test::random_album(); $photo = test::random_photo($album); $album->reload(); access::deny(identity::everybody(), "view", $album); identity::set_active_user(identity::guest()); $request = new stdClass(); $request->url = rest::url("data", $photo, "thumb"); $request->params = new stdClass(); $request->params->size = "thumb"; try { data_rest::get($request); $this->assert_true(false); } catch (Kohana_404_Exception $e) { // pass } } public function missing_file_test() { $photo = test::random_photo(); $request = new stdClass(); $request->url = rest::url("data", $photo, "thumb"); $request->params = new stdClass(); $request->params->size = "thumb"; unlink($photo->thumb_path()); // oops! try { data_rest::get($request); $this->assert_true(false); } catch (Kohana_404_Exception $e) { // pass } } public function cache_buster_test() { $photo = test::random_photo(); $this->assert_same( url::abs_site("rest/data/{$photo->id}?size=thumb&m=" . filemtime($photo->thumb_path())), data_rest::url($photo, "thumb")); } }