Your IP : 216.73.216.171


Current Path : /home/ereika83/www/wp-content/plugins/edit-flow/tests/
Upload File :
Current File : /home/ereika83/www/wp-content/plugins/edit-flow/tests/test-edit-flow-story-budget.php

<?php

class WP_Test_Edit_Flow_Story_Budget extends WP_UnitTestCase {

	protected static $admin_user_id;

	public static function wpSetUpBeforeClass( $factory ) {
		self::$admin_user_id = $factory->user->create( array( 'role' => 'administrator' ) );
	}

	public static function wpTearDownAfterClass() {
		self::delete_user( self::$admin_user_id );
	}

	/**
	 * Test that the story budget date filter handles valid date
	 */
	public function test_story_budget_set_start_date_filter() {
    global $edit_flow;

    $user = get_user_by( 'id', self::$admin_user_id );

    wp_set_current_user( self::$admin_user_id );

    // Users filters need to be set (they're set by default)
    $edit_flow->story_budget->update_user_filters();

    $new_filters['start_date'] = '2019-12-01';

    $users_filters = $edit_flow->story_budget->update_user_filters_from_form_date_range_change( $user, $new_filters );

    $this->assertEquals( '2019-12-01', $users_filters['start_date'] );
  }
    
    /**
	 * Test that the story budget date filter handles invalid date
	 */
	public function test_story_budget_set_start_date_filter_invalid() {
    global $edit_flow;

    $user = get_user_by( 'id', self::$admin_user_id );

    wp_set_current_user( self::$admin_user_id );

    // Users filters need to be set (they're set by default)
    $edit_flow->story_budget->update_user_filters();

    $new_filters['start_date'] = 'not a date';

    $users_filters = $edit_flow->story_budget->update_user_filters_from_form_date_range_change( $user, $new_filters );

    $this->assertEquals( date( 'Y-m-d' ), $users_filters['start_date'] );
  }
    
    /**
	 * Test that the story budget number of days filter handles valid number of days
	 */
	public function test_story_budget_set_number_days_filter() {
    global $edit_flow;

    $user = get_user_by( 'id', self::$admin_user_id );

    wp_set_current_user( self::$admin_user_id );

    // Users filters need to be set (they're set by default)
    $edit_flow->story_budget->update_user_filters();

    $new_filters['number_days'] = 10;

    $users_filters = $edit_flow->story_budget->update_user_filters_from_form_date_range_change( $user, $new_filters );

    $this->assertEquals( 10, $users_filters['number_days'] );
  }
    
    /**
	 * Test that the story budget number of days filter handles invalid number of days
	 */
	public function test_story_budget_set_number_days_filter_invalid() {
    global $edit_flow;

    $user = get_user_by( 'id', self::$admin_user_id );

    wp_set_current_user( self::$admin_user_id );

    // Users filters need to be set (they're set by default)
    $edit_flow->story_budget->update_user_filters();

    $new_filters['number_days'] = 'not days';

    $users_filters = $edit_flow->story_budget->update_user_filters_from_form_date_range_change( $user, $new_filters );

    $this->assertEquals( 1, $users_filters['number_days'] );
  }
    
    /**
	 * Test that the story budget handles both valid date and number of days filters
	 */
	public function test_story_budget_set_date_and_number_days_filters() {
    global $edit_flow;

    $user = get_user_by( 'id', self::$admin_user_id );

    wp_set_current_user( self::$admin_user_id );

    // Users filters need to be set (they're set by default)
    $edit_flow->story_budget->update_user_filters();

    $new_filters['start_date'] = '2019-12-01';
    $new_filters['number_days'] = 10;

    $users_filters = $edit_flow->story_budget->update_user_filters_from_form_date_range_change( $user, $new_filters );

    $this->assertEquals( 10, $users_filters['number_days'] );
    $this->assertEquals( '2019-12-01', $users_filters['start_date'] );
  }
  
  /**
	* Test that calendar has default custom statuses
	*/
	public function test_calendar_custom_statuses() {
		global $edit_flow;

        $statuses = array_map( 
            function( $status ) {
                return $status->name;
            }, 
            $edit_flow->calendar->get_calendar_post_stati() 
        );

		$this->assertContains( 'future', $statuses );
		$this->assertContains( 'pitch', $statuses );
	}

	/**
	 * Test that calendar can show registered status
	 */
	public function test_calendar_custom_statuses_registered() {
		global $edit_flow;

		$new_custom_status = array(
			'term' => __( 'New Custom Status' ),
			'args' => array(
				'slug'        => 'new-custom-status',
				'description' => 'description',
				'position'    => 6,
			),
        );
        
        $edit_flow->custom_status->add_custom_status( $new_custom_status['term'], $new_custom_status['args'] );

        $statuses = array_map( 
            function( $status ) {
                return $status->name;
            }, 
            $edit_flow->calendar->get_calendar_post_stati() 
        );
        
        $this->assertContains( 'future', $statuses );
	}
}