Commit 4e21cfce authored by Taylor Otwell's avatar Taylor Otwell

Fixing a double slash bug in URL generation with languages. add tests.

parent cfe5fa10
...@@ -84,6 +84,8 @@ class URLTest extends PHPUnit_Framework_TestCase { ...@@ -84,6 +84,8 @@ class URLTest extends PHPUnit_Framework_TestCase {
Request::foundation()->server->add(array('HTTPS' => 'on')); Request::foundation()->server->add(array('HTTPS' => 'on'));
$this->assertEquals('https://localhost/image.jpg', URL::to_asset('image.jpg')); $this->assertEquals('https://localhost/image.jpg', URL::to_asset('image.jpg'));
Request::foundation()->server->add(array('HTTPS' => 'off'));
} }
/** /**
...@@ -103,4 +105,26 @@ class URLTest extends PHPUnit_Framework_TestCase { ...@@ -103,4 +105,26 @@ class URLTest extends PHPUnit_Framework_TestCase {
$this->assertEquals('http://localhost/index.php/url/test/taylor/otwell', URL::to_route('url-test-2', array('taylor', 'otwell'))); $this->assertEquals('http://localhost/index.php/url/test/taylor/otwell', URL::to_route('url-test-2', array('taylor', 'otwell')));
} }
/**
* Test language based URL generation.
*
* @group laravel
*/
public function testUrlsGeneratedWithLanguages()
{
Config::set('application.languages', array('sp', 'fr'));
Config::set('application.language', 'sp');
$this->assertEquals('http://localhost/index.php/sp/foo', URL::to('foo'));
$this->assertEquals('http://localhost/foo.jpg', URL::to_asset('foo.jpg'));
Config::set('application.index', '');
$this->assertEquals('http://localhost/sp/foo', URL::to('foo'));
Config::set('application.index', 'index.php');
Config::set('application.language', 'en');
$this->assertEquals('http://localhost/index.php/foo', URL::to('foo'));
Config::set('application.languages', array());
}
} }
\ No newline at end of file
...@@ -114,9 +114,14 @@ class URL { ...@@ -114,9 +114,14 @@ class URL {
$root .= '/'.Config::get('application.index'); $root .= '/'.Config::get('application.index');
} }
if ( ! $asset and $locale and count(Config::get('application.languages')) > 0) $languages = Config::get('application.languages');
if ( ! $asset and $locale and count($languages) > 0)
{
if (in_array($default = Config::get('application.language'), $languages))
{ {
$root .= '/'.Config::get('application.language'); $root = rtrim($root, '/').'/'.$default;
}
} }
// Since SSL is not often used while developing the application, we allow the // Since SSL is not often used while developing the application, we allow the
......
<phpunit colors="true"
bootstrap="/Users/taylor/Code/Laravel/framework/laravel/tests/phpunit.php"
backupGlobals="false">
<testsuites>
<testsuite name="Test Suite">
<directory suffix=".test.php">/Users/taylor/Code/Laravel/framework/laravel/tests/cases</directory>
</testsuite>
</testsuites>
</phpunit>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment