62 lines
1.5 KiB
R
62 lines
1.5 KiB
R
|
.setUp <- function() {}
|
||
|
.tearDown <- function() {}
|
||
|
|
||
|
test.list <- function()
|
||
|
{
|
||
|
json <- "{}"
|
||
|
x <- fromJSON( json )
|
||
|
checkIdentical( x, list() )
|
||
|
|
||
|
failing_json <- c( "{", "{a:5}", "{\"a:5}", "{\"a\":", "{\"a\":5", "{\"a\":}", "{123:false}", "{\"a\":unquoted}" )
|
||
|
for( bad_json in failing_json ) {
|
||
|
x <- try( fromJSON( bad_json ), silent = TRUE )
|
||
|
checkTrue( any( class( x ) == "try-error" ) )
|
||
|
}
|
||
|
|
||
|
json <- "{\"a\":5}"
|
||
|
x <- fromJSON( json )
|
||
|
checkIdentical( x, list( a = 5 ) )
|
||
|
|
||
|
json <- "{\"a\":5,\"b\":10}"
|
||
|
x <- fromJSON( json )
|
||
|
checkIdentical( x, list( a = 5, b = 10 ) )
|
||
|
|
||
|
json <- "{\"a\":5,\"b\":10, \"clap\":[true,false,false]}"
|
||
|
x <- fromJSON( json )
|
||
|
correct <- list( a = 5, b = 10, clap = c(TRUE,FALSE,FALSE) )
|
||
|
checkIdentical( x, correct )
|
||
|
checkIdentical( x[["clap"]], correct[["clap"]] )
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
test.nestedlist <- function()
|
||
|
{
|
||
|
json <- "[\"a\", [\"b\", \"c\"] ]"
|
||
|
x <- fromJSON( json )
|
||
|
correct <- list( "a", c( "b", "c" ) )
|
||
|
checkIdentical( x, correct )
|
||
|
checkIdentical( x[[2]], correct[[2]] )
|
||
|
}
|
||
|
|
||
|
test.bad.list <- function()
|
||
|
{
|
||
|
bad_json <- "{\"a\": 123,}"
|
||
|
x <- try( fromJSON( bad_json ), silent = TRUE )
|
||
|
checkTrue( any( class( x ) == "try-error" ) )
|
||
|
}
|
||
|
|
||
|
test.unsupported.sexp <- function()
|
||
|
{
|
||
|
x <- fromJSON('{ "key":[ { "foo":"bar" }, { "bah":"baz" }] }')
|
||
|
correct <- list( key = list( list( foo = "bar" ), list( bah = "baz" ) ))
|
||
|
checkIdentical( x, correct )
|
||
|
}
|
||
|
|
||
|
test.rejected.comma <- function()
|
||
|
{
|
||
|
bad_json = '{ "key":[ { "foo":"bar" }, { "bah":"baz" },] }'
|
||
|
x <- try( fromJSON( bad_json ), silent = TRUE )
|
||
|
checkTrue( any( class( x ) == "try-error" ) )
|
||
|
}
|