/** * @ticket 21749 */ function test_wp_theme_uris_with_spaces() { $theme = new WP_Theme('theme with spaces', $this->theme_root . '/subdir'); // Make sure subdir/ is considered part of the stylesheet, as we must avoid encoding /'s. $this->assertEquals('subdir/theme with spaces', $theme->get_stylesheet()); // Check that in a URI path, we have raw url encoding (spaces become %20) // Don't try to verify the complete URI path. get_theme_root_uri() breaks down quickly. $this->assertEquals('theme%20with%20spaces', basename($theme->get_stylesheet_directory_uri())); $this->assertEquals('theme%20with%20spaces', basename($theme->get_template_directory_uri())); // Check that wp_customize_url() uses url encoding, as it is a query arg (spaces become +) $this->assertEquals(admin_url('customize.php?theme=theme+with+spaces'), wp_customize_url('theme with spaces')); }
private function loadFile($file, \WP_Theme $theme) { if (!is_file($file) || !preg_match('/\\.ya?ml$/', $file)) { return; } $theme_dir = $theme->get_stylesheet_directory(); $theme_uri = $theme->get_stylesheet_directory_uri(); $components_uri = WP_CONTENT_URL . '/components'; ob_start(); include $file; $content = ob_get_clean(); try { $config = Yaml::parse($content); self::array_overwrite($this->configs, $config); } catch (ParseException $e) { trigger_error("Error while parsing {$file}: " . $e->getMessage(), E_USER_WARNING); } }