Example #1
0
 public static function setUpBeforeClass()
 {
     /*
      * WP's test suite wipes out BP's directory page mappings with `_delete_all_posts()`.
      * We must reestablish them before our tests can be successfully run.
      */
     bp_core_add_page_mappings(bp_get_option('bp-active-components'), 'delete');
     // Fake WP mail globals, to avoid errors
     add_filter('wp_mail', array('BP_UnitTestCase', 'setUp_wp_mail'));
     add_filter('wp_mail_from', array('BP_UnitTestCase', 'tearDown_wp_mail'));
 }
 public function setUp()
 {
     parent::setUp();
     /*
      * WP's test suite wipes out BP's directory page mappings with `_delete_all_posts()`.
      * We must reestablish them before our tests can be successfully run.
      */
     bp_core_add_page_mappings(bp_get_option('bp-active-components'), 'delete');
     $this->factory = new BP_UnitTest_Factory();
     // Fixes warnings in multisite functions
     $_SERVER['REMOTE_ADDR'] = '';
     global $wpdb;
     // Clean up after autocommits.
     add_action('bp_blogs_recorded_existing_blogs', array($this, 'set_autocommit_flag'));
     // Make sure Activity actions are reset before each test
     $this->reset_bp_activity_actions();
     // Make sure all Post types activities globals are reset before each test
     $this->reset_bp_activity_post_types_globals();
 }
 /**
  * Create registration pages when single site registration is turned on.
  *
  * @since 2.7.0
  *
  * @param string $old_value
  * @param string $value
  */
 public function single_site_registration_on($old_value, $value)
 {
     // Single site.
     if (!is_multisite() && !empty($value)) {
         bp_core_add_page_mappings(array('register' => 1, 'activate' => 1));
     }
 }
/**
 * Handle saving the Component settings.
 *
 * @since 1.6.0
 *
 * @todo Use settings API when it supports saving network settings
 */
function bp_core_admin_components_settings_handler()
{
    // Bail if not saving settings.
    if (!isset($_POST['bp-admin-component-submit'])) {
        return;
    }
    // Bail if nonce fails.
    if (!check_admin_referer('bp-admin-component-setup')) {
        return;
    }
    // Settings form submitted, now save the settings. First, set active components.
    if (isset($_POST['bp_components'])) {
        // Load up BuddyPress.
        $bp = buddypress();
        // Save settings and upgrade schema.
        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
        require_once $bp->plugin_dir . '/bp-core/admin/bp-core-admin-schema.php';
        $submitted = stripslashes_deep($_POST['bp_components']);
        $bp->active_components = bp_core_admin_get_active_components_from_submitted_settings($submitted);
        bp_core_install($bp->active_components);
        bp_core_add_page_mappings($bp->active_components);
        bp_update_option('bp-active-components', $bp->active_components);
    }
    // Where are we redirecting to?
    $base_url = bp_get_admin_url(add_query_arg(array('page' => 'bp-components', 'updated' => 'true'), 'admin.php'));
    // Redirect.
    wp_redirect($base_url);
    die;
}
Example #5
0
 /**
  * @group bp_core_activation_notice
  */
 public function test_bp_core_activation_notice_register_activate_pages_created_signup_allowed()
 {
     $bp = buddypress();
     $reset_bp_pages = $bp->pages;
     $reset_admin_notices = $bp->admin->notices;
     add_filter('bp_get_signup_allowed', '__return_true', 999);
     $ac = buddypress()->active_components;
     bp_core_add_page_mappings(array_keys($ac));
     // Reset pages
     $bp->pages = bp_core_get_directory_pages();
     bp_core_activation_notice();
     remove_filter('bp_get_signup_allowed', '__return_true', 999);
     $missing_pages = array();
     foreach (buddypress()->admin->notices as $notice) {
         preg_match_all('/<strong>(.+?)<\\/strong>/', $notice['message'], $missing_pages);
     }
     $this->assertNotContains('Register', $missing_pages[1]);
     $this->assertNotContains('Activate', $missing_pages[1]);
     // Reset buddypress() vars
     $bp->pages = $reset_bp_pages;
     $bp->admin->notices = $reset_admin_notices;
 }
 public function test_bp_core_get_directory_pages_register_activate_page_notcreated_signups_notallowed()
 {
     add_filter('bp_get_signup_allowed', '__return_false', 999);
     $ac = buddypress()->active_components;
     bp_core_add_page_mappings(array_keys($ac));
     $directory_pages = bp_core_get_directory_pages();
     remove_filter('bp_get_signup_allowed', '__return_false', 999);
     $this->assertFalse(isset($directory_pages->register));
     $this->assertFalse(isset($directory_pages->activate));
 }
