diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-10-02 00:50:45 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-10-02 00:50:45 +0000 |
commit | 04fd066be265047d1ff14bd456bd87f48d80cbf6 (patch) | |
tree | c7b804617e4b8336b3ff14a7033bbe55f9db2d50 /modules/system/system.test | |
parent | 04b6c362849b61200c8f220141d8836a42acbb21 (diff) | |
download | brdo-04fd066be265047d1ff14bd456bd87f48d80cbf6.tar.gz brdo-04fd066be265047d1ff14bd456bd87f48d80cbf6.tar.bz2 |
- Patch #484868 by sime, sun | Dries: split parser from drupal_parse_info_file().
Diffstat (limited to 'modules/system/system.test')
-rw-r--r-- | modules/system/system.test | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/modules/system/system.test b/modules/system/system.test index e38658fa3..9df53b78f 100644 --- a/modules/system/system.test +++ b/modules/system/system.test @@ -1219,3 +1219,74 @@ class TokenReplaceTestCase extends DrupalWebTestCase { $this->assertFalse(strcmp($generated['[node:title]'], $node->title), t('Unsanitized token generated properly.')); } } + +class InfoFileParserTestCase extends DrupalUnitTestCase { + public static function getInfo() { + return array( + 'name' => 'Info file format parser', + 'description' => 'Tests proper parsing of a .info file formatted string.', + 'group' => 'System', + ); + } + + /** + * Test drupal_parse_info_format(). + */ + function testDrupalParseInfoFormat() { + $config = ' +simple = Value +quoted = " Value" +multiline = "Value + Value" +array[] = Value1 +array[] = Value2 +array_assoc[a] = Value1 +array_assoc[b] = Value2 +array_deep[][][] = Value +array_deep_assoc[a][b][c] = Value +array_space[a b] = Value'; + + $expected = array( + 'simple' => 'Value', + 'quoted' => ' Value', + 'multiline' => "Value\n Value", + 'array' => array( + 0 => 'Value1', + 1 => 'Value2', + ), + 'array_assoc' => array( + 'a' => 'Value1', + 'b' => 'Value2', + ), + 'array_deep' => array( + 0 => array( + 0 => array( + 0 => 'Value', + ), + ), + ), + 'array_deep_assoc' => array( + 'a' => array( + 'b' => array( + 'c' => 'Value', + ), + ), + ), + 'array_space' => array( + 'a b' => 'Value', + ), + ); + + $parsed = drupal_parse_info_format($config); + + $this->assertEqual($parsed['simple'], $expected['simple'], t('Set a simple value.')); + $this->assertEqual($parsed['quoted'], $expected['quoted'], t('Set a simple value in quotes.')); + $this->assertEqual($parsed['multiline'], $expected['multiline'], t('Set a multiline value.')); + $this->assertEqual($parsed['array'], $expected['array'], t('Set a simple array.')); + $this->assertEqual($parsed['array_assoc'], $expected['array_assoc'], t('Set an associative array.')); + $this->assertEqual($parsed['array_deep'], $expected['array_deep'], t('Set a nested array.')); + $this->assertEqual($parsed['array_deep_assoc'], $expected['array_deep_assoc'], t('Set a nested associative array.')); + $this->assertEqual($parsed['array_space'], $expected['array_space'], t('Set an array with a whitespace in the key.')); + $this->assertEqual($parsed, $expected, t('Entire parsed .info string and expected array are identical.')); + } +} |