forked from WordPress/wordpress-develop
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathincludesTheme.php
More file actions
68 lines (55 loc) · 2.14 KB
/
includesTheme.php
File metadata and controls
68 lines (55 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
/**
* @group themes
*/
class Tests_Admin_includesTheme extends WP_UnitTestCase {
function setUp() {
parent::setUp();
$this->theme_root = DIR_TESTDATA . '/themedir1';
$this->orig_theme_dir = $GLOBALS['wp_theme_directories'];
$GLOBALS['wp_theme_directories'] = array( WP_CONTENT_DIR . '/themes', $this->theme_root );
add_filter('theme_root', array($this, '_theme_root'));
add_filter( 'stylesheet_root', array($this, '_theme_root') );
add_filter( 'template_root', array($this, '_theme_root') );
// clear caches
wp_clean_themes_cache();
unset( $GLOBALS['wp_themes'] );
}
function tearDown() {
$GLOBALS['wp_theme_directories'] = $this->orig_theme_dir;
remove_filter('theme_root', array($this, '_theme_root'));
remove_filter( 'stylesheet_root', array($this, '_theme_root') );
remove_filter( 'template_root', array($this, '_theme_root') );
wp_clean_themes_cache();
unset( $GLOBALS['wp_themes'] );
parent::tearDown();
}
// replace the normal theme root dir with our premade test dir
function _theme_root($dir) {
return $this->theme_root;
}
/**
* @ticket 10959
* @ticket 11216
* @expectedDeprecated get_theme
* @expectedDeprecated get_themes
*/
function test_page_templates() {
$theme = get_theme( 'Page Template Theme' );
$this->assertNotEmpty( $theme );
switch_theme( $theme['Template'], $theme['Stylesheet'] );
$templates = get_page_templates();
$this->assertCount( 3, $templates );
$this->assertEquals( "template-top-level.php", $templates['Top Level'] );
$this->assertEquals( "subdir/template-sub-dir.php", $templates['Sub Dir'] );
$this->assertEquals( "template-header.php", $templates['This Template Header Is On One Line'] );
$theme = wp_get_theme( 'page-templates' );
$this->assertNotEmpty( $theme );
switch_theme( $theme['Template'], $theme['Stylesheet'] );
$templates = get_page_templates();
$this->assertCount( 3, $templates );
$this->assertEquals( "template-top-level.php", $templates['Top Level'] );
$this->assertEquals( "subdir/template-sub-dir.php", $templates['Sub Dir'] );
$this->assertEquals( "template-header.php", $templates['This Template Header Is On One Line'] );
}
}