mirror of
https://github.com/flarum/core.git
synced 2025-08-06 16:36:47 +02:00
Slug Extender Test works
This commit is contained in:
@@ -50,10 +50,12 @@ class HttpServiceProvider extends AbstractServiceProvider
|
||||
$compiledDrivers = [];
|
||||
|
||||
foreach ($this->app->make('flarum.http.slugDrivers') as $resourceClass => $resourceDrivers) {
|
||||
$driverClass = $resourceDrivers[$settings->get("slug_driver_$resourceClass", 'default')];
|
||||
echo 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
|
||||
echo "slug_driver_$resourceClass";
|
||||
//echo $settings->get("slug_driver_$resourceClass", 'default');
|
||||
$driverKey = $settings->get("slug_driver_$resourceClass", 'default');
|
||||
if (array_key_exists($driverKey, $resourceDrivers)) {
|
||||
$driverClass = $resourceDrivers[$driverKey];
|
||||
} else {
|
||||
$driverClass = $resourceDrivers['default'];
|
||||
}
|
||||
$compiledDrivers[$resourceClass] = $this->app->make($driverClass);
|
||||
}
|
||||
|
||||
@@ -70,14 +72,14 @@ class HttpServiceProvider extends AbstractServiceProvider
|
||||
]);
|
||||
},
|
||||
Post::class => function (UrlGenerator $urlGenerator, Post $post) use ($slugManager) {
|
||||
return $urlGenerator->to('forum')->route('user', [
|
||||
return $urlGenerator->to('forum')->route('post', [
|
||||
'id' => $slugManager->forResource(Discussion::class)->toSlug($post->discussion),
|
||||
'near' => $post->id,
|
||||
]);
|
||||
},
|
||||
User::class => function (UrlGenerator $urlGenerator, User $user) use ($slugManager) {
|
||||
return $urlGenerator->to('forum')->route('user', [
|
||||
'id' => $slugManager->forResource(User::class)->toSlug($user)
|
||||
'username' => $slugManager->forResource(User::class)->toSlug($user)
|
||||
]);
|
||||
},
|
||||
];
|
||||
|
@@ -79,8 +79,6 @@ class UrlGenerator
|
||||
{
|
||||
$callback = $this->resourceUrlGenerators[$resourceClass];
|
||||
|
||||
$result = $callback($this, $instance, ...$args);
|
||||
|
||||
return $result;
|
||||
return $callback($this, $instance, ...$args);
|
||||
}
|
||||
}
|
||||
|
@@ -14,6 +14,7 @@ use Flarum\Extend;
|
||||
use Flarum\Http\SlugDriverInterface;
|
||||
use Flarum\Http\SlugManager;
|
||||
use Flarum\Http\UrlGenerator;
|
||||
use Flarum\Settings\SettingsRepositoryInterface;
|
||||
use Flarum\Tests\integration\RetrievesAuthorizedUsers;
|
||||
use Flarum\Tests\integration\TestCase;
|
||||
use Flarum\User\User;
|
||||
@@ -24,35 +25,18 @@ class ModelUrlTest extends TestCase
|
||||
|
||||
protected function prepDb()
|
||||
{
|
||||
$userClass = User::class;
|
||||
$this->prepareDatabase([
|
||||
'users' => [
|
||||
$this->adminUser(),
|
||||
$this->normalUser(),
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
protected function activateCustomDriver()
|
||||
{
|
||||
$userClass = User::class;
|
||||
$this->prepareDatabase([
|
||||
'settings' => [
|
||||
['key' => "slug_driver_$userClass", 'value' => 'testDriver'],
|
||||
],
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
// public function tearDown()
|
||||
// {
|
||||
// $userClass = User::class;
|
||||
// $this->prepareDatabase([
|
||||
// 'settings' => [
|
||||
// ['key' => "slug_driver_$userClass", 'value' => 'default'],
|
||||
// ],
|
||||
// ]);
|
||||
// parent::tearDown();
|
||||
// }
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
@@ -102,7 +86,7 @@ class ModelUrlTest extends TestCase
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function custom_slug_driver_doesnt_have_effect_unless_enabled()
|
||||
public function custom_slug_driver_has_effect_if_added()
|
||||
{
|
||||
$this->extend((new Extend\ModelUrl(User::class))->addSlugDriver('testDriver', TestSlugDriver::class));
|
||||
|
||||
@@ -112,24 +96,6 @@ class ModelUrlTest extends TestCase
|
||||
|
||||
$testUser = User::find(1);
|
||||
|
||||
$this->assertEquals('admin', $slugManager->forResource(User::class)->toSlug($testUser));
|
||||
$this->assertEquals('1', $slugManager->forResource(User::class)->fromSlug('admin', $testUser)->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function custom_slug_driver_has_effect_if_enabled()
|
||||
{
|
||||
$this->extend((new Extend\ModelUrl(User::class))->addSlugDriver('testDriver', TestSlugDriver::class));
|
||||
|
||||
$this->prepDb();
|
||||
$this->activateCustomDriver();
|
||||
|
||||
$slugManager = $this->app()->getContainer()->make(SlugManager::class);
|
||||
|
||||
$testUser = User::find(1);
|
||||
|
||||
$this->assertEquals('test-slug', $slugManager->forResource(User::class)->toSlug($testUser));
|
||||
$this->assertEquals('1', $slugManager->forResource(User::class)->fromSlug('random-gibberish', $testUser)->id);
|
||||
}
|
||||
|
Reference in New Issue
Block a user