/**
 * BuddyPress's version updater looks at what the current database version is,
 * and runs whatever other code is needed.
 *
 * This is most-often used when the data schema changes, but should also be used
 * to correct issues with BuddyPress metadata silently on software update.
 *
 * @since BuddyPress (1.7)
 */
function bp_version_updater()
{
    // Get the raw database version
    $raw_db_version = (int) bp_get_db_version_raw();
    $default_components = apply_filters('bp_new_install_default_components', array('activity' => 1, 'members' => 1, 'xprofile' => 1));
    require_once BP_PLUGIN_DIR . '/bp-core/admin/bp-core-schema.php';
    // Install BP schema and activate only Activity and XProfile
    if (bp_is_install()) {
        // Apply schema and set Activity and XProfile components as active
        bp_core_install($default_components);
        bp_update_option('bp-active-components', $default_components);
        bp_core_add_page_mappings($default_components, 'delete');
        // Upgrades
    } else {
        // Run the schema install to update tables
        bp_core_install();
        // 1.5
        if ($raw_db_version < 1801) {
            bp_update_to_1_5();
            bp_core_add_page_mappings($default_components, 'delete');
        }
        // 1.6
        if ($raw_db_version < 6067) {
            bp_update_to_1_6();
        }
    }
    /** All done! *************************************************************/
    // Bump the version
    bp_version_bump();
}
/**
 * Initialize an update or installation of BuddyPress.
 *
 * BuddyPress's version updater looks at what the current database version is,
 * and runs whatever other code is needed - either the "update" or "install"
 * code.
 *
 * This is most often used when the data schema changes, but should also be used
 * to correct issues with BuddyPress metadata silently on software update.
 *
 * @since 1.7.0
 */
function bp_version_updater()
{
    // Get the raw database version
    $raw_db_version = (int) bp_get_db_version_raw();
    /**
     * Filters the default components to activate for a new install.
     *
     * @since 1.7.0
     *
     * @param array $value Array of default components to activate.
     */
    $default_components = apply_filters('bp_new_install_default_components', array('activity' => 1, 'members' => 1, 'settings' => 1, 'xprofile' => 1, 'notifications' => 1));
    require_once buddypress()->plugin_dir . '/bp-core/admin/bp-core-admin-schema.php';
    // Install BP schema and activate only Activity and XProfile
    if (bp_is_install()) {
        // Apply schema and set Activity and XProfile components as active
        bp_core_install($default_components);
        bp_update_option('bp-active-components', $default_components);
        bp_core_add_page_mappings($default_components, 'delete');
        // Upgrades
    } else {
        // Run the schema install to update tables
        bp_core_install();
        // 1.5.0
        if ($raw_db_version < 1801) {
            bp_update_to_1_5();
            bp_core_add_page_mappings($default_components, 'delete');
        }
        // 1.6.0
        if ($raw_db_version < 6067) {
            bp_update_to_1_6();
        }
        // 1.9.0
        if ($raw_db_version < 7553) {
            bp_update_to_1_9();
        }
        // 1.9.2
        if ($raw_db_version < 7731) {
            bp_update_to_1_9_2();
        }
        // 2.0.0
        if ($raw_db_version < 7892) {
            bp_update_to_2_0();
        }
        // 2.0.1
        if ($raw_db_version < 8311) {
            bp_update_to_2_0_1();
        }
        // 2.2.0
        if ($raw_db_version < 9181) {
            bp_update_to_2_2();
        }
        // 2.3.0
        if ($raw_db_version < 9615) {
            bp_update_to_2_3();
        }
    }
    /** All done! *************************************************************/
    // Bump the version
    bp_version_bump();
}
/**
 * Initialize an update or installation of BuddyPress.
 *
 * BuddyPress's version updater looks at what the current database version is,
 * and runs whatever other code is needed - either the "update" or "install"
 * code.
 *
 * This is most often used when the data schema changes, but should also be used
 * to correct issues with BuddyPress metadata silently on software update.
 *
 * @since 1.7.0
 */
