summaryrefslogtreecommitdiff
path: root/modules/system/system.test
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-10-02 00:50:45 +0000
committerDries Buytaert <dries@buytaert.net>2009-10-02 00:50:45 +0000
commit04fd066be265047d1ff14bd456bd87f48d80cbf6 (patch)
treec7b804617e4b8336b3ff14a7033bbe55f9db2d50 /modules/system/system.test
parent04b6c362849b61200c8f220141d8836a42acbb21 (diff)
downloadbrdo-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.test71
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.'));
+ }
+}