class ArrayHelperTest in Helper 7
Hierarchy
- class \DrupalTestCase
- class \DrupalUnitTestCase
- class \ArrayHelperTest
- class \DrupalUnitTestCase
Expanded class hierarchy of ArrayHelperTest
File
- tests/
ArrayHelperTest.test, line 5
View source
class ArrayHelperTest extends DrupalUnitTestCase {
public static function getInfo() {
return array(
'name' => 'ArrayHelper',
'description' => 'Tests for the ArrayHelper class.',
'group' => 'Helper',
);
}
function testNestedValue() {
$input = array(
0 => array(
'test' => 'foo',
'keys' => array(
'first',
'a',
),
),
1 => (object) array(
'test' => 'bar',
'keys' => array(
'second',
'b',
),
),
2 => new ArrayHelperTestObject(array(
'test' => 'foo',
'keys' => array(
'third',
'c',
),
)),
);
$this
->assertIdentical(ArrayHelper::filterByNestedValue($input, array(
'test',
), 'foo'), array(
0 => $input[0],
2 => $input[2],
));
$this
->assertIdentical(ArrayHelper::filterByNestedValue($input, array(
'test',
), 'bar'), array(
1 => $input[1],
));
$this
->assertIdentical(ArrayHelper::filterByNestedValue($input, array(
'test',
), 'ferzle'), array());
$this
->assertIdentical(ArrayHelper::extractNestedValuesToArray($input, array(
'test',
)), array(
0 => 'foo',
1 => 'bar',
2 => 'foo',
));
$this
->assertIdentical(ArrayHelper::extractNestedValuesToArray($input, array(
'test',
), array(
'keys',
0,
)), array(
'first' => 'foo',
'second' => 'bar',
'third' => 'foo',
));
$this
->assertIdentical(ArrayHelper::extractNestedValuesToArray($input, array(
'test',
), array(
'keys',
1,
)), array(
'a' => 'foo',
'b' => 'bar',
'c' => 'foo',
));
$this
->assertIdentical(ArrayHelper::extractNestedValuesToArray($input, array(
'invalid',
)), array());
}
function testMapKeys() {
$input = array(
'a' => 1,
'b' => '1',
'c' => 1,
0 => '2',
1 => 2,
);
$expected = array(
'#a' => 1,
'#b' => '1',
'#c' => 1,
'#0' => '2',
'#1' => 2,
);
$result = ArrayHelper::mapKeys(function ($value) {
return '#' . $value;
}, $input);
$this
->assertIdentical($result, $expected);
}
function testFilterKeys() {
$input = array_fill_keys(range(0, 10), 'test');
$expected1 = array_fill_keys(array(
0,
3,
6,
9,
), 'test');
$expected2 = array_fill_keys(array(
1,
2,
4,
5,
7,
8,
10,
), 'test');
$result = ArrayHelper::filterKeys($input, function ($value) {
return $value % 3 === 0;
}, $input);
$this
->assertIdentical($result, $expected1);
$result = ArrayHelper::filterKeys($input, function ($value) {
return $value % 3;
}, $input);
$this
->assertIdentical($result, $expected2);
}
public function testSpliceAssociativeValues() {
$input = array(
0 => 'value1',
'key1' => 'value2',
1 => 'value3',
'key2' => 'value4',
);
$result = ArrayHelper::spliceAssociativeValues($input, array(
'newkey' => 'newvalue',
), 2);
$this
->assertIdentical($result, array(
0 => 'value1',
'key1' => 'value2',
'newkey' => 'newvalue',
1 => 'value3',
'key2' => 'value4',
));
$result = ArrayHelper::spliceAssociativeValues($input, array(
'newkey' => 'newvalue',
), 1, 1);
$this
->assertIdentical($result, array(
0 => 'value1',
'newkey' => 'newvalue',
1 => 'value3',
'key2' => 'value4',
));
$result = ArrayHelper::spliceAssociativeValues($input, array(
'newkey' => 'newvalue',
), 2, 1);
$this
->assertIdentical($result, array(
0 => 'value1',
'key1' => 'value2',
'newkey' => 'newvalue',
'key2' => 'value4',
));
}
public function testChunkEvenly() {
$input = array_combine(range(10, 1, -1), range(1, 10));
$result = ArrayHelper::chunkEvenly($input, 3);
$this
->assertIdentical($result, array(
0 => array(
1,
2,
3,
4,
),
1 => array(
5,
6,
7,
),
2 => array(
8,
9,
10,
),
));
$result = ArrayHelper::chunkEvenly($input, 4, TRUE);
$this
->assertIdentical($result, array(
0 => array(
10 => 1,
9 => 2,
8 => 3,
),
1 => array(
7 => 4,
6 => 5,
5 => 6,
),
2 => array(
4 => 7,
3 => 8,
),
3 => array(
2 => 9,
1 => 10,
),
));
// Test using $num greater than items in the array.
$result = ArrayHelper::chunkEvenly($input, 11);
$this
->assertIdentical($result, array(
0 => array(
1,
),
1 => array(
2,
),
2 => array(
3,
),
3 => array(
4,
),
4 => array(
5,
),
5 => array(
6,
),
6 => array(
7,
),
7 => array(
8,
),
8 => array(
9,
),
9 => array(
10,
),
));
// Test empty array.
$this
->assertIdentical(ArrayHelper::chunkEvenly(array(), 1), array());
$this
->assertIdentical(ArrayHelper::chunkEvenly(array(), 5), array());
// Test $num less than 1.
try {
$this
->assertIdentical(ArrayHelper::chunkEvenly($input, 0), array());
throw new Exception();
} catch (InvalidArgumentException $e) {
$this
->pass("InvalidArgumentException thrown.");
} catch (Exception $e) {
$this
->fail("InvalidArgumentException not thrown.");
}
// Test non-numeric $num
try {
$this
->assertIdentical(ArrayHelper::chunkEvenly($input, 'invalid'), array());
throw new Exception();
} catch (InvalidArgumentException $e) {
$this
->pass("InvalidArgumentException thrown.");
} catch (Exception $e) {
$this
->fail("InvalidArgumentException not thrown.");
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ArrayHelperTest:: |
public static | function | ||
ArrayHelperTest:: |
public | function | ||
ArrayHelperTest:: |
function | |||
ArrayHelperTest:: |
function | |||
ArrayHelperTest:: |
function | |||
ArrayHelperTest:: |
public | function | ||
DrupalTestCase:: |
protected | property | Assertions thrown in that test case. | |
DrupalTestCase:: |
protected | property | The database prefix of this test run. | |
DrupalTestCase:: |
protected | property | The original file directory, before it was changed for testing purposes. | |
DrupalTestCase:: |
public | property | Current results of this test case. | |
DrupalTestCase:: |
protected | property | Flag to indicate whether the test has been set up. | |
DrupalTestCase:: |
protected | property | ||
DrupalTestCase:: |
protected | property | ||
DrupalTestCase:: |
protected | property | This class is skipped when looking for the source of an assertion. | |
DrupalTestCase:: |
protected | property | The test run ID. | |
DrupalTestCase:: |
protected | property | Time limit for the test. | |
DrupalTestCase:: |
public | property | Whether to cache the installation part of the setUp() method. | |
DrupalTestCase:: |
public | property | Whether to cache the modules installation part of the setUp() method. | |
DrupalTestCase:: |
protected | property | URL to the verbose output file directory. | |
DrupalTestCase:: |
protected | function | Internal helper: stores the assert. | |
DrupalTestCase:: |
protected | function | Check to see if two values are equal. | |
DrupalTestCase:: |
protected | function | Check to see if a value is false (an empty string, 0, NULL, or FALSE). | |
DrupalTestCase:: |
protected | function | Check to see if two values are identical. | |
DrupalTestCase:: |
protected | function | Check to see if two values are not equal. | |
DrupalTestCase:: |
protected | function | Check to see if two values are not identical. | |
DrupalTestCase:: |
protected | function | Check to see if a value is not NULL. | |
DrupalTestCase:: |
protected | function | Check to see if a value is NULL. | |
DrupalTestCase:: |
protected | function | Check to see if a value is not false (not an empty string, 0, NULL, or FALSE). | |
DrupalTestCase:: |
public static | function | Delete an assertion record by message ID. | |
DrupalTestCase:: |
protected | function | Fire an error assertion. | 1 |
DrupalTestCase:: |
public | function | Handle errors during test runs. | 1 |
DrupalTestCase:: |
protected | function | Handle exceptions. | |
DrupalTestCase:: |
protected | function | Fire an assertion that is always negative. | |
DrupalTestCase:: |
public static | function | Converts a list of possible parameters into a stack of permutations. | |
DrupalTestCase:: |
protected | function | Cycles through backtrace until the first non-assertion method is found. | |
DrupalTestCase:: |
public static | function | Returns the database connection to the site running Simpletest. | |
DrupalTestCase:: |
public static | function | Store an assertion from outside the testing context. | |
DrupalTestCase:: |
protected | function | Fire an assertion that is always positive. | |
DrupalTestCase:: |
public static | function | Generates a random string containing letters and numbers. | |
DrupalTestCase:: |
public static | function | Generates a random string of ASCII characters of codes 32 to 126. | |
DrupalTestCase:: |
public | function | Run all tests in this class. | |
DrupalTestCase:: |
protected | function | Logs a verbose message in a text file. | |
DrupalUnitTestCase:: |
protected | function | Sets up unit test environment. | 9 |
DrupalUnitTestCase:: |
protected | function | 1 | |
DrupalUnitTestCase:: |
function |
Constructor for DrupalUnitTestCase. Overrides DrupalTestCase:: |