function RulesTestDataCase::testTypeMatching
Same name in other branches
- 7.x-2.x tests/rules.test \RulesTestDataCase::testTypeMatching()
Test type matching
File
-
d7-tests/
rules_test_data_case.test, line 72
Class
- RulesTestDataCase
- Test rules data wrappers.
Code
function testTypeMatching() {
$entity = array(
'type' => 'entity',
);
$node = array(
'type' => 'node',
);
$this->assertTrue(RulesData::typesMatch($node, $entity), 'Types match.');
$this->assertFalse(RulesData::typesMatch($entity, $node), 'Types don\'t match.');
$this->assertTrue(RulesData::typesMatch($node + array(
'bundle' => 'page',
), $node), 'Types match.');
$this->assertTrue(RulesData::typesMatch($node + array(
'bundle' => 'page',
), $entity), 'Types match.');
$this->assertTrue(RulesData::typesMatch(array(
'type' => 'list<node>',
), array(
'type' => 'list',
)), 'Types match.');
$this->assertTrue(RulesData::typesMatch($node + array(
'bundle' => 'page',
), $node + array(
'bundles' => array(
'page',
'story',
),
)), 'Types match.');
$this->assertFalse(RulesData::typesMatch($node, $node + array(
'bundles' => array(
'page',
'story',
),
)), 'Types don\'t match.');
// Test that a type matches its grand-parent type (text > decimal > integer)
$this->assertTrue(RulesData::typesMatch(array(
'type' => 'integer',
), array(
'type' => 'text',
)), 'Types match.');
$this->assertFalse(RulesData::typesMatch(array(
'type' => 'text',
), array(
'type' => 'integer',
)), 'Types don\'t match.');
}