90 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | 
