Current File : /home/jvzmxxx/wiki1/extensions/Scribunto/tests/engines/LuaStandalone/StandaloneTests.lua
local testframework = require( 'Module:TestFramework' )

local function setfenv1()
	local ok, err = pcall( function()
		setfenv( 2, {} )
	end )
	if not ok then
		err = string.gsub( err, '^%S+:%d+: ', '' )
		error( err )
	end
end

local function getfenv1()
	local env
	pcall( function()
		env = getfenv( 2 )
	end )
	return env
end

return testframework.getTestProvider( {
	{ name = 'setfenv on a C function', func = setfenv1,
	  expect = "'setfenv' cannot set the requested environment, it is protected",
	},
	{ name = 'getfenv on a C function', func = getfenv1,
	  expect = { nil },
	},
	{ name = 'Invalid array key (table)', func = mw.var_export,
	  args = { { [{}] = 1 } },
	  expect = 'Cannot use table as an array key when passing data from Lua to PHP',
	},
	{ name = 'Invalid array key (boolean)', func = mw.var_export,
	  args = { { [true] = 1 } },
	  expect = 'Cannot use boolean as an array key when passing data from Lua to PHP',
	},
	{ name = 'Invalid array key (function)', func = mw.var_export,
	  args = { { [tostring] = 1 } },
	  expect = 'Cannot use function as an array key when passing data from Lua to PHP',
	},
	{ name = 'Unusual array key (float)', func = mw.var_export,
	  args = { { [1.5] = 1 } },
	  expect = { "array ( '1.5' => 1, )" }
	},
	{ name = 'Unusual array key (inf)', func = mw.var_export,
	  args = { { [math.huge] = 1 } },
	  expect = { "array ( 'inf' => 1, )" }
	},
} )