123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- /**
- * @file
- * Tests for the Features Extra Block module.
- */
- /**
- * Tests the custom block functionality.
- */
- class FeaturesExtraBlockTestCase extends DrupalWebTestCase {
- // The installation profile that will be used to run the tests.
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Install, revert and override',
- 'description' => 'Tests if a feature containing blocks and block settings can be installed, reverted and detected as being overridden.',
- 'group' => 'Features Extra',
- );
- }
- public function setUp() {
- parent::setUp(array(
- 'features_extra_test',
- ));
- $admin_user = $this->drupalCreateUser(array('administer features'));
- $this->drupalLogin($admin_user);
- }
- /**
- * Check that all modules that are required for the test suite are available.
- */
- public function testRequiredModules() {
- $required_modules = array(
- 'block',
- 'ctools',
- 'features',
- 'fe_block',
- 'features_extra_test',
- );
- foreach ($required_modules as $module) {
- $this->assertTrue(module_exists($module), format_string('The required module @module exists.', array('@module' => $module)));
- }
- }
- /**
- * Test if custom blocks can be reverted and that overrides are detected.
- */
- public function testBlockRevert() {
- module_load_include('inc', 'features', 'features.export');
- // Ensure that the exported custom block is properly available.
- $bid = fe_block_get_bid('features_extra_test_block');
- $block = block_load('block', $bid);
- $this->assertTrue(!empty($block), 'The reverted block is present.');
- $components = array(
- 'fe_block_boxes',
- 'fe_block_settings',
- );
- foreach ($components as $component) {
- // Ensure that the component is in its default state initially.
- $states = features_get_component_states(array('features_extra_test'), FALSE, TRUE);
- $this->assertTrue($states['features_extra_test'][$component] === FEATURES_DEFAULT, t('@component state: Default.', array('@component' => $component)));
- // Override component and test that Features detects the override.
- $callback = "override_{$component}";
- $this->$callback($block);
- $states = features_get_component_states(array('features_extra_test'), FALSE, TRUE);
- $this->assertTrue($states['features_extra_test'][$component] === FEATURES_OVERRIDDEN, t('@component state: Overridden.', array('@component' => $component)));
- }
- // Revert component and ensure that component has reverted.
- features_revert(array('features_extra_test' => $components));
- drupal_flush_all_caches();
- foreach ($components as $component) {
- $states = features_get_component_states(array('features_extra_test'), FALSE, TRUE);
- $this->assertTrue($states['features_extra_test'][$component] === FEATURES_DEFAULT, t('@component reverted successfully.', array('@component' => $component)));
- }
- }
- /**
- * Change the content of the test block so the component becomes overridden.
- */
- protected function override_fe_block_boxes($block) {
- db_update('block_custom')
- ->fields(array('body' => 'overridden'))
- ->condition('bid', $block->bid)
- ->execute();
- }
- /**
- * Change a setting of the test block so the component becomes overridden.
- */
- protected function override_fe_block_settings($block) {
- db_update('block')
- ->fields(array('region' => 'footer'))
- ->condition('bid', $block->bid)
- ->condition('theme', 'bartik')
- ->execute();
- }
- }
|