factor/extra/ini-file/ini-file-tests.factor

131 lines
2.6 KiB
Factor

! Copyright (C) 2010 John Benediktsson
! See http://factorcode.org/license.txt for BSD license
USING: ini-file tools.test ;
IN: ini-file.tests
{ H{ } } [ "" string>ini ] unit-test
{ H{ { "section" H{ } } } } [ "[section]" string>ini ] unit-test
{ H{ { "section" H{ } } } } [ "[\"section\" ]" string>ini ] unit-test
{ H{ { " some name with spaces " H{ } } } }
[ "[ \" some name with spaces \"]" string>ini ] unit-test
{ H{ { "[]" H{ } } } } [ "[\\[\\]]" string>ini ] unit-test
{ H{ { "foo" "bar" } } } [ "foo=bar" string>ini ] unit-test
{ H{ { "foo" "bar" } { "baz" "quz" } } }
[ "foo=bar\nbaz= quz" string>ini ] unit-test
{ H{ { "section" H{ { "foo" "abc def" } } } } }
[
"
[section]
foo = abc def
" string>ini
] unit-test
{ H{ { "section" H{ { "foo" "abc def" } } } } }
[
"
[section]
foo = abc \\
\"def\"
" string>ini
] unit-test
{ H{ { "section" H{ { "foo" "abc def" } } } } }
[
"
[section]
foo = \"abc \" \\
def
" string>ini
] unit-test
{ H{ { "section" H{ { "foo" "abc def" } } } } }
[
"
[section] foo = \"abc def\"
" string>ini
] unit-test
{ H{ { "section" H{ { "foo" "abc def" } } } } }
[
"
[section] foo = abc \\
\"def\"
" string>ini
] unit-test
{ H{ { "section" H{ { "foo" "" } } } } }
[
"
[section]
foo=
" string>ini
] unit-test
{ H{ { "section" H{ { "foo" "" } } } } }
[
"
[section]
foo
" string>ini
] unit-test
{ H{ { "" H{ { "" "" } } } } }
[
"
[]
=
" string>ini
] unit-test
{ H{ { "owner" H{ { "name" "John Doe" }
{ "organization" "Acme Widgets Inc." } } }
{ "database" H{ { "server" "192.0.2.62" }
{ "port" "143" }
{ "file" "payroll.dat" } } } } }
[
"
; last modified 1 April 2001 by John Doe
[owner]
name=John Doe
organization=Acme Widgets Inc.
[database]
server=192.0.2.62 ; use IP address in case network name resolution is not working
port=143
file = \"payroll.dat\"
" string>ini
] unit-test
{ H{ { "a long section name"
H{ { "a long key name" "a long value name" } } } } }
[
"
[a long section name ]
a long key name= a long value name
" string>ini
] unit-test
{ H{ { "key with \n esc\ape \r codes \""
"value with \t esc\ape codes" } } }
[
"
key with \\n esc\\ape \\r codes \\\" = value with \\t esc\\ape codes
" string>ini
] unit-test
{ "key with \\n esc\\ape \\r codes \\\"=value with \\t esc\\ape codes\n" }
[
H{ { "key with \n esc\ape \r codes \""
"value with \t esc\ape codes" } } ini>string
] unit-test