Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
laravel-adminpanel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
laravel-adminpanel
Commits
75264183
Commit
75264183
authored
Jan 08, 2018
by
Vipul Basapati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Blog Tests completed
parent
a6019896
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
333 additions
and
139 deletions
+333
-139
BlogsRepository.php
app/Repositories/Backend/Blogs/BlogsRepository.php
+30
-18
composer.lock
composer.lock
+90
-90
BlogFactory.php
database/factories/BlogFactory.php
+1
-0
form.blade.php
resources/views/backend/blogs/form.blade.php
+1
-1
edit.blade.php
resources/views/backend/settings/edit.blade.php
+1
-1
ManageBlogsTest.php
tests/Feature/Backend/ManageBlogsTest.php
+192
-8
ManagePagesTest.php
tests/Feature/Backend/ManagePagesTest.php
+17
-20
BlogTest.php
tests/Unit/Models/BlogTest.php
+1
-1
No files found.
app/Repositories/Backend/Blogs/BlogsRepository.php
View file @
75264183
...
...
@@ -2,19 +2,20 @@
namespace
App\Repositories\Backend\Blogs
;
use
App\Events\Backend\Blogs\BlogCreated
;
use
DB
;
use
Carbon\Carbon
;
use
App\Models\Blogs\Blog
;
use
App\Models\BlogTags\BlogTag
;
use
App\Http\Utilities\FileUploads
;
use
App\Exceptions\GeneralException
;
use
App\Repositories\BaseRepository
;
use
App\Models\BlogMapTags\BlogMapTag
;
use
Illuminate\Support\Facades\Storage
;
use
App\Events\Backend\Blogs\BlogDeleted
;
use
App\Events\Backend\Blogs\BlogUpdated
;
use
App\Exceptions\GeneralException
;
use
App\Http\Utilities\FileUploads
;
use
App\Events\Backend\Blogs\BlogCreated
;
use
App\Models\BlogCategories\BlogCategory
;
use
App\Models\BlogMapCategories\BlogMapCategory
;
use
App\Models\BlogMapTags\BlogMapTag
;
use
App\Models\Blogs\Blog
;
use
App\Models\BlogTags\BlogTag
;
use
App\Repositories\BaseRepository
;
use
Carbon\Carbon
;
use
DB
;
/**
* Class BlogsRepository.
...
...
@@ -26,6 +27,21 @@ class BlogsRepository extends BaseRepository
*/
const
MODEL
=
Blog
::
class
;
protected
$upload_path
;
/**
* Storage Class Object.
*
* @var \Illuminate\Support\Facades\Storage
*/
protected
$storage
;
public
function
__construct
()
{
$this
->
upload_path
=
'img'
.
DIRECTORY_SEPARATOR
.
'blog'
.
DIRECTORY_SEPARATOR
;
$this
->
storage
=
Storage
::
disk
(
'public'
);
}
/**
* @return mixed
*/
...
...
@@ -210,13 +226,12 @@ class BlogsRepository extends BaseRepository
*/
public
function
uploadImage
(
$input
)
{
$uploadManager
=
new
FileUploads
();
$avatar
=
$input
[
'featured_image'
];
if
(
isset
(
$input
[
'featured_image'
])
&&
!
empty
(
$input
[
'featured_image'
]))
{
$fileName
=
$uploadManager
->
setBasePath
(
'backend/blog_images'
)
->
setThumbnailFlag
(
false
)
->
upload
(
$input
[
'featured_image'
]
);
$fileName
=
time
()
.
$avatar
->
getClientOriginalName
();
$this
->
storage
->
put
(
$this
->
upload_path
.
$fileName
,
file_get_contents
(
$avatar
->
getRealPath
())
);
$input
=
array_merge
(
$input
,
[
'featured_image'
=>
$fileName
]);
...
...
@@ -231,11 +246,8 @@ class BlogsRepository extends BaseRepository
*/
public
function
deleteOldFile
(
$model
)
{
$uploadManager
=
new
FileUploads
();
$fileName
=
$model
->
featured_image
;
$filePath
=
$uploadManager
->
setBasePath
(
'backend/blog_images'
);
$file
=
$filePath
->
filePath
.
DIRECTORY_SEPARATOR
.
$fileName
;
return
$uploadManager
->
deleteFile
(
$file
);
return
$this
->
storage
->
delete
(
$this
->
upload_path
.
$fileName
);
}
}
composer.lock
View file @
75264183
This diff is collapsed.
Click to expand it.
database/factories/BlogFactory.php
View file @
75264183
...
...
@@ -12,6 +12,7 @@ $factory->define(Blog::class, function (Faker $faker) {
'InActive'
,
'Scheduled'
];
return
[
'name'
=>
$faker
->
sentence
,
'publish_datetime'
=>
$faker
->
dateTime
(),
...
...
resources/views/backend/blogs/form.blade.php
View file @
75264183
...
...
@@ -35,7 +35,7 @@
{{ Form::label('featured_image', trans('validation.attributes.backend.blogs.image'), ['class' => 'col-lg-2 control-label required']) }}
@if(!empty($blog->featured_image))
<div
class=
"col-lg-1"
>
<img
src=
"
/img/backend/blog_images/{{$blog->featured_image
}}"
height=
"80"
width=
"80"
>
<img
src=
"
{{ Storage::disk('public')->url('img/blog/' . $blog->featured_image)
}}"
height=
"80"
width=
"80"
>
</div>
<div
class=
"col-lg-5"
>
<div
class=
"custom-file-input"
>
...
...
resources/views/backend/settings/edit.blade.php
View file @
75264183
...
...
@@ -58,7 +58,7 @@
</div>
<div class="
img
-
remove
-
logo
">
@if(
$setting->logo
)
<img height="
50
" width="
50
" src="
{{
Storage
::
disk
(
'public'
)
->
url
(
'img/
site_
logo/'
.
$setting
->
logo
)
}}
">
<img height="
50
" width="
50
" src="
{{
Storage
::
disk
(
'public'
)
->
url
(
'img/logo/'
.
$setting
->
logo
)
}}
">
<i id="
remove
-
logo
-
img
" class="
fa
fa
-
times
remove
-
logo
" data-id="
logo
" aria-hidden="
true
"></i>
@endif
</div>
...
...
tests/Feature/Backend/ManageBlogsTest.php
View file @
75264183
...
...
@@ -3,18 +3,202 @@
namespace
Tests\Feature\Backend
;
use
Tests\TestCase
;
use
App\Models\Blogs\Blog
;
use
App\Models\BlogTags\BlogTag
;
use
Illuminate\Http\UploadedFile
;
use
Illuminate\Support\Facades\Storage
;
use
App\Models\BlogCategories\BlogCategory
;
use
Illuminate\Foundation\Testing\WithFaker
;
use
Illuminate\Foundation\Testing\RefreshDatabase
;
class
ManageBlogsTest
extends
TestCase
{
/**
* A basic test example.
*
* @return void
*/
public
function
testExample
()
{
$this
->
assertTrue
(
true
);
use
WithFaker
;
protected
$blog
;
protected
$categories
;
protected
$tags
;
public
function
setUp
()
{
parent
::
setUp
();
$this
->
actingAs
(
$this
->
admin
);
$this
->
blog
=
create
(
Blog
::
class
);
$this
->
categories
=
[
$this
->
faker
->
word
,
$this
->
faker
->
word
];
$this
->
tags
=
[
$this
->
faker
->
word
,
$this
->
faker
->
word
];
}
/** @test */
public
function
a_user_can_view_blogs_index_page
()
{
$this
->
actingAs
(
$this
->
admin
)
->
get
(
route
(
'admin.blogs.index'
))
->
assertViewIs
(
'backend.blogs.index'
)
->
assertSee
(
trans
(
'labels.backend.blogs.management'
))
->
assertSee
(
trans
(
'labels.backend.blogs.table.title'
))
->
assertSee
(
trans
(
'labels.backend.blogs.table.publish'
))
->
assertSee
(
trans
(
'labels.backend.blogs.table.createdby'
))
->
assertSee
(
trans
(
'labels.backend.blogs.table.createdat'
))
->
assertSee
(
trans
(
'labels.backend.blogs.table.status'
))
->
assertSee
(
'Export'
)
->
assertSee
(
'Action'
);
}
/** @test */
public
function
a_user_can_create_a_blog
()
{
$blog
=
make
(
Blog
::
class
,
[
'featured_image'
=>
UploadedFile
::
fake
()
->
image
(
'logo.jpg'
),
'categories'
=>
$this
->
categories
,
'tags'
=>
$this
->
tags
]);
$this
->
post
(
route
(
'admin.blogs.store'
),
$blog
->
toArray
());
$this
->
assertDatabaseHas
(
config
(
'module.blogs.table'
),
[
'name'
=>
$blog
->
name
,
'status'
=>
$blog
->
status
]);
//Assert Tags have been saved
$this
->
assertDatabaseHas
(
config
(
'module.blog_tags.table'
),
[
'name'
=>
$this
->
tags
[
0
]]);
$this
->
assertDatabaseHas
(
config
(
'module.blog_tags.table'
),
[
'name'
=>
$this
->
tags
[
1
]]);
//Assert Categories have been saved
$this
->
assertDatabaseHas
(
config
(
'module.blog_categories.table'
),
[
'name'
=>
$this
->
categories
[
0
]]);
$this
->
assertDatabaseHas
(
config
(
'module.blog_categories.table'
),
[
'name'
=>
$this
->
categories
[
1
]]);
}
public
function
makeBlog
(
$overrides
=
[])
{
$this
->
withExceptionHandling
();
$blog
=
make
(
Blog
::
class
,
$overrides
);
return
$blog
;
}
/** @test */
public
function
it_requires_name_while_creating
()
{
$blog
=
$this
->
makeBlog
([
'name'
=>
''
]);
$this
->
post
(
route
(
'admin.blogs.store'
),
$blog
->
toArray
())
->
assertSessionHasErrors
(
'name'
);
}
/** @test */
public
function
it_requires_content_while_creating
()
{
$blog
=
$this
->
makeBlog
([
'content'
=>
''
]);
$this
->
post
(
route
(
'admin.blogs.store'
),
$blog
->
toArray
())
->
assertSessionHasErrors
(
'content'
);
}
/** @test */
public
function
it_requires_featured_image_while_creating
()
{
$blog
=
$this
->
makeBlog
([
'featured_image'
=>
''
]);
$this
->
post
(
route
(
'admin.blogs.store'
),
$blog
->
toArray
())
->
assertSessionHasErrors
(
'featured_image'
);
}
/** @test */
public
function
it_requires_categories_while_creating
()
{
$blog
=
$this
->
makeBlog
([
'categories'
=>
''
]);
$this
->
post
(
route
(
'admin.blogs.store'
),
$blog
->
toArray
())
->
assertSessionHasErrors
(
'categories'
);
}
/** @test */
public
function
it_requires_tags_while_creating
()
{
$blog
=
$this
->
makeBlog
([
'tags'
=>
''
]);
$this
->
post
(
route
(
'admin.blogs.store'
),
$blog
->
toArray
())
->
assertSessionHasErrors
(
'tags'
);
}
/** @test */
public
function
it_can_store_featured_image
()
{
$blog
=
make
(
Blog
::
class
,
[
'featured_image'
=>
UploadedFile
::
fake
()
->
image
(
'logo.jpg'
),
'categories'
=>
$this
->
categories
,
'tags'
=>
$this
->
tags
]);
$this
->
post
(
route
(
'admin.blogs.store'
),
$blog
->
toArray
());
$stored_blog
=
Blog
::
find
(
2
);
Storage
::
disk
(
'public'
)
->
assertExists
(
'img/blog/'
.
$stored_blog
->
featured_image
);
}
/** @test */
public
function
it_requires_name_while_updating
()
{
$this
->
withExceptionHandling
();
$this
->
blog
->
name
=
''
;
$this
->
patch
(
route
(
'admin.blogs.update'
,
$this
->
blog
),
$this
->
blog
->
toArray
())
->
assertSessionHasErrors
(
'name'
);
}
/** @test */
public
function
it_requires_content_while_updating
()
{
$this
->
withExceptionHandling
();
$this
->
blog
->
content
=
''
;
$this
->
patch
(
route
(
'admin.blogs.update'
,
$this
->
blog
),
$this
->
blog
->
toArray
())
->
assertSessionHasErrors
(
'content'
);
}
/** @test */
public
function
it_requires_categories_while_updating
()
{
$this
->
withExceptionHandling
();
$this
->
patch
(
route
(
'admin.blogs.update'
,
$this
->
blog
),
$this
->
blog
->
toArray
())
->
assertSessionHasErrors
(
'categories'
);
}
/** @test */
public
function
it_requires_tags_while_updating
()
{
$this
->
withExceptionHandling
();
$this
->
patch
(
route
(
'admin.blogs.update'
,
$this
->
blog
),
$this
->
blog
->
toArray
())
->
assertSessionHasErrors
(
'tags'
);
}
/** @test */
public
function
a_user_can_update_blog
()
{
$blog
=
make
(
Blog
::
class
,
[
'featured_image'
=>
UploadedFile
::
fake
()
->
image
(
'logo.jpg'
),
'name'
=>
'Changed Name'
,
'categories'
=>
$this
->
categories
,
'tags'
=>
$this
->
tags
]);
$this
->
patch
(
route
(
'admin.blogs.update'
,
$this
->
blog
),
$blog
->
toArray
());
$this
->
assertDatabaseHas
(
config
(
'module.blogs.table'
),
[
'id'
=>
$this
->
blog
->
id
,
'name'
=>
'Changed Name'
]);
}
/** @test */
public
function
a_user_can_delete_a_blog
()
{
$this
->
delete
(
route
(
'admin.blogs.destroy'
,
$this
->
blog
));
$this
->
assertDatabaseMissing
(
config
(
'module.blogs.table'
),
[
'id'
=>
$this
->
blog
->
id
,
'deleted_at'
=>
null
]);
}
}
tests/Feature/Backend/ManagePagesTest.php
View file @
75264183
...
...
@@ -57,22 +57,19 @@ class ManagePagesTest extends TestCase
}
/** @test */
public
function
it_
fails_for_validation_on_create_pag
e
()
public
function
it_
requires_title_on_creat
e
()
{
$page
=
make
(
Page
::
class
,
[
'title'
=>
''
,
'description'
=>
''
]);
$this
->
withExceptionHandling
()
->
actingAs
(
$this
->
admin
)
->
post
(
route
(
'admin.pages.store'
),
$page
->
toArray
())
->
assertSessionHasErrors
([
'title'
,
'description'
]);
$page
=
make
(
Page
::
class
,
[
'title'
=>
''
]);
$this
->
withExceptionHandling
()
->
actingAs
(
$this
->
admin
)
->
post
(
route
(
'admin.pages.store'
),
$page
->
toArray
())
->
assertSessionHasErrors
(
'title'
);
}
/** @test */
public
function
it_requires_description_while_create
()
{
$page
=
make
(
Page
::
class
,
[
'description'
=>
''
]);
$this
->
withExceptionHandling
()
...
...
@@ -96,32 +93,32 @@ class ManagePagesTest extends TestCase
}
/** @test */
public
function
it_
fails_for_validation
_on_update
()
public
function
it_
requires_title
_on_update
()
{
$page
=
create
(
Page
::
class
);
$page1
=
$page
2
=
$page3
=
$page
->
toArray
();
$page1
=
$page
->
toArray
();
$page1
[
'title'
]
=
''
;
$page1
[
'description'
]
=
''
;
$this
->
withExceptionHandling
()
->
actingAs
(
$this
->
admin
)
->
post
(
route
(
'admin.pages.store'
),
$page1
)
->
assertSessionHasErrors
([
'title'
,
'description'
]);
->
patch
(
route
(
'admin.pages.update'
,
$page
),
$page1
)
->
assertSessionHasErrors
(
'title'
);
}
$page2
[
'title'
]
=
''
;
/** @test */
public
function
it_requires_description_while_update
()
{
$page
=
create
(
Page
::
class
);
$this
->
withExceptionHandling
()
->
actingAs
(
$this
->
admin
)
->
post
(
route
(
'admin.pages.store'
),
$page2
)
->
assertSessionHasErrors
(
'title'
);
$page1
=
$page
->
toArray
();
$page
3
[
'description'
]
=
''
;
$page
1
[
'description'
]
=
''
;
$this
->
withExceptionHandling
()
->
actingAs
(
$this
->
admin
)
->
p
ost
(
route
(
'admin.pages.store'
),
$page3
)
->
p
atch
(
route
(
'admin.pages.update'
,
$page
),
$page1
)
->
assertSessionHasErrors
(
'description'
);
}
...
...
tests/Unit/Models/BlogTest.php
View file @
75264183
...
...
@@ -55,7 +55,7 @@ class BlogTest extends TestCase
}
/** @test */
public
function
it_has_a_date_field_for_publish_datetime
()
public
function
it_has_a_
carbon_
date_field_for_publish_datetime
()
{
$this
->
actingAs
(
$this
->
admin
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment