Example #1
0
 public static function get_public_flag_range_max4timeline_id($timeline_id)
 {
     if (!($objs = self::get4timeline_id($timeline_id))) {
         return false;
     }
     $public_flag_range_max = false;
     foreach ($objs as $obj) {
         // 暫定的に album_image 限定
         if ($obj->foreign_table != 'album_image') {
             continue;
         }
         $child_obj = \Album\Model_AlbumImage::check_authority($obj->foreign_id);
         if ($public_flag_range_max === false || \Site_Util::check_is_expanded_public_flag_range($public_flag_range_max, $child_obj->public_flag)) {
             $public_flag_range_max = $child_obj->public_flag;
         }
     }
     return $public_flag_range_max;
 }
Example #2
0
 /**
  * @dataProvider check_is_expanded_public_flag_range_provider
  */
 public function test_check_is_expanded_public_flag_range($original_public_flag = null, $changed_public_flag = null, $expected = null)
 {
     $test = Site_Util::check_is_expanded_public_flag_range($original_public_flag, $changed_public_flag);
     $this->assertEquals($expected, $test);
 }
Example #3
0
 public static function save_timeline($member_id, $public_flag = null, $type_key = null, $foreign_id = null, $save_datetime = null, $body = null, Model_Timeline $timeline = null, $child_foreign_ids = array())
 {
     if (!Site_Util::check_type_enabled($type_key)) {
         return;
     }
     list($type, $foreign_table, $child_foreign_table) = Site_Util::get_timeline_save_values($type_key);
     if (!$timeline) {
         $timeline = Site_Util::get_timeline_object($type_key, $foreign_id);
     }
     $is_new = empty($timeline->id);
     if (!is_null($body)) {
         $timeline->body = $body;
     }
     if ($is_new) {
         $timeline->member_id = $member_id;
         $timeline->type = $type;
         $timeline->public_flag = is_null($public_flag) ? conf('public_flag.default') : $public_flag;
         $timeline->foreign_table = $foreign_table;
         $timeline->foreign_id = $foreign_id;
         $timeline->created_at = $save_datetime ?: \Date::time()->format('mysql');
     } else {
         if (\Site_Util::check_is_expanded_public_flag_range($timeline->public_flag, $public_flag)) {
             $timeline->public_flag = $public_flag;
         }
         if ($child_foreign_ids) {
             $timeline->sort_datetime = $save_datetime ?: \Date::time()->format('mysql');
         }
         if ($timeline->is_changed() && $save_datetime) {
             $timeline->updated_at = $save_datetime;
         }
     }
     $timeline->save();
     if ($child_foreign_ids) {
         Model_TimelineChildData::save_multiple($timeline->id, $child_foreign_table, $child_foreign_ids);
     }
     return $timeline;
 }
Example #4
0
 /**
  * @dataProvider update_public_flag_provider
  */
 public function test_update_public_flag($default_public_flag, $public_flag, $timeline_public_flag_expected)
 {
     if (!self::$album_image || !is_null($default_public_flag)) {
         self::$album_image = $this->get_album_image(array('public_flag' => $default_public_flag), 2);
     }
     $timelines = \Timeline\Model_Timeline::get4foreign_table_and_foreign_ids('album', self::$album_image->album_id, \Config::get('timeline.types.album_image'));
     $timeline_before = array_shift($timelines);
     // timeline view cache 作成
     if (self::$is_check_timeline_view_cache) {
         $timeline_view_cache_before = \Timeline\Site_Util::make_view_cache4foreign_table_and_foreign_id('album', $album->id, \Config::get('timeline.types.album_image'));
     }
     $before = array('public_flag' => self::$album_image->public_flag, 'created_at' => self::$album_image->created_at, 'updated_at' => self::$album_image->updated_at);
     // update public_flag
     \Util_Develop::sleep();
     self::$album_image->update_public_flag($public_flag);
     $is_updated = $public_flag != $before['public_flag'];
     // 値
     $this->assertEquals($public_flag, self::$album_image->public_flag);
     // date
     // 変更あり
     if ($is_updated) {
         $this->assertTrue(\Util_Date::check_is_future(self::$album_image->updated_at, $before['updated_at']));
     } else {
         $this->assertEquals($before['updated_at'], self::$album_image->updated_at);
     }
     // timeline
     if (is_enabled('timeline')) {
         // 件数
         $this->assertEquals(self::$timeline_count, \Util_Orm::get_count_all('\\Timeline\\Model_Timeline'));
         $this->assertEquals(self::$timeline_cache_count, \Util_Orm::get_count_all('\\Timeline\\Model_TimelineCache'));
         $timelines = \Timeline\Model_Timeline::get4foreign_table_and_foreign_ids('album', self::$album_image->album_id, \Config::get('timeline.types.album_image'));
         $timeline = array_shift($timelines);
         $this->assertEquals($timeline_public_flag_expected, $timeline->public_flag);
         // 変更あり
         if ($is_updated) {
             if (\Site_Util::check_is_expanded_public_flag_range($before['public_flag'], $public_flag)) {
                 $this->assertTrue(\Util_Date::check_is_future($timeline->sort_datetime, self::$album_image->created_at));
             }
         } else {
             $this->assertEquals($timeline_before->updated_at, $timeline->updated_at);
         }
         // timeline view cache check
         if (self::$is_check_timeline_view_cache) {
             $this->assertEmpty(\Timeline\Site_Util::get_view_cache($timeline->id));
         }
     }
 }
Example #5
0
 public function test_check_type_album_image()
 {
     if (!($list = Model_Timeline::get4type_key('album_image'))) {
         \Util_Develop::output_test_info(__FILE__, __LINE__);
         $this->markTestSkipped('No record for test.');
     }
     foreach ($list as $obj) {
         // check for reference data.
         $this->assertEquals('album', $obj->foreign_table);
         $album = \Album\Model_Album::check_authority($obj->foreign_id);
         $this->assertNotEmpty($album);
         // check for member
         $member = \Model_Member::check_authority($obj->member_id);
         $this->assertNotEmpty($member);
         // check for member_id
         $this->assertEquals($album->member_id, $obj->member_id);
         // check for timeline_child_data
         $timeline_child_datas = Model_TimelineChildData::get4timeline_id($obj->id);
         $this->assertNotEmpty($timeline_child_datas);
         $public_flag_max_range = null;
         if ($timeline_child_datas) {
             foreach ($timeline_child_datas as $timeline_child_data) {
                 // check for reference data.
                 $this->assertEquals('album_image', $timeline_child_data->foreign_table);
                 // check for album_image
                 $album_image = \Album\Model_AlbumImage::check_authority($timeline_child_data->foreign_id);
                 $this->assertNotEmpty($album_image);
                 // check for album_id
                 $this->assertEquals($album->id, $album_image->album_id);
                 // check for public_flag.
                 if (is_null($public_flag_max_range)) {
                     $public_flag_max_range = $album_image->public_flag;
                 }
                 if (\Site_Util::check_is_expanded_public_flag_range($public_flag_max_range, $album_image->public_flag)) {
                     $public_flag_max_range = $album_image->public_flag;
                 }
             }
             $this->assertEquals($public_flag_max_range, $obj->public_flag);
         }
     }
 }