123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- <?php
- class ContextReactionBlockTest extends DrupalWebTestCase {
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Reaction: block',
- 'description' => 'Test block reaction.',
- 'group' => 'Context',
- );
- }
- function setUp() {
- parent::setUp('context', 'ctools', 'block');
- $admin_user = $this->drupalCreateUser(array(
- 'administer site configuration',
- 'administer blocks'
- ));
- $this->drupalLogin($admin_user);
- }
- function test() {
- ctools_include('export');
- $context = ctools_export_new_object('context');
- $context->name = 'testcontext';
- $context->conditions = array('sitewide' => array('values' => array(1)));
- $context->reactions = array('block' => array('blocks' => array(
- 'user-online' => array(
- 'module' => 'user',
- 'delta' => 'online',
- 'region' => 'sidebar_first',
- 'weight' => 0,
- ),
- )));
- $saved = context_save($context);
- $this->assertTrue($saved, "Context 'testcontext' saved.");
- theme_enable(array('bartik'));
- variable_set('theme_default', 'bartik');
- $this->refreshVariables();
- $this->drupalGet('node');
- $this->assertText('Who\'s online');
- // Test title override of code provided block
- $edit = array('title' => 'Context Online Block');
- $this->drupalPost('admin/structure/block/manage/user/online/configure', $edit, t('Save block'));
- $this->drupalPost('admin/config/development/performance', array(), t('Clear all caches'));
- $this->drupalGet('node');
- $this->assertText('Context Online Block');
- // Test title of custom block
- $edit = array(
- 'info' => 'Context Custom Block Info',
- 'title' => 'Context Custom Block Title',
- 'body[value]' => $this->randomName(32),
- );
- $this->drupalPost('admin/structure/block/add', $edit, t('Save block'));
- $bid = db_query("SELECT bid FROM {block_custom} WHERE info = :info", array(':info' => $edit['info']))->fetchField();
- $context->reactions['block']['blocks']["block-{$bid}"] = array(
- 'module' => 'block',
- 'delta' => $bid,
- 'region' => 'sidebar_first',
- 'weight' => 2,
- );
- $saved = context_save($context);
- $this->assertTrue($saved, "Context 'testcontext' saved.");
- $this->drupalGet('node');
- $this->assertText('Context Custom Block Title');
- // Cleanup
- context_delete($context);
- }
- }
- class ContextReactionBlockAjaxTest extends DrupalWebTestCase {
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Reaction: block ajax',
- 'description' => 'Test block reaction ajax behavior.',
- 'group' => 'Context',
- );
- }
- function setUp() {
- parent::setUp('context', 'context_ui', 'ctools');
- $admin_user = $this->drupalCreateUser(array('context ajax block access'));
- $this->drupalLogin($admin_user);
- }
- function test() {
- $this->drupalGet('node', array(
- 'query' => array('context_block' => 'user-online,testcontext')
- ));
- $this->assertText('"status":1', 'Successful return status.');
- $this->assertText('Who\\u0027s online', 'Expected text in block data.');
- }
- }
- class ContextReactionBlockAjaxAccessTest extends DrupalWebTestCase {
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Reaction: block ajax access',
- 'description' => 'Test block reaction ajax access behavior.',
- 'group' => 'Context',
- );
- }
- function setUp() {
- parent::setUp('context', 'ctools');
- $admin_user = $this->drupalCreateUser();
- $this->drupalLogin($admin_user);
- }
- function test() {
- $this->drupalGet('node', array(
- 'query' => array('context_block' => 'user-online,testcontext')
- ));
- $this->assertText('"status":0', 'Failed return status.');
- }
- }
- class ContextReactionMenuTest extends DrupalWebTestCase {
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Reaction: menu',
- 'description' => 'Test menu reaction.',
- 'group' => 'Context',
- );
- }
- function setUp() {
- parent::setUp('context', 'ctools', 'menu', 'blog');
- $admin_user = $this->drupalCreateUser(array(
- 'administer menu',
- 'administer nodes',
- 'administer site configuration',
- 'create blog content',
- ));
- $this->drupalLogin($admin_user);
- }
- function test() {
- ctools_include('export');
- $context = ctools_export_new_object('context');
- $context->name = 'testcontext';
- $context->conditions = array('sitewide' => array('values' => array(1)));
- $context->reactions = array('menu' => 'node/add');
- $saved = context_save($context);
- $this->assertTrue($saved, "Context 'testcontext' saved.");
- $this->drupalPost('admin/structure/menu/settings', array('menu_main_links_source' => 'navigation'), 'Save configuration');
- theme_enable(array('bartik'));
- variable_set('theme_default', 'bartik');
- $this->refreshVariables();
- $output = $this->drupalGet('user');
- $url = url('node/add');
- $active = $this->xpath('//li[contains(@class, "active")]/a[@href="' . $url . '"]');
- $this->assertTrue(!empty($active), t('Active menu item found.'));
- // Cleanup
- context_delete($context);
- }
- }
- class ContextReactionBreadcrumbTest extends DrupalWebTestCase {
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Reaction: breadcrumb',
- 'description' => 'Test breadcrumb reaction.',
- 'group' => 'Context',
- );
- }
- function setUp() {
- parent::setUp('context', 'ctools');
- $admin_user = $this->drupalCreateUser(array(
- 'access administration pages',
- 'administer nodes',
- 'administer site configuration'
- ));
- $this->drupalLogin($admin_user);
- }
- function test() {
- ctools_include('export');
- $context = ctools_export_new_object('context');
- $context->name = 'testcontext';
- $context->conditions = array('path' => array('values' => array('node')));
- $context->reactions = array('breadcrumb' => 'admin/structure');
- $saved = context_save($context);
- $this->assertTrue($saved, "Context 'testcontext' saved.");
- theme_enable(array('bartik'));
- variable_set('theme_default', 'bartik');
- $this->refreshVariables();
- $output = $this->drupalGet('node');
- $this->assertText('Home » Administration » Structure');
- $output = $this->drupalGet('user');
- $this->assertNoText('Home » Administration » Structure');
- // Cleanup
- context_delete($context);
- }
- }
- class ContextReactionThemeHtmlTest extends DrupalWebTestCase {
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Reaction: theme html',
- 'description' => 'Test theme html reaction.',
- 'group' => 'Context',
- );
- }
- function setUp() {
- parent::setUp('context', 'ctools');
- $admin_user = $this->drupalCreateUser(array(
- 'access administration pages',
- 'administer nodes',
- 'administer site configuration'
- ));
- $this->drupalLogin($admin_user);
- }
- function test() {
- ctools_include('export');
- $context = ctools_export_new_object('context');
- $context->name = 'testcontext';
- $context->conditions = array('sitewide' => array('values' => array(1)));
- $context->reactions = array('theme_html' => array('class' => 'context-test-class'));
- $saved = context_save($context);
- $this->assertTrue($saved, "Context 'testcontext' saved.");
- $output = $this->drupalGet('node');
- $this->assertRaw('context-test-class');
- // Cleanup
- context_delete($context);
- }
- }
- class ContextReactionRegionTest extends DrupalWebTestCase {
- protected $profile = 'testing';
- public static function getInfo() {
- return array(
- 'name' => 'Reaction: Region',
- 'description' => 'Test Region disable reaction.',
- 'group' => 'Context',
- );
- }
- function setUp() {
- parent::setUp('context', 'ctools');
- $admin_user = $this->drupalCreateUser(array(
- 'access administration pages',
- 'administer nodes',
- 'administer site configuration'
- ));
- $this->drupalLogin($admin_user);
- }
- function test() {
- ctools_include('export');
- theme_enable(array('bartik'));
- variable_set('theme_default', 'bartik');
- global $theme;
- $context = ctools_export_new_object('context');
- $context->name = 'testcontext';
- $context->conditions = array('sitewide' => array('values' => array(1)));
- $context->reactions = array(
- 'block' => array(
- 'blocks' => array(
- 'user-online' => array(
- 'module' => 'user',
- 'delta' => 'online',
- 'region' => 'sidebar_first',
- 'weight' => '-10',
- ),
- ),
- ),
- 'region' => array('bartik' => array('disable' => array('sidebar_first' => 'sidebar_first')))
- );
- $saved = context_save($context);
- $this->assertTrue($saved, "Context 'testcontext' saved.");
- $output = $this->drupalGet('node');
- $this->assertNoText("Who's online");
- // Cleanup
- context_delete($context);
- }
- }
|