function bp_version_updater()
{
    // Get the raw database version.
    $raw_db_version = (int) bp_get_db_version_raw();
    /**
     * Filters the default components to activate for a new install.
     *
     * @since 1.7.0
     *
     * @param array $value Array of default components to activate.
     */
    $default_components = apply_filters('bp_new_install_default_components', array('activity' => 1, 'members' => 1, 'settings' => 1, 'xprofile' => 1, 'notifications' => 1));
    require_once ABSPATH . 'wp-admin/includes/upgrade.php';
    require_once buddypress()->plugin_dir . '/bp-core/admin/bp-core-admin-schema.php';
    $switched_to_root_blog = false;
    // Make sure the current blog is set to the root blog.
    if (!bp_is_root_blog()) {
        switch_to_blog(bp_get_root_blog_id());
        bp_register_taxonomies();
        $switched_to_root_blog = true;
    }
    // Install BP schema and activate only Activity and XProfile.
    if (bp_is_install()) {
        // Apply schema and set Activity and XProfile components as active.
        bp_core_install($default_components);
        bp_update_option('bp-active-components', $default_components);
        bp_core_add_page_mappings($default_components, 'delete');
        bp_core_install_emails();
        // Upgrades.
    } else {
        // Run the schema install to update tables.
        bp_core_install();
        // Version 1.5.0.
        if ($raw_db_version < 1801) {
            bp_update_to_1_5();
            bp_core_add_page_mappings($default_components, 'delete');
        }
        // Version 1.6.0.
        if ($raw_db_version < 6067) {
            bp_update_to_1_6();
        }
        // Version 1.9.0.
        if ($raw_db_version < 7553) {
            bp_update_to_1_9();
        }
        // Version 1.9.2.
        if ($raw_db_version < 7731) {
            bp_update_to_1_9_2();
        }
        // Version 2.0.0.
        if ($raw_db_version < 7892) {
            bp_update_to_2_0();
        }
        // Version 2.0.1.
        if ($raw_db_version < 8311) {
            bp_update_to_2_0_1();
        }
        // Version 2.2.0.
        if ($raw_db_version < 9181) {
            bp_update_to_2_2();
        }
        // Version 2.3.0.
        if ($raw_db_version < 9615) {
            bp_update_to_2_3();
        }
        // Version 2.5.0.
        if ($raw_db_version < 10440) {
            bp_update_to_2_5();
        }
        // Version 2.7.0.
        if ($raw_db_version < 11105) {
            bp_update_to_2_7();
        }
    }
    /* All done! *************************************************************/
    // Bump the version.
    bp_version_bump();
    if ($switched_to_root_blog) {
        restore_current_blog();
    }
}
Example #10
0
<?php

$GLOBALS['wp_tests_options'] = array('active_plugins' => array(basename(dirname(dirname(__FILE__))) . '/loader.php', 'buddypress/bp-loader.php'));
require getenv('WP_TESTS_DIR') . '/includes/bootstrap.php';
require_once BP_PLUGIN_DIR . 'bp-core/admin/bp-core-schema.php';
$components = array('groups' => 1, 'activity' => 1);
bp_core_install($components);
bp_update_option('bp-active-components', $components);
bp_core_add_page_mappings($components, 'delete');
 /**
  * @group bp_core_add_page_mappings
  */
 public function test_bp_core_add_page_mappings()
 {
     $bp = buddypress();
     $reset_bp_pages = $bp->pages;
     $expected = array('activity', 'groups', 'members');
     if (is_multisite()) {
         $expected = array('activity', 'blogs', 'groups', 'members');
     }
     bp_core_add_page_mappings($bp->active_components);
     $bp_pages = array_keys(bp_get_option('bp-pages'));
     sort($bp_pages);
     $this->assertEquals($expected, $bp_pages);
     $bp->pages = $reset_bp_pages;
 }
 /**
  * @group bp_core_activation_notice
  */
 public function test_bp_core_activation_notice_register_activate_pages_created_signup_allowed()
 {
     $bp = buddypress();
     $reset_bp_pages = $bp->pages;
     $reset_admin_notices = $bp->admin->notices;
     add_filter('bp_get_signup_allowed', '__return_true', 999);
     $ac = buddypress()->active_components;
     bp_core_add_page_mappings(array_keys($ac));
     // Reset pages
     $bp->pages = bp_core_get_directory_pages();
     bp_core_activation_notice();
     remove_filter('bp_get_signup_allowed', '__return_true', 999);
     $missing_pages = array();
     foreach (buddypress()->admin->notices as $notice) {
         if (false !== strpos($notice['message'], 'BuddyPress is almost ready')) {
             continue;
         }
         preg_match_all('/<strong>(.+?)<\\/strong>/', $notice['message'], $missing_pages);
     }
     $this->assertEmpty($missing_pages);
     // Reset buddypress() vars
     $bp->pages = $reset_bp_pages;
     $bp->admin->notices = $reset_admin_notices;
 }