public function testRemoveEmptyFiles() { $files = [['name' => '__UNLINK__', 'type' => 'text/plain', 'tmp_name' => 'gs://bucket/foo1', 'error' => UPLOAD_ERR_OK, 'size' => 17], ['name' => 'somefile.txt', 'type' => 'text/plain', 'tmp_name' => 'gs://bucket/foo2', 'error' => UPLOAD_ERR_OK, 'size' => 17]]; $expected = [['name' => '', 'type' => '', 'tmp_name' => '', 'error' => UPLOAD_ERR_NO_FILE, 'size' => 0], ['name' => 'somefile.txt', 'type' => 'text/plain', 'tmp_name' => 'gs://bucket/foo2', 'error' => UPLOAD_ERR_OK, 'size' => 17]]; UnlinkUploads::removeEmptyFiles($files); $this->assertEquals($expected, $files); }
// Ensure that the class autoloader is the first include. require_once 'google/appengine/runtime/autoloader.php'; require_once 'google/appengine/runtime/Memcache.php'; require_once 'google/appengine/runtime/Memcached.php'; require_once 'google/appengine/api/mail/MailService.php'; // Setup the Memcache session handler MemcacheSessionHandler::configure(); if (!empty($_FILES)) { // TODO: b/13132830: Remove once feature releases. if (ini_get('google_app_engine.direct_file_upload')) { DirectUploadHandler::handle(); } // TODO: b/13132830: Remove once feature releases. if (ini_get('google_app_engine.php_enable_unlink_unused_uploads')) { register_shutdown_function('google\\appengine\\runtime\\UnlinkUploads::shutdownHook', $_FILES); UnlinkUploads::removeEmptyFiles($_FILES); } } // Setup the GS stream wrapper $url_flags = STREAM_IS_URL; if (GAE_INCLUDE_REQUIRE_GS_STREAMS === 1) { // By clearing the STREAM_IS_URL flag we allow this stream handler to be // used in include & require calls. $url_flags = 0; } stream_wrapper_register('gs', '\\google\\appengine\\ext\\cloud_storage_streams\\CloudStorageStreamWrapper', $url_flags); } // Map core PHP function implementations to proper function names. All function // implementations should be prefixed with an underscore. The implementations // should be mapped to the real (un-prefixed) function name and lazy-loaded. // The underscore prefixed functions may then be used for unit testing on an