type = "album"; $album->parent_id = $parent ? $parent->id : 1; $album->name = "name_$rand"; $album->title = "title_$rand"; return $album; } static function random_album($parent=null) { return test::random_album_unsaved($parent)->save()->reload(); } static function random_photo_unsaved($parent=null) { $rand = mt_rand(); $photo = ORM::factory("item"); $photo->type = "photo"; $photo->parent_id = $parent ? $parent->id : 1; $photo->set_data_file(MODPATH . "gallery/tests/test.jpg"); $photo->name = "name_$rand.jpg"; $photo->title = "title_$rand"; return $photo; } static function random_photo($parent=null) { return test::random_photo_unsaved($parent)->save()->reload(); } static function random_user($password="password") { $rand = "name_" . mt_rand(); return identity::create_user($rand, $rand, $password, "$rand@rand.com"); } static function random_group() { return identity::create_group((string)mt_rand()); } static function random_name($item=null) { $rand = "name_" . mt_rand(); if ($item && $item->is_photo()) { $rand .= ".jpg"; } return $rand; } static function starts_with($outer, $inner) { return strpos($outer, $inner) === 0; } static function call_and_capture($callback) { ob_start(); call_user_func($callback); return ob_get_clean(); } static function random_tag() { $tag = ORM::factory("tag"); $tag->name = (string)mt_rand(); // Reload so that ORM coerces all fields into strings. return $tag->save()->reload(); } static function diff($a, $b) { fwrite(fopen($a_name = tempnam("/tmp", "test"), "w"), $a); fwrite(fopen($b_name = tempnam("/tmp", "test"), "w"), $b); return `diff $a_name $b_name`; } }