2015-04-19 16:46:59 +02:00

90 lines
3.0 KiB
Plaintext

<?php
class ContextUnitTest extends DrupalWebTestCase {
protected $profile = 'testing';
public static function getInfo() {
return array(
'name' => 'API unit tests',
'description' => 'Sets all possible context types and checks for integrity.',
'group' => 'Context',
);
}
public function setUp() {
parent::setUp('context');
}
public function test() {
// define possible data types
$set_types = array(
'bool' => TRUE,
'int' => 1,
'string' => 'lorem',
'array' => array('lorem'),
'object' => new stdClass(),
);
$id_types = array('int', 'string');
// NAMESPACE
foreach ($set_types as $type => $val) {
$set = context_set($val);
// Test return value of context_set()
if (in_array($type, $id_types)) {
// test set integrity
$this->assertIdentical(true, $set, 'Space set successful.');
// test get integrity
$this->assertIdentical(array(), context_get($val), 'Namespace get successful.');
$this->assertIdentical(true, context_exists($val), 'Namespace exists successful.');
}
else {
$this->assertIdentical(false, $set, 'Prohibited namespace not established.');
}
context_clear();
}
// NAMESPACE+ATTRIBUTE
foreach ($set_types as $type => $val) {
foreach ($set_types as $type2 => $val2) {
// test set integrity
$set = context_set($val, $val2);
if (in_array($type, $id_types)) {
// test set integrity
if ($type2 != 'bool') {
$this->assertIdentical(true, $set, 'Namespace and attribute set successful.');
}
else {
$this->assertIdentical(false, $set);
}
// test get + exists integrity
if (in_array($type2, $id_types)) {
$this->assertIdentical(true, (context_get($val, $val2) == $val2), 'Namespace and attribute get successful.');
$this->assertIdentical(true, context_exists($val, $val2), 'Namespace and attribute exists.');
}
elseif (in_array($type2, array('array', 'object'))) {
$this->assertIdentical(true, (context_get($val) == $val2), 'Namespace and attribute get successful.');
$this->assertIdentical(true, context_exists($val), 'Namespace and attribute exists.');
}
}
}
context_clear();
}
// NAMESPACE+ATTRIBUTE+VALUE, o lord
foreach ($set_types as $type => $val) {
foreach ($set_types as $type2 => $val2) {
foreach ($set_types as $type3 => $val3) {
$set = context_set($val, $val2, $val3);
if (in_array($type, $id_types)) {
if (in_array($type2, $id_types)) {
$this->assertIdentical(true, (context_get($val, $val2, $val3) == $val3), 'Namespace, attribute and value get successful.');
$this->assertIdentical(true, context_exists($val, $val2, $val3), 'Namespace, attribute and value exists.');
}
}
context_clear();
}
}
}
}
}