function setUp() { $this->_prev_env = $_ENV; $_ENV = array(); self::$counter = 0; $packages_dir = lmb_var_dir() . 'core_packages_test/'; if (!file_exists($packages_dir)) { mkdir($packages_dir); } lmb_env_set('LIMB_PACKAGES_DIR', $packages_dir); }
function testGetFilesLocator_CacheConditions() { $old_mode = lmb_env_get('LIMB_APP_MODE'); $old_var_dir = lmb_env_get('LIMB_VAR_DIR'); lmb_env_set('LIMB_APP_MODE', 'devel'); lmb_env_remove('LIMB_VAR_DIR'); $this->assertIsA($this->tools->getFileLocator('foo', 'locator1'), 'lmbFileLocator'); lmb_env_set('LIMB_VAR_DIR', $old_var_dir); $this->assertIsA($this->tools->getFileLocator('foo', 'locator2'), 'lmbFileLocator'); lmb_env_set('LIMB_APP_MODE', 'production'); $this->assertIsA($this->tools->getFileLocator('foo', 'locator3'), 'lmbCachingFileLocator'); lmb_env_set('LIMB_APP_MODE', $old_mode); }
function testOnceRender() { $root = lmb_env_get('LIMB_VAR_DIR') . '/www/'; lmb_env_set('LIMB_DOCUMENT_ROOT', $root); lmbFs::safeWrite($root . 'style/main.css', 'body {background-url: url("../images/one.jpg");}'); lmbFs::safeWrite($root . 'images/one.jpg', 'simple content'); $template = '{{css_compiled src="style/main.css" dir="media/css" /}}'; $page = $this->_createMacroTemplate($template, 'tpl.html'); $content = $page->render(); $src = $this->toolkit->addVersionToUrl('media/css/style-main.css'); $this->assertEqual('<link rel="stylesheet" type="text/css" href="' . $src . '" />', $content); $compiled_file = $root . 'media/css/style-main.css'; $src = $this->toolkit->addVersionToUrl('images/one.jpg'); $this->assertEqual('body {background-url: url(' . $src . ');}', file_get_contents($compiled_file)); }
function testGzipStatic() { if (!function_exists('gzencode')) { return print "Skip: function gzencode not exists.\n"; } lmb_env_set('LIMB_DOCUMENT_ROOT', lmb_env_get('LIMB_VAR_DIR') . '/www/'); lmbFs::safeWrite(lmb_env_get('LIMB_VAR_DIR') . '/www/one.js', 'var window = {};'); $doc_root = lmb_env_get('LIMB_DOCUMENT_ROOT'); $template = '{{file:version src="one.js" gzip_static_dir="media/var/gz" gzip_level="9" }}'; $page = $this->_createMacroTemplate($template, 'tpl.html'); $content = $page->render(); $file = 'media/var/gz/one.js'; $this->assertEqual($content, $this->toolkit->addVersionToUrl($file, false)); $this->assertEqual('var window = {};', file_get_contents($doc_root . $file)); $gz_file = $doc_root . $file . '.gz'; $this->assertTrue(file_exists($gz_file)); $this->assertEqual(gzencode('var window = {};', 9, FORCE_DEFLATE), file_get_contents($gz_file)); }
function lmb_tests_init_db_dsn() { lmb_env_set('LIMB_CACHE_DB_META_IN_FILE', false); if (lmbToolkit::instance()->isDefaultDbDSNAvailable()) { $dsn = lmbToolkit::instance()->getDefaultDbDSN(); static $reported_about; if (is_null($reported_about) || $reported_about != $dsn) { $pass = $dsn->_getUri()->getPassword(); $masked_dsn = str_replace($pass, str_pad('*', strlen($pass), '*'), $dsn->toString()); echo "INFO: Using database '{$masked_dsn}'\n"; $reported_about = $dsn; } } else { $default_value = 'sqlite://localhost/' . lmb_var_dir() . '/sqlite_tests.db'; $dsn = lmb_env_get('LIMB_TEST_DB_DSN', $default_value); lmbToolkit::instance()->setDefaultDbDSN($dsn); echo "INFO: Using default test database '{$dsn}'\n"; } }
function testNotFoundFile() { lmb_env_set('LIMB_DOCUMENT_ROOT', lmb_env_get('LIMB_VAR_DIR')); $template = '{{js:require_once src="js/main.js" }}'; $page = $this->_createMacroTemplate($template, 'tpl.html'); try { $page->render(); $this->assertTrue(false); } catch (lmbException $e) { $this->assertTrue(true); } $template = '{{js:require_once src="js/main.js" safe="true" }}'; $page = $this->_createMacroTemplate($template, 'tpl.html'); try { $page->render(); $this->assertTrue(true); } catch (lmbException $e) { $this->assertTrue(false); } }
function testNotFoundFile() { $root = lmb_env_get('LIMB_VAR_DIR') . '/www'; lmb_env_set('LIMB_DOCUMENT_ROOT', $root); lmbFs::rm($root); $template = '{{js_combined dir="media/"}}{{js_once src="js/main.js" }}{{/js_combined}}'; $page = $this->_createMacroTemplate($template, 'tpl.html'); try { $page->render(); $this->assertTrue(false); } catch (lmbException $e) { $this->assertTrue(true); } lmbFs::safeWrite($root . '/js/blog.js', 'function blog() {};'); $template = '{{js_combined dir="media"}}{{js_once src="js/main.js" safe="true" }}{{js_once src="js/blog.js" }}{{/js_combined}}'; $page = $this->_createMacroTemplate($template, 'tpl.html'); $page->render(); $file = array_shift(lmbFs::ls($root . '/media/')); $js_content = "/* include main.js - NOT FOUND */\n\n/* include blog.js */\nfunction blog() {};"; $this->assertEqual(file_get_contents($root . '/media/' . $file), $js_content); }
function testToUrlWithHttpOffset() { $old_offset = lmb_env_get('LIMB_HTTP_OFFSET_PATH'); $config = array('blog' => array('path' => '/blog', 'defaults' => array('controller' => 'Blog', 'action' => 'display'))); $routes = new lmbRoutes($config); lmb_env_set('LIMB_HTTP_OFFSET_PATH', 'app'); $this->assertEqual($routes->toUrl(array(), 'blog'), '/app/blog'); lmb_env_set('LIMB_HTTP_OFFSET_PATH', $old_offset); }
<?php set_include_path(dirname(__FILE__) . '/../../../../'); $test = null; if (isset($argv[1])) { $test = $argv[1]; } $mark = microtime(true); $counter = 0; require_once 'limb/core/common.inc.php'; lmb_env_set('LIMB_VAR_DIR', dirname(__FILE__) . '/../../../var/'); lmb_env_set('LIMB_CACHE_DB_META_IN_FILE', true); require_once 'limb/active_record/common.inc.php'; echo "active record common includes: " . (microtime(true) - $mark) . "\n"; $db = LIMB_VAR_DIR . '/benchdb'; if ($native_db = sqlite_open($db)) { @sqlite_query($native_db, "DROP TABLE foo"); sqlite_query($native_db, 'CREATE TABLE foo (id INTEGER PRIMARY KEY, bar VARCHAR(10))'); for ($i = 0; $i < 30; $i++) { sqlite_query($native_db, "INSERT INTO foo VALUES (null, 'some value{$i}')"); } } else { throw new Exception("Could not open sqlite db '{$db}'"); } if (++$counter == $test || $test == null) { $mark = microtime(true); for ($i = 0; $i < 1000; $i++) { $query = sqlite_query($native_db, 'SELECT bar FROM foo'); while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) { $bar = $entry['bar']; }
function lmb_app_mode($new_value = null) { if ($new_value) { lmb_env_set('LIMB_APP_MODE', $new_value); } else { return lmb_env_get('LIMB_APP_MODE', LIMB_APP_PRODUCTION); } }
function testWithHTTPOffset() { $old_offset = lmb_env_get('LIMB_HTTP_OFFSET_PATH'); $config = array(array('path' => '/blog', 'defaults' => array('controller' => 'Blog', 'action' => 'display'))); $routes = new lmbRoutes($config); lmb_env_set('LIMB_HTTP_OFFSET_PATH', 'limb-app'); $result = $routes->dispatch('/limb-app/blog'); $this->assertEqual($result['controller'], 'Blog'); $this->assertEqual($result['action'], 'display'); lmb_env_set('LIMB_HTTP_OFFSET_PATH', $old_offset); }
function testAddVersionToUrl_Safe() { $toolkit = lmbToolkit::merge(new lmbWebAppTools()); lmb_env_set('LIMB_DOCUMENT_ROOT', null); try { $url = $toolkit->addVersionToUrl('js/main.js', true); $this->assertEqual($url, 'js/main.js?00'); $this->assertTrue(true); } catch (lmbException $e) { $this->assertTrue(false); } lmb_env_set('LIMB_DOCUMENT_ROOT', lmb_env_get('LIMB_VAR_DIR') . '/www'); lmbFs::rm(lmb_env_get('LIMB_DOCUMENT_ROOT') . '/js/main.js'); try { $url = $toolkit->addVersionToUrl('js/main.js', true); $this->assertEqual('js/main.js?00', $url); $this->assertTrue(true); } catch (lmbException $e) { $this->assertTrue(false); } }
function testDispatchWithOffset() { $old_offset = lmb_env_get('LIMB_HTTP_OFFSET_PATH'); $config_array = array(array('path' => ':controller/:action')); $routes = new lmbRoutes($config_array); $this->toolkit->setRoutes($routes); $dispatcher = new lmbRoutesRequestDispatcher(); lmb_env_set('LIMB_HTTP_OFFSET_PATH', 'app'); $this->request->getUri()->reset('http://example.com/app/news/admin_display'); $result = $dispatcher->dispatch($this->request); $this->assertEqual($result['controller'], 'news'); $this->assertEqual($result['action'], 'admin_display'); lmb_env_set('LIMB_HTTP_OFFSET_PATH', $old_offset); }
function testLmbVarDir_Set() { $old_value = lmb_env_get('LIMB_VAR_DIR'); $new_value = $old_value . '/'; lmb_var_dir($new_value); $this->assertIdentical($new_value, lmb_var_dir()); lmb_env_set('LIMB_VAR_DIR', $old_value); }
function testGetDbInfo_cache_global_positive() { lmb_env_set('LIMB_CACHE_DB_META_IN_FILE', true); $conn = $this->tools->getDbConnectionByDsn('mysql://*****:*****@localhost/hello_from_foo?charset=cp1251&version=2'); $this->assertIsA($this->tools->getDbInfo($conn), 'lmbDbCachedInfo'); }
function lmb_var_dir($value = null) { if ($value) { lmb_env_set('LIMB_VAR_DIR', $value); } else { return lmb_env_get('LIMB_VAR_DIR'); } }
function testLmbAppMode() { $old_value = lmb_env_get('LIMB_APP_MODE'); lmb_env_set('LIMB_APP_MODE', LIMB_APP_PRODUCTION); $this->assertIdentical(LIMB_APP_PRODUCTION, lmb_app_mode()); lmb_app_mode(LIMB_APP_DEVELOPMENT); $this->assertIdentical(LIMB_APP_DEVELOPMENT, lmb_app_mode()); lmb_env_set('LIMB_APP_MODE', $old_value); }