array('nofeatures', __DIR__.'/fixtures/theme/nofeatures'),
array('defaulttheme', __DIR__.'/fixtures/theme/defaulttheme'),
);
-
// List of themes is const for test.
if ($notheme) {
$themelist = array('defaulttheme');
$themelist = array('withfeatures', 'nofeatures', 'defaulttheme');
}
+ $thememap = [];
+ foreach ($themelist as $themename) {
+ $mock = $this->getMockBuilder('theme_config');
+ $mock->disableOriginalConstructor();
+ $thememap[] = [$themename, $mock->getMock()];
+ }
+
$behatconfigutil->expects($this->any())
->method('get_list_of_themes')
->will($this->returnValue($themelist));
->method('get_theme_test_directory')
->will($this->returnValueMap($map));
+ // Theme directory for testing.
+ $behatconfigutil->expects($this->any())
+ ->method('get_theme_config')
+ ->will($this->returnValueMap($thememap));
+
$behatconfigutil->expects($this->any())
->method('get_default_theme')
->will($this->returnValue('defaulttheme'));
public function test_get_config_file_contents_with_single_run() {
$mockbuilder = $this->getMockBuilder('behat_config_util');
- $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme'));
+ $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme', 'get_theme_config'));
$behatconfigutil = $mockbuilder->getMock();
public function test_get_config_file_contents_with_single_run_no_theme() {
$mockbuilder = $this->getMockBuilder('behat_config_util');
- $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme'));
+ $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme', 'get_theme_config'));
$behatconfigutil = $mockbuilder->getMock();
public function test_get_config_file_contents_with_parallel_run() {
$mockbuilder = $this->getMockBuilder('behat_config_util');
- $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme'));
+ $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme', 'get_theme_config'));
$behatconfigutil = $mockbuilder->getMock();
public function test_get_config_file_contents_with_parallel_run_optimize_tags() {
$mockbuilder = $this->getMockBuilder('behat_config_util');
- $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme'));
+ $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme', 'get_theme_config'));
$behatconfigutil = $mockbuilder->getMock();
$mockbuilder = $this->getMockBuilder('behat_config_util');
$mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_blacklisted_tests_for_theme',
- 'get_default_theme'));
+ 'get_default_theme', 'get_theme_config'));
$behatconfigutil = $mockbuilder->getMock();
$mockbuilder = $this->getMockBuilder('behat_config_util');
$mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_blacklisted_tests_for_theme',
- 'get_default_theme'));
+ 'get_default_theme', 'get_theme_config'));
$behatconfigutil = $mockbuilder->getMock();
public function test_core_features_to_include_in_specified_theme() {
$mockbuilder = $this->getMockBuilder('behat_config_util');
- $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme'));
+ $mockbuilder->setMethods(array('get_theme_test_directory', 'get_list_of_themes', 'get_default_theme', 'get_theme_config'));
$behatconfigutil = $mockbuilder->getMock();
foreach ($themes as $themename => $themedir) {
// Load the theme config.
try {
- $theme = theme_config::load($themename);
+ $theme = $this->get_theme_config($themename);
} catch (Exception $e) {
// Bad theme, just skip it for now.
continue;
return $selectablethemes;
}
+ /**
+ * Return the theme config for a given theme name.
+ * This is done so we can mock it in PHPUnit.
+ *
+ * @param $themename name of theme
+ * @return theme_config
+ */
+ public function get_theme_config($themename) {
+ return theme_config::load($themename);
+ }
+
/**
* Return theme directory.
*
}
try {
- $themeconfig = theme_config::load($theme);
+ $themeconfig = $this->get_theme_config($theme);
} catch (Exception $e) {
// This theme has no theme config.
return [];
}
$rc = new \ReflectionClass($contextclass);
- $parent = $rc->getParentClass();
while ($rc = $rc->getParentClass()) {
if (isset($contexts[$rc->name])) {
unset($contexts[$rc->name]);