function CtoolsContextIDTestCase::testNextContextId

Test ctools_context_next_id in various scenarios.

File

tests/context.test, line 127

Class

CtoolsContextIDTestCase
@file Test the keyword substitution functionality.

Code

public function testNextContextId() {
    $test_objects = $this->getTestContexts();
    // If no object list or name is given?
    $value = ctools_context_next_id(NULL, NULL);
    $expected = 1;
    $this->assertEqual($value, $expected, 'NULL objects have next id ' . $expected);
    // If no object list is given?
    $value = ctools_context_next_id(NULL, 'bar');
    $expected = 1;
    $this->assertEqual($value, $expected, 'NULL objects have next id ' . $expected);
    // If no object list is given (another way)?
    $value = ctools_context_next_id(array(), 'bar');
    $expected = 1;
    $this->assertEqual($value, $expected, 'Empty objects have next id ' . $expected);
    // The name is empty... which is just another name.
    $value = ctools_context_next_id($test_objects, '');
    $expected = 1;
    $this->assertEqual($value, $expected, 'Unnamed objects have next id ' . $expected . ' (got ' . $value . ')');
    // The value of the id key is not a number.
    $value = ctools_context_next_id($test_objects, 'foo_bar');
    $expected = 1;
    $this->assertEqual($value, $expected, 'Objects with non-integer ids are ignored ' . $expected);
    // One object's id is not a number (ignore) but another is valid.
    $value = ctools_context_next_id($test_objects, 'baz');
    $expected = 16;
    $this->assertEqual($value, $expected, 'Baz\'s objects have next id ' . $expected);
    // An expected case: there is one match and the id is numeric.
    $value = ctools_context_next_id($test_objects, 'foo');
    $expected = 2;
    $this->assertEqual($value, $expected, 'Foo\'s objects have next id ' . $expected);
    // Another expected case: there are multiple numeric IDs.
    $value = ctools_context_next_id($test_objects, 'bar');
    $expected = 100;
    $this->assertEqual($value, $expected, 'Bar\'s objects have next id ' . $expected);
}