[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: ScopeHelperTests.php
<?php namespace Cviebrock\EloquentSluggable\Tests; use Cviebrock\EloquentSluggable\Tests\Models\PostShortConfigWithScopeHelpers; use Cviebrock\EloquentSluggable\Tests\Models\PostWithMultipleSlugsAndCustomSlugKey; use Cviebrock\EloquentSluggable\Tests\Models\PostWithMultipleSlugsAndHelperTrait; use Illuminate\Database\Eloquent\ModelNotFoundException; /** * Class ScopeHelperTests * * @package Tests */ class ScopeHelperTests extends TestCase { /** * Test that primary slug is set to $model->slugKeyName when set. */ public function testSlugKeyNameProperty(): void { $post = PostWithMultipleSlugsAndCustomSlugKey::create([ 'title' => 'A Post Title', 'subtitle' => 'A Post Subtitle' ]); self::assertEquals('dummy', $post->getSlugKeyName()); self::assertEquals('a.post.subtitle', $post->dummy); self::assertEquals('a.post.subtitle', $post->getSlugKey()); } /** * Test primary slug is set to first defined slug if $model->slugKeyName is not set. */ public function testFirstSlugAsFallback(): void { $post = PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title' ]); self::assertEquals('slug', $post->getSlugKeyName()); self::assertEquals('a-post-title', $post->getSlugKey()); } /** * Test primary slug query scope. */ public function testQueryScope(): void { PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title A' ]); $post = PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title B' ]); PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title C' ]); self::assertEquals($post->getKey(), PostWithMultipleSlugsAndHelperTrait::whereSlug('a-post-title-b')->first()->getKey()); } /** * Test finding a model by its primary slug. */ public function testFindBySlug(): void { PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title A' ]); $post = PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title B' ]); PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title C' ]); self::assertEquals($post->getKey(), PostWithMultipleSlugsAndHelperTrait::findBySlug('a-post-title-b')->getKey()); } /** * Test finding a model by its primary slug fails if the slug does not exist. */ public function testFindBySlugReturnsNullForNoRecord(): void { self::assertNull(PostWithMultipleSlugsAndHelperTrait::findBySlug('not a real record')); } /** * Test finding a model by its primary slug throws an exception if the slug does not exist. */ public function testFindBySlugOrFail(): void { PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title A' ]); $post = PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title B' ]); PostWithMultipleSlugsAndHelperTrait::create([ 'title' => 'A Post Title C' ]); self::assertEquals($post->getKey(), PostWithMultipleSlugsAndHelperTrait::findBySlugOrFail('a-post-title-b')->getKey()); $this->expectException(ModelNotFoundException::class); PostWithMultipleSlugsAndHelperTrait::findBySlugOrFail('not a real record'); } /** * Test that getSlugKeyName() works with the short configuration syntax. */ public function testGetSlugKeyNameWithShortConfig(): void { $post = new PostShortConfigWithScopeHelpers(); self::assertEquals('slug_field', $post->getSlugKeyName()); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.73 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002