diff --git a/phpunit.php b/phpunit.php
new file mode 100644
index 00000000..5a34de62
--- /dev/null
+++ b/phpunit.php
@@ -0,0 +1,22 @@
+ $argument)
+{
+ if ($argument == 'laravel' and $_SERVER['argv'][$key - 1] == '--group')
+ {
+ define('APP_PATH', realpath('tests/laravel').DIRECTORY_SEPARATOR);
+ }
+}
+
+// --------------------------------------------------------------
+// Set the core Laravel path constants.
+// --------------------------------------------------------------
+require 'paths.php';
+
+// --------------------------------------------------------------
+// Bootstrap the Laravel core.
+// --------------------------------------------------------------
+require SYS_PATH.'core.php';
\ No newline at end of file
diff --git a/phpunit.xml b/phpunit.xml
new file mode 100644
index 00000000..faa7e091
--- /dev/null
+++ b/phpunit.xml
@@ -0,0 +1,7 @@
+
+
+
+ tests/cases
+
+
+
\ No newline at end of file
diff --git a/tests/cases/application/.gitignore b/tests/cases/application/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/cases/bundles/.gitignore b/tests/cases/bundles/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/cases/laravel/str.php b/tests/cases/laravel/str.php
new file mode 100644
index 00000000..749ef849
--- /dev/null
+++ b/tests/cases/laravel/str.php
@@ -0,0 +1,15 @@
+assertEquals('UTF-8', Config::get('application.encoding'));
+ }
+
+}
\ No newline at end of file
diff --git a/tests/laravel/bundle.php b/tests/laravel/bundle.php
new file mode 100644
index 00000000..d1b9e362
--- /dev/null
+++ b/tests/laravel/bundle.php
@@ -0,0 +1,42 @@
+ APP_PATH.'models/user.php',
+ //'Role' => APP_PATH.'models/role.php',
+));
\ No newline at end of file
diff --git a/tests/laravel/config/.gitignore b/tests/laravel/config/.gitignore
new file mode 100644
index 00000000..aa5195c6
--- /dev/null
+++ b/tests/laravel/config/.gitignore
@@ -0,0 +1 @@
+local/*
\ No newline at end of file
diff --git a/tests/laravel/config/application.php b/tests/laravel/config/application.php
new file mode 100644
index 00000000..b20fcd49
--- /dev/null
+++ b/tests/laravel/config/application.php
@@ -0,0 +1,171 @@
+ '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Index
+ |--------------------------------------------------------------------------
+ |
+ | If you are including the "index.php" in your URLs, you can ignore this.
+ |
+ | However, if you are using mod_rewrite to get cleaner URLs, just set
+ | this option to an empty string and we'll take care of the rest.
+ |
+ */
+
+ 'index' => 'index.php',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Key
+ |--------------------------------------------------------------------------
+ |
+ | This key is used by the encryption and cookie classes to generate secure
+ | encrypted strings and hashes. It is extremely important that this key
+ | remain secret and should not be shared with anyone. Make it about 32
+ | characters of random gibberish.
+ |
+ */
+
+ 'key' => '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Character Encoding
+ |--------------------------------------------------------------------------
+ |
+ | The default character encoding used by your application. This encoding
+ | will be used by the Str, Text, Form, and any other classes that need
+ | to know what type of encoding to use for your awesome application.
+ |
+ */
+
+ 'encoding' => 'UTF-8',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Language
+ |--------------------------------------------------------------------------
+ |
+ | The default language of your application. This language will be used by
+ | Lang library as the default language when doing string localization.
+ |
+ */
+
+ 'language' => 'en',
+
+ /*
+ |--------------------------------------------------------------------------
+ | SSL Link Generation
+ |--------------------------------------------------------------------------
+ |
+ | Many sites use SSL to protect their users data. However, you may not
+ | always be able to use SSL on your development machine, meaning all HTTPS
+ | will be broken during development.
+ |
+ | For this reason, you may wish to disable the generation of HTTPS links
+ | throughout your application. This option does just that. All attempts to
+ | generate HTTPS links will generate regular HTTP links instead.
+ |
+ */
+
+ 'ssl' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Timezone
+ |--------------------------------------------------------------------------
+ |
+ | The default timezone of your application. This timezone will be used when
+ | Laravel needs a date, such as when writing to a log file or travelling
+ | to a distant star at warp speed.
+ |
+ */
+
+ 'timezone' => 'UTC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Autoloaded Bundles
+ |--------------------------------------------------------------------------
+ |
+ | Bundles can provide a ton of awesome drop-in functionality for your web
+ | application. Everything from Twitter integration to an admin backend.
+ |
+ | Here you may specify the bundles that should be automatically started
+ | on every request to your application.
+ |
+ */
+
+ 'bundles' => array(),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Class Aliases
+ |--------------------------------------------------------------------------
+ |
+ | Here, you can specify any class aliases that you would like registered
+ | when Laravel loads. Aliases are lazy-loaded, so add as many as you want.
+ |
+ | Aliases make it more convenient to use namespaced classes. Instead of
+ | referring to the class using its full namespace, you may simply use
+ | the alias defined here.
+ |
+ | We have already aliased common Laravel classes to make your life easier.
+ |
+ */
+
+ 'aliases' => array(
+ 'Auth' => 'Laravel\\Auth',
+ 'Asset' => 'Laravel\\Asset',
+ 'Autoloader' => 'Laravel\\Autoloader',
+ 'Bundle' => 'Laravel\\Bundle',
+ 'Cache' => 'Laravel\\Cache',
+ 'Config' => 'Laravel\\Config',
+ 'Controller' => 'Laravel\\Routing\\Controller',
+ 'Cookie' => 'Laravel\\Cookie',
+ 'Crypter' => 'Laravel\\Crypter',
+ 'DB' => 'Laravel\\Database',
+ 'Event' => 'Laravel\\Event',
+ 'File' => 'Laravel\\File',
+ 'Filter' => 'Laravel\\Routing\\Filter',
+ 'Form' => 'Laravel\\Form',
+ 'Hash' => 'Laravel\\Hash',
+ 'HTML' => 'Laravel\\HTML',
+ 'Input' => 'Laravel\\Input',
+ 'IoC' => 'Laravel\\IoC',
+ 'Lang' => 'Laravel\\Lang',
+ 'Log' => 'Laravel\\Log',
+ 'Memcached' => 'Laravel\\Memcached',
+ 'Paginator' => 'Laravel\\Paginator',
+ 'URL' => 'Laravel\\URL',
+ 'Redirect' => 'Laravel\\Redirect',
+ 'Redis' => 'Laravel\\Redis',
+ 'Request' => 'Laravel\\Request',
+ 'Response' => 'Laravel\\Response',
+ 'Router' => 'Laravel\\Routing\\Router',
+ 'Schema' => 'Laravel\\Database\\Schema',
+ 'Section' => 'Laravel\\Section',
+ 'Session' => 'Laravel\\Session',
+ 'Str' => 'Laravel\\Str',
+ 'Task' => 'Laravel\\CLI\\Tasks\\Task',
+ 'URI' => 'Laravel\\URI',
+ 'Validator' => 'Laravel\\Validator',
+ 'View' => 'Laravel\\View',
+ ),
+
+);
diff --git a/tests/laravel/config/auth.php b/tests/laravel/config/auth.php
new file mode 100644
index 00000000..36343d4f
--- /dev/null
+++ b/tests/laravel/config/auth.php
@@ -0,0 +1,68 @@
+ function($id)
+ {
+ if (filter_var($id, FILTER_VALIDATE_INT) !== false)
+ {
+ return DB::table('users')->find($id);
+ }
+ },
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authenticate User Credentials
+ |--------------------------------------------------------------------------
+ |
+ | This closure is called by the Auth::attempt() method when attempting to
+ | authenticate a user that is logging into your application. It's like a
+ | super buff bouncer to your application.
+ |
+ | If the provided credentials are correct, simply return an object that
+ | represents the user being authenticated. As long as it has a property
+ | for the "id", any object will work. If the credentials are not valid,
+ | you don't meed to return anything.
+ |
+ */
+
+ 'attempt' => function($username, $password)
+ {
+ $user = DB::table('users')->where_username($username)->first();
+
+ if ( ! is_null($user) and Hash::check($password, $user->password))
+ {
+ return $user;
+ }
+ },
+
+ /*
+ |--------------------------------------------------------------------------
+ | Logout The Current User
+ |--------------------------------------------------------------------------
+ |
+ | Here you may do anything that needs to be done when a user logs out of
+ | your application, such as call the logout method on a third-party API
+ | you are using for authentication or anything else you desire.
+ |
+ */
+
+ 'logout' => function($user) {}
+
+);
\ No newline at end of file
diff --git a/tests/laravel/config/cache.php b/tests/laravel/config/cache.php
new file mode 100644
index 00000000..73fd4c9c
--- /dev/null
+++ b/tests/laravel/config/cache.php
@@ -0,0 +1,71 @@
+ 'file',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Key
+ |--------------------------------------------------------------------------
+ |
+ | This key will be prepended to item keys stored using Memcached and APC
+ | to prevent collisions with other applications on the server. Since the
+ | memory based stores could be shared by other applications, we need to
+ | be polite and use a prefix to uniquely identifier our items.
+ |
+ */
+
+ 'key' => 'laravel',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Database
+ |--------------------------------------------------------------------------
+ |
+ | When using the database cache driver, this database table will be used
+ | to store the cached item. You may also add a "connection" option to
+ | the array to specify which database connection should be used.
+ |
+ */
+
+ 'database' => array('table' => 'laravel_cache'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Memcached Servers
+ |--------------------------------------------------------------------------
+ |
+ | The Memcached servers used by your application. Memcached is a free and
+ | open source, high-performance, distributed memory caching system. It is
+ | generic in nature but intended for use in speeding up web applications
+ | by alleviating database load.
+ |
+ | For more information, check out: http://memcached.org
+ |
+ */
+
+ 'memcached' => array(
+
+ array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100),
+
+ ),
+
+);
\ No newline at end of file
diff --git a/tests/laravel/config/database.php b/tests/laravel/config/database.php
new file mode 100644
index 00000000..f2ba145e
--- /dev/null
+++ b/tests/laravel/config/database.php
@@ -0,0 +1,90 @@
+ 'mysql',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Database Connections
+ |--------------------------------------------------------------------------
+ |
+ | All of the database connections used by your application. Many of your
+ | applications will no doubt only use one connection; however, you have
+ | the freedom to specify as many connections as you can handle.
+ |
+ | All database work in Laravel is done through the PHP's PDO facilities,
+ | so make sure you have the PDO drivers for your particlar database of
+ | choice installed on your machine.
+ |
+ | Drivers: 'mysql', 'pgsql', 'sqlsrv', 'sqlite'.
+ |
+ */
+
+ 'connections' => array(
+
+ 'sqlite' => array(
+ 'driver' => 'sqlite',
+ 'database' => 'application',
+ ),
+
+ 'mysql' => array(
+ 'driver' => 'mysql',
+ 'host' => 'localhost',
+ 'database' => 'database',
+ 'username' => 'root',
+ 'password' => 'password',
+ 'charset' => 'utf8',
+ ),
+
+ 'pgsql' => array(
+ 'driver' => 'pgsql',
+ 'host' => 'localhost',
+ 'database' => 'database',
+ 'username' => 'root',
+ 'password' => 'password',
+ 'charset' => 'utf8',
+ ),
+
+ 'sqlsrv' => array(
+ 'driver' => 'sqlsrv',
+ 'host' => 'localhost',
+ 'database' => 'database',
+ 'username' => 'root',
+ 'password' => 'password',
+ ),
+
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Redis Databases
+ |--------------------------------------------------------------------------
+ |
+ | Redis is an open source, fast, and advanced key-value store. However, it
+ | provides a richer set of commands than a typical key-value store such as
+ | APC or memcached. All the cool kids are using it.
+ |
+ | To get the scoop on Redis, check out: http://redis.io
+ |
+ */
+
+ 'redis' => array(
+
+ 'default' => array('host' => '127.0.0.1', 'port' => 6379),
+
+ ),
+
+);
\ No newline at end of file
diff --git a/tests/laravel/config/error.php b/tests/laravel/config/error.php
new file mode 100644
index 00000000..87db9665
--- /dev/null
+++ b/tests/laravel/config/error.php
@@ -0,0 +1,69 @@
+ array(E_NOTICE, E_USER_NOTICE, E_DEPRECATED, E_USER_DEPRECATED),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Error Detail
+ |--------------------------------------------------------------------------
+ |
+ | Detailed error messages contain information about the file in which an
+ | error occurs, as well as a PHP stack trace containing the call stack.
+ | You'll want them when you're trying to debug your application.
+ |
+ | If your application is in production, you'll want to turn off the error
+ | details for enhanced security and user experience since the exception
+ | stack trace could contain sensitive information.
+ |
+ */
+
+ 'detail' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Error Logging
+ |--------------------------------------------------------------------------
+ |
+ | When error logging is enabled, the "logger" Closure defined below will
+ | be called for every error in your application. You are free to log the
+ | errors however you want. Enjoy the flexibility.
+ |
+ */
+
+ 'log' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Error Logger
+ |--------------------------------------------------------------------------
+ |
+ | Because of the various ways of managing error logging, you get complete
+ | flexibility to manage error logging as you see fit. This function will
+ | be called anytime an error occurs within your application and error
+ | logging is enabled.
+ |
+ | You may log the error message however you like; however, a simple log
+ | solution has been setup for you which will log all error messages to
+ | text files within the application storage directory.
+ |
+ */
+
+ 'logger' => function($exception)
+ {
+ Log::exception($exception);
+ },
+
+);
\ No newline at end of file
diff --git a/tests/laravel/config/mimes.php b/tests/laravel/config/mimes.php
new file mode 100644
index 00000000..e2bd4fbb
--- /dev/null
+++ b/tests/laravel/config/mimes.php
@@ -0,0 +1,97 @@
+ 'application/mac-binhex40',
+ 'cpt' => 'application/mac-compactpro',
+ 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream'),
+ 'bin' => 'application/macbinary',
+ 'dms' => 'application/octet-stream',
+ 'lha' => 'application/octet-stream',
+ 'lzh' => 'application/octet-stream',
+ 'exe' => array('application/octet-stream', 'application/x-msdownload'),
+ 'class' => 'application/octet-stream',
+ 'psd' => 'application/x-photoshop',
+ 'so' => 'application/octet-stream',
+ 'sea' => 'application/octet-stream',
+ 'dll' => 'application/octet-stream',
+ 'oda' => 'application/oda',
+ 'pdf' => array('application/pdf', 'application/x-download'),
+ 'ai' => 'application/postscript',
+ 'eps' => 'application/postscript',
+ 'ps' => 'application/postscript',
+ 'smi' => 'application/smil',
+ 'smil' => 'application/smil',
+ 'mif' => 'application/vnd.mif',
+ 'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),
+ 'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint'),
+ 'wbxml' => 'application/wbxml',
+ 'wmlc' => 'application/wmlc',
+ 'dcr' => 'application/x-director',
+ 'dir' => 'application/x-director',
+ 'dxr' => 'application/x-director',
+ 'dvi' => 'application/x-dvi',
+ 'gtar' => 'application/x-gtar',
+ 'gz' => 'application/x-gzip',
+ 'php' => array('application/x-httpd-php', 'text/x-php'),
+ 'php4' => 'application/x-httpd-php',
+ 'php3' => 'application/x-httpd-php',
+ 'phtml' => 'application/x-httpd-php',
+ 'phps' => 'application/x-httpd-php-source',
+ 'js' => 'application/x-javascript',
+ 'swf' => 'application/x-shockwave-flash',
+ 'sit' => 'application/x-stuffit',
+ 'tar' => 'application/x-tar',
+ 'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
+ 'xhtml' => 'application/xhtml+xml',
+ 'xht' => 'application/xhtml+xml',
+ 'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
+ 'mid' => 'audio/midi',
+ 'midi' => 'audio/midi',
+ 'mpga' => 'audio/mpeg',
+ 'mp2' => 'audio/mpeg',
+ 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
+ 'aif' => 'audio/x-aiff',
+ 'aiff' => 'audio/x-aiff',
+ 'aifc' => 'audio/x-aiff',
+ 'ram' => 'audio/x-pn-realaudio',
+ 'rm' => 'audio/x-pn-realaudio',
+ 'rpm' => 'audio/x-pn-realaudio-plugin',
+ 'ra' => 'audio/x-realaudio',
+ 'rv' => 'video/vnd.rn-realvideo',
+ 'wav' => 'audio/x-wav',
+ 'bmp' => 'image/bmp',
+ 'gif' => 'image/gif',
+ 'jpeg' => array('image/jpeg', 'image/pjpeg'),
+ 'jpg' => array('image/jpeg', 'image/pjpeg'),
+ 'jpe' => array('image/jpeg', 'image/pjpeg'),
+ 'png' => 'image/png',
+ 'tiff' => 'image/tiff',
+ 'tif' => 'image/tiff',
+ 'css' => 'text/css',
+ 'html' => 'text/html',
+ 'htm' => 'text/html',
+ 'shtml' => 'text/html',
+ 'txt' => 'text/plain',
+ 'text' => 'text/plain',
+ 'log' => array('text/plain', 'text/x-log'),
+ 'rtx' => 'text/richtext',
+ 'rtf' => 'text/rtf',
+ 'xml' => 'text/xml',
+ 'xsl' => 'text/xml',
+ 'mpeg' => 'video/mpeg',
+ 'mpg' => 'video/mpeg',
+ 'mpe' => 'video/mpeg',
+ 'qt' => 'video/quicktime',
+ 'mov' => 'video/quicktime',
+ 'avi' => 'video/x-msvideo',
+ 'movie' => 'video/x-sgi-movie',
+ 'doc' => 'application/msword',
+ 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+ 'word' => array('application/msword', 'application/octet-stream'),
+ 'xl' => 'application/excel',
+ 'eml' => 'message/rfc822',
+ 'json' => array('application/json', 'text/json'),
+
+);
\ No newline at end of file
diff --git a/tests/laravel/config/session.php b/tests/laravel/config/session.php
new file mode 100644
index 00000000..3b6e6a69
--- /dev/null
+++ b/tests/laravel/config/session.php
@@ -0,0 +1,117 @@
+ '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database
+ |--------------------------------------------------------------------------
+ |
+ | The database table on which the session should be stored. It probably
+ | goes without saying that this option only matters if you are using
+ | the super slick database session driver.
+ |
+ */
+
+ 'table' => 'sessions',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Garbage Collection Probability
+ |--------------------------------------------------------------------------
+ |
+ | Some session drivers require the manual clean-up of expired sessions.
+ | This option specifies the probability of session garbage collection
+ | occuring for any given request.
+ |
+ | For example, the default value states that garbage collection has a
+ | 2% chance of occuring for any given request to the application.
+ | Feel free to tune this to your application's size and speed.
+ |
+ */
+
+ 'sweepage' => array(2, 100),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Lifetime
+ |--------------------------------------------------------------------------
+ |
+ | The number of minutes a session can be idle before expiring.
+ |
+ */
+
+ 'lifetime' => 60,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Expiration On Close
+ |--------------------------------------------------------------------------
+ |
+ | Determines if the session should expire when the user's web browser closes.
+ |
+ */
+
+ 'expire_on_close' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Name
+ |--------------------------------------------------------------------------
+ |
+ | The name that should be given to the session cookie.
+ |
+ */
+
+ 'cookie' => 'laravel_session',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Path
+ |--------------------------------------------------------------------------
+ |
+ | The path for which the session cookie is available.
+ |
+ */
+
+ 'path' => '/',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Domain
+ |--------------------------------------------------------------------------
+ |
+ | The domain for which the session cookie is available.
+ |
+ */
+
+ 'domain' => null,
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTPS Only Session Cookie
+ |--------------------------------------------------------------------------
+ |
+ | Determines if the cookie should only be sent over HTTPS.
+ |
+ */
+
+ 'secure' => false,
+
+);
\ No newline at end of file
diff --git a/tests/laravel/config/strings.php b/tests/laravel/config/strings.php
new file mode 100644
index 00000000..3ee44f56
--- /dev/null
+++ b/tests/laravel/config/strings.php
@@ -0,0 +1,119 @@
+ array(
+
+ 'user' => 'users',
+ 'person' => 'people',
+ 'comment' => 'comments',
+
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | ASCII Characters
+ |--------------------------------------------------------------------------
+ |
+ | This array contains foreign characters and their 7-bit ASCII equivalents.
+ | The array is used by the "ascii" method on the Str class to get strings
+ | ready for inclusion in a URL slug.
+ |
+ | Of course, the "ascii" method may also be used by you for whatever your
+ | application requires. Feel free to add any characters we missed, and be
+ | sure to let us know about them!
+ |
+ */
+
+ 'ascii' => array(
+
+ '/æ|ǽ/' => 'ae',
+ '/œ/' => 'oe',
+ '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|А/' => 'A',
+ '/à|á|â|ã|ä|å|ǻ|ā|ă|ą|ǎ|ª|а/' => 'a',
+ '/Б/' => 'B',
+ '/б/' => 'b',
+ '/Ç|Ć|Ĉ|Ċ|Č|Ц/' => 'C',
+ '/ç|ć|ĉ|ċ|č|ц/' => 'c',
+ '/Ð|Ď|Đ|Д/' => 'Dj',
+ '/ð|ď|đ|д/' => 'dj',
+ '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Е|Ё|Э/' => 'E',
+ '/è|é|ê|ë|ē|ĕ|ė|ę|ě|е|ё|э/' => 'e',
+ '/Ф/' => 'F',
+ '/ƒ|ф/' => 'f',
+ '/Ĝ|Ğ|Ġ|Ģ|Г/' => 'G',
+ '/ĝ|ğ|ġ|ģ|г/' => 'g',
+ '/Ĥ|Ħ|Х/' => 'H',
+ '/ĥ|ħ|х/' => 'h',
+ '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|И/' => 'I',
+ '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|и/' => 'i',
+ '/Ĵ|Й/' => 'J',
+ '/ĵ|й/' => 'j',
+ '/Ķ|К/' => 'K',
+ '/ķ|к/' => 'k',
+ '/Ĺ|Ļ|Ľ|Ŀ|Ł|Л/' => 'L',
+ '/ĺ|ļ|ľ|ŀ|ł|л/' => 'l',
+ '/М/' => 'M',
+ '/м/' => 'm',
+ '/Ñ|Ń|Ņ|Ň|Н/' => 'N',
+ '/ñ|ń|ņ|ň|ʼn|н/' => 'n',
+ '/Ö|Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|О/' => 'O',
+ '/ö|ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|о/' => 'o',
+ '/П/' => 'P',
+ '/п/' => 'p',
+ '/Ŕ|Ŗ|Ř|Р/' => 'R',
+ '/ŕ|ŗ|ř|р/' => 'r',
+ '/Ś|Ŝ|Ş|Š|С/' => 'S',
+ '/ś|ŝ|ş|š|ſ|с/' => 's',
+ '/Ţ|Ť|Ŧ|Т/' => 'T',
+ '/ţ|ť|ŧ|т/' => 't',
+ '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|У/' => 'U',
+ '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|у/' => 'u',
+ '/В/' => 'V',
+ '/в/' => 'v',
+ '/Ý|Ÿ|Ŷ|Ы/' => 'Y',
+ '/ý|ÿ|ŷ|ы/' => 'y',
+ '/Ŵ/' => 'W',
+ '/ŵ/' => 'w',
+ '/Ź|Ż|Ž|З/' => 'Z',
+ '/ź|ż|ž|з/' => 'z',
+ '/Æ|Ǽ/' => 'AE',
+ '/ß/'=> 'ss',
+ '/IJ/' => 'IJ',
+ '/ij/' => 'ij',
+ '/Œ/' => 'OE',
+ '/Ч/' => 'Ch',
+ '/ч/' => 'ch',
+ '/Ю/' => 'Ju',
+ '/ю/' => 'ju',
+ '/Я/' => 'Ja',
+ '/я/' => 'ja',
+ '/Ш/' => 'Sh',
+ '/ш/' => 'sh',
+ '/Щ/' => 'Shch',
+ '/щ/' => 'shch',
+ '/Ж/' => 'Zh',
+ '/ж/' => 'zh',
+
+ ),
+
+);
\ No newline at end of file
diff --git a/tests/laravel/controllers/home.php b/tests/laravel/controllers/home.php
new file mode 100644
index 00000000..3f442005
--- /dev/null
+++ b/tests/laravel/controllers/home.php
@@ -0,0 +1,42 @@
+ '« Previous',
+ 'next' => 'Next »',
+
+);
\ No newline at end of file
diff --git a/tests/laravel/language/en/validation.php b/tests/laravel/language/en/validation.php
new file mode 100644
index 00000000..71553c5a
--- /dev/null
+++ b/tests/laravel/language/en/validation.php
@@ -0,0 +1,75 @@
+ array(),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines contain the default error messages used
+ | by the validator class. Some of the rules contain multiple versions,
+ | such as the size (max, min, between) rules. These versions are used
+ | for different input types such as strings and files.
+ |
+ | These language lines may be easily changed to provide custom error
+ | messages in your application. Error messages for custom validation
+ | rules may also be added to this file.
+ |
+ */
+
+ "accepted" => "The :attribute must be accepted.",
+ "active_url" => "The :attribute is not a valid URL.",
+ "alpha" => "The :attribute may only contain letters.",
+ "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.",
+ "alpha_num" => "The :attribute may only contain letters and numbers.",
+ "between" => array(
+ "numeric" => "The :attribute must be between :min - :max.",
+ "file" => "The :attribute must be between :min - :max kilobytes.",
+ "string" => "The :attribute must be between :min - :max characters.",
+ ),
+ "confirmed" => "The :attribute confirmation does not match.",
+ "email" => "The :attribute format is invalid.",
+ "image" => "The :attribute must be an image.",
+ "in" => "The selected :attribute is invalid.",
+ "integer" => "The :attribute must be an integer.",
+ "max" => array(
+ "numeric" => "The :attribute must be less than :max.",
+ "file" => "The :attribute must be less than :max kilobytes.",
+ "string" => "The :attribute must be less than :max characters.",
+ ),
+ "mimes" => "The :attribute must be a file of type: :values.",
+ "min" => array(
+ "numeric" => "The :attribute must be at least :min.",
+ "file" => "The :attribute must be at least :min kilobytes.",
+ "string" => "The :attribute must be at least :min characters.",
+ ),
+ "not_in" => "The selected :attribute is invalid.",
+ "numeric" => "The :attribute must be a number.",
+ "required" => "The :attribute field is required.",
+ "size" => array(
+ "numeric" => "The :attribute must be :size.",
+ "file" => "The :attribute must be :size kilobyte.",
+ "string" => "The :attribute must be :size characters.",
+ ),
+ "unique" => "The :attribute has already been taken.",
+ "url" => "The :attribute format is invalid.",
+
+);
\ No newline at end of file
diff --git a/tests/laravel/libraries/.gitignore b/tests/laravel/libraries/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/laravel/migrations/.gitignore b/tests/laravel/migrations/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/laravel/models/.gitignore b/tests/laravel/models/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/laravel/routes.php b/tests/laravel/routes.php
new file mode 100644
index 00000000..7bfd2439
--- /dev/null
+++ b/tests/laravel/routes.php
@@ -0,0 +1,87 @@
+ 'filter', function()
+| {
+| return 'Hello World!';
+| }));
+|
+*/
+
+Filter::register('before', function()
+{
+ // Do stuff before every request to your application...
+});
+
+Filter::register('after', function()
+{
+ // Do stuff after every request to your application...
+});
+
+Filter::register('csrf', function()
+{
+ if (Request::forged()) return Response::error('500');
+});
+
+Filter::register('auth', function()
+{
+ if (Auth::guest()) return Redirect::to('login');
+});
\ No newline at end of file
diff --git a/tests/laravel/tasks/.gitignore b/tests/laravel/tasks/.gitignore
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/laravel/views/error/404.php b/tests/laravel/views/error/404.php
new file mode 100644
index 00000000..9b9bf55b
--- /dev/null
+++ b/tests/laravel/views/error/404.php
@@ -0,0 +1,103 @@
+
+
+
+
+
+ Error 404 - Not Found
+
+
+
+
+
+
+
+
+
+
Server Error: 404 (Not Found)
+
+
What does this mean?
+
+
+ We couldn't find the page you requested on our servers. We're really sorry
+ about that. It's our fault, not yours. We'll work hard to get this page
+ back online as soon as possible.
+
+
+
+ Perhaps you would like to go to our ?
+
+
+
+
\ No newline at end of file
diff --git a/tests/laravel/views/error/500.php b/tests/laravel/views/error/500.php
new file mode 100644
index 00000000..4dcd92ad
--- /dev/null
+++ b/tests/laravel/views/error/500.php
@@ -0,0 +1,103 @@
+
+
+
+
+
+ Error 500 - Internal Server Error
+
+
+
+
+
+
+
+
+
+
Server Error: 500 (Internal Server Error)
+
+
What does this mean?
+
+
+ Something went wrong on our servers while we were processing your request.
+ We're really sorry about this, and will work hard to get this resolved as
+ soon as possible.
+
+
+
+ Perhaps you would like to go to our ?
+
+
+
+
\ No newline at end of file
diff --git a/tests/laravel/views/home/index.php b/tests/laravel/views/home/index.php
new file mode 100644
index 00000000..39497146
--- /dev/null
+++ b/tests/laravel/views/home/index.php
@@ -0,0 +1,122 @@
+
+
+
+
+
+ Laravel - A Framework For Web Artisans
+
+
+
+
+
+
Welcome To Laravel
+
+
A Framework For Web Artisans
+
+
+ You have successfully installed the Laravel framework. Laravel is a simple framework
+ that helps web artisans create beautiful, creative applications using elegant, expressive
+ syntax. You'll love using it.
+
+
+
Learn the terrain.
+
+
+ You've landed yourself on our default home page. The route that
+ is generating this page lives at:
+
+
+
APP_PATH/routes.php
+
+
And the view sitting before you can be found at:
+
+
APP_PATH/views/home/index.php
+
+
Create something beautiful.
+
+
+ Now that you're up and running, it's time to start creating!
+ Here are some links to help you get started:
+
+
+
+
+
+
+
\ No newline at end of file