mediawiki-extensions-Scribunto/tests/engines/LuaStandalone/StandaloneTest.php
Brad Jorsch f52136eada Handle invalid keys in Lua-to-PHP calls for LuaStandalone
PHP can't handle having arrays/objects or functions as keys in its
arrays, so make sure we don't try to pass them from Lua. Booleans aren't
really well-handled either, so let's disallow them too.

Also, add tests for proper stringification of floats and infinities when
those are used as keys.

Note this behavior change is needed to match the change in LuaSandbox
for fixing bug 54527, but isn't itself a security issue.

Change-Id: I1e2951bbe8cb78358650ad377bf7119fcac4485d
2014-01-14 10:03:42 -05:00

28 lines
735 B
PHP

<?php
class Scribunto_LuaStandaloneTests extends Scribunto_LuaEngineTestBase {
protected static $moduleName = 'StandaloneTests';
public static function suite( $className ) {
return self::makeSuite( $className, 'LuaStandalone' );
}
public function setUp() {
parent::setUp();
$interpreter = $this->getEngine()->getInterpreter();
$func = $interpreter->wrapPhpFunction( function ( $v ) {
return array( preg_replace( '/\s+/', ' ', trim( var_export( $v, 1 ) ) ) );
} );
$interpreter->callFunction(
$interpreter->loadString( 'mw.var_export = ...', 'fortest' ), $func
);
}
function getTestModules() {
return parent::getTestModules() + array(
'StandaloneTests' => __DIR__ . '/StandaloneTests.lua',
);
}
}