public function test_sync_callable_whitelist()
 {
     // $this->setSyncClientDefaults();
     $callables = array('wp_max_upload_size' => wp_max_upload_size(), 'is_main_network' => Jetpack::is_multi_network(), 'is_multi_site' => is_multisite(), 'main_network_site' => Jetpack_Sync_Functions::main_network_site_url(), 'single_user_site' => Jetpack::is_single_user_site(), 'updates' => Jetpack::get_updates(), 'home_url' => Jetpack_Sync_Functions::home_url(), 'site_url' => Jetpack_Sync_Functions::site_url(), 'has_file_system_write_access' => Jetpack_Sync_Functions::file_system_write_access(), 'is_version_controlled' => Jetpack_Sync_Functions::is_version_controlled(), 'taxonomies' => Jetpack_Sync_Functions::get_taxonomies(), 'post_types' => Jetpack_Sync_Functions::get_post_types(), 'post_type_features' => Jetpack_Sync_Functions::get_post_type_features(), 'rest_api_allowed_post_types' => Jetpack_Sync_Functions::rest_api_allowed_post_types(), 'rest_api_allowed_public_metadata' => Jetpack_Sync_Functions::rest_api_allowed_public_metadata(), 'sso_is_two_step_required' => Jetpack_SSO_Helpers::is_two_step_required(), 'sso_should_hide_login_form' => Jetpack_SSO_Helpers::should_hide_login_form(), 'sso_match_by_email' => Jetpack_SSO_Helpers::match_by_email(), 'sso_new_user_override' => Jetpack_SSO_Helpers::new_user_override(), 'sso_bypass_default_login_form' => Jetpack_SSO_Helpers::bypass_login_forward_wpcom(), 'wp_version' => Jetpack_Sync_Functions::wp_version(), 'get_plugins' => Jetpack_Sync_Functions::get_plugins(), 'active_modules' => Jetpack::get_active_modules(), 'hosting_provider' => Jetpack_Sync_Functions::get_hosting_provider(), 'locale' => get_locale(), 'site_icon_url' => Jetpack_Sync_Functions::site_icon_url());
     if (is_multisite()) {
         $callables['network_name'] = Jetpack::network_name();
         $callables['network_allow_new_registrations'] = Jetpack::network_allow_new_registrations();
         $callables['network_add_new_users'] = Jetpack::network_add_new_users();
         $callables['network_site_upload_space'] = Jetpack::network_site_upload_space();
         $callables['network_upload_file_types'] = Jetpack::network_upload_file_types();
         $callables['network_enable_administration_menus'] = Jetpack::network_enable_administration_menus();
     }
     $this->sender->do_sync();
     foreach ($callables as $name => $value) {
         // TODO: figure out why _sometimes_ the 'support' value of
         // the post_types value is being removed from the output
         if ($name === 'post_types') {
             continue;
         }
         $this->assertCallableIsSynced($name, $value);
     }
     $whitelist_keys = array_keys($this->callable_module->get_callable_whitelist());
     $callables_keys = array_keys($callables);
     // Are we testing all the callables in the defaults?
     $whitelist_and_callable_keys_difference = array_diff($whitelist_keys, $callables_keys);
     $this->assertTrue(empty($whitelist_and_callable_keys_difference), 'Some whitelisted options don\'t have a test: ' . print_r($whitelist_and_callable_keys_difference, 1));
     // Are there any duplicate keys?
     $unique_whitelist = array_unique($whitelist_keys);
     $this->assertEquals(count($unique_whitelist), count($whitelist_keys), 'The duplicate keys are: ' . print_r(array_diff_key($whitelist_keys, array_unique($whitelist_keys)), 1));
 }
Beispiel #2
0
    /**
     * Outputs the Jetpack SSO button and description as well as the toggle link
     * for switching between Jetpack SSO and default login.
     */
    function login_form()
    {
        $site_name = get_bloginfo('name');
        if (!$site_name) {
            $site_name = get_bloginfo('url');
        }
        $display_name = !empty($_COOKIE['jetpack_sso_wpcom_name_' . COOKIEHASH]) ? $_COOKIE['jetpack_sso_wpcom_name_' . COOKIEHASH] : false;
        $gravatar = !empty($_COOKIE['jetpack_sso_wpcom_gravatar_' . COOKIEHASH]) ? $_COOKIE['jetpack_sso_wpcom_gravatar_' . COOKIEHASH] : false;
        ?>
		<div id="jetpack-sso-wrap">
			<?php 
        if ($display_name && $gravatar) {
            ?>
				<div id="jetpack-sso-wrap__user">
					<img width="72" height="72" src="<?php 
            echo esc_html($gravatar);
            ?>
" />

					<h2>
						<?php 
            echo wp_kses(sprintf(__('Log in as <span>%s</span>', 'jetpack'), esc_html($display_name)), array('span' => true));
            ?>
					</h2>
				</div>

			<?php 
        }
        ?>


			<div id="jetpack-sso-wrap__action">
				<?php 
        echo $this->build_sso_button(array(), 'is_primary');
        ?>

				<?php 
        if ($display_name && $gravatar) {
            ?>
					<a rel="nofollow" class="jetpack-sso-wrap__reauth" href="<?php 
            echo esc_url($this->build_sso_button_url(array('force_reauth' => '1')));
            ?>
">
						<?php 
            esc_html_e('Log in as a different WordPress.com user', 'jetpack');
            ?>
					</a>
				<?php 
        } else {
            ?>
					<p>
						<?php 
            echo esc_html(sprintf(__('You can now save time spent logging in by connecting your WordPress.com account to %s.', 'jetpack'), esc_html($site_name)));
            ?>
					</p>
				<?php 
        }
        ?>
			</div>

			<?php 
        if (!Jetpack_SSO_Helpers::should_hide_login_form()) {
            ?>
				<div class="jetpack-sso-or">
					<span><?php 
            esc_html_e('Or', 'jetpack');
            ?>
</span>
				</div>

				<a href="<?php 
            echo esc_url(add_query_arg('jetpack-sso-show-default-form', '1'));
            ?>
" class="jetpack-sso-toggle wpcom">
					<?php 
            esc_html_e('Log in with username and password', 'jetpack');
            ?>
				</a>

				<a href="<?php 
            echo esc_url(add_query_arg('jetpack-sso-show-default-form', '0'));
            ?>
" class="jetpack-sso-toggle default">
					<?php 
            esc_html_e('Log in with WordPress.com', 'jetpack');
            ?>
				</a>
			<?php 
        }
        ?>
		</div>
		<?php 
    }
 function test_sso_helpers_should_hide_login_form_filter_false()
 {
     add_filter('jetpack_remove_login_form', '__return_false');
     $this->assertFalse(Jetpack_SSO_Helpers::should_hide_login_form());
     remove_filter('jetpack_remove_login_form', '__return_false');
 }