312 lines
9.0 KiB
Plaintext
312 lines
9.0 KiB
Plaintext
<?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);
|
|
}
|
|
}
|