Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Зуев Егор
/
wiki.dev
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Authored by
Dan Brown
2016-02-18 19:32:07 +0000
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Commit
86fbc9a93679bf7e0abe7385edd56c94c4a46051
86fbc9a9
1 parent
4d9726db
Added tests for profile pages
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
104 additions
and
9 deletions
app/Services/ActivityService.php
resources/views/home.blade.php
resources/views/users/profile.blade.php
storage/fonts/.gitignore
tests/TestCase.php
tests/UserProfileTest.php
app/Services/ActivityService.php
View file @
86fbc9a
...
...
@@ -29,18 +29,19 @@ class ActivityService
*/
public
function
add
(
Entity
$entity
,
$activityKey
,
$bookId
=
0
,
$extra
=
false
)
{
$this
->
activity
->
user_id
=
$this
->
user
->
id
;
$this
->
activity
->
book_id
=
$bookId
;
$this
->
activity
->
key
=
strtolower
(
$activityKey
);
$activity
=
$this
->
activity
->
newInstance
();
$activity
->
user_id
=
$this
->
user
->
id
;
$activity
->
book_id
=
$bookId
;
$activity
->
key
=
strtolower
(
$activityKey
);
if
(
$extra
!==
false
)
{
$
this
->
activity
->
extra
=
$extra
;
$activity
->
extra
=
$extra
;
}
$entity
->
activity
()
->
save
(
$
this
->
activity
);
$entity
->
activity
()
->
save
(
$activity
);
$this
->
setNotification
(
$activityKey
);
}
/**
* Adds a activity history with a message & without binding to a entit
i
y.
* Adds a activity history with a message & without binding to a entity.
* @param $activityKey
* @param int $bookId
* @param bool|false $extra
...
...
resources/views/home.blade.php
View file @
86fbc9a
...
...
@@ -14,7 +14,7 @@
@include('partials/entity-list', ['entities' => $recents])
</div>
<div
class=
"col-md-4 col-md-offset-1"
>
<div
class=
"col-md-4 col-md-offset-1"
id=
"recent-activity"
>
<div
class=
"margin-top large"
>
</div>
<h3>
Recent Activity
</h3>
@include('partials/activity-list', ['activity' => $activity])
...
...
resources/views/users/profile.blade.php
View file @
86fbc9a
...
...
@@ -22,7 +22,7 @@
</div>
</div>
</div>
<div
class=
"col-md-5 text-bigger"
>
<div
class=
"col-md-5 text-bigger"
id=
"content-counts"
>
<div
class=
"text-muted"
>
Created Content
</div>
<div
class=
"text-book"
>
<i
class=
"zmdi zmdi-book zmdi-hc-fw"
></i>
{{ $assetCounts['books'] }} {{ str_plural('Book', $assetCounts['books']) }}
...
...
@@ -65,7 +65,7 @@
@endif
</div>
<div
class=
"col-sm-4 col-sm-offset-1"
>
<div
class=
"col-sm-4 col-sm-offset-1"
id=
"recent-activity"
>
<h3>
Recent Activity
</h3>
@include('partials/activity-list', ['activity' => $activity])
</div>
...
...
storage/fonts/.gitignore
100644 → 100755
View file @
86fbc9a
File mode changed
tests/TestCase.php
View file @
86fbc9a
...
...
@@ -109,4 +109,18 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
return
$this
;
}
/**
* Click the text within the selected element.
* @param $parentElement
* @param $linkText
* @return $this
*/
protected
function
clickInElement
(
$parentElement
,
$linkText
)
{
$elem
=
$this
->
crawler
->
filter
(
$parentElement
);
$link
=
$elem
->
selectLink
(
$linkText
);
$this
->
visit
(
$link
->
link
()
->
getUri
());
return
$this
;
}
}
...
...
tests/UserProfileTest.php
0 → 100644
View file @
86fbc9a
<?php
class
UserProfileTest
extends
TestCase
{
protected
$user
;
public
function
setUp
()
{
parent
::
setUp
();
$this
->
user
=
\BookStack\User
::
all
()
->
last
();
}
public
function
test_profile_page_shows_name
()
{
$this
->
asAdmin
()
->
visit
(
'/user/'
.
$this
->
user
->
id
)
->
see
(
$this
->
user
->
name
);
}
public
function
test_profile_page_shows_recent_entities
()
{
$content
=
$this
->
createEntityChainBelongingToUser
(
$this
->
user
,
$this
->
user
);
$this
->
asAdmin
()
->
visit
(
'/user/'
.
$this
->
user
->
id
)
// Check the recently created page is shown
->
see
(
$content
[
'page'
]
->
name
)
// Check the recently created chapter is shown
->
see
(
$content
[
'chapter'
]
->
name
)
// Check the recently created book is shown
->
see
(
$content
[
'book'
]
->
name
);
}
public
function
test_profile_page_shows_created_content_counts
()
{
$newUser
=
$this
->
getNewUser
();
$this
->
asAdmin
()
->
visit
(
'/user/'
.
$newUser
->
id
)
->
see
(
$newUser
->
name
)
->
seeInElement
(
'#content-counts'
,
'0 Books'
)
->
seeInElement
(
'#content-counts'
,
'0 Chapters'
)
->
seeInElement
(
'#content-counts'
,
'0 Pages'
);
$this
->
createEntityChainBelongingToUser
(
$newUser
,
$newUser
);
$this
->
asAdmin
()
->
visit
(
'/user/'
.
$newUser
->
id
)
->
see
(
$newUser
->
name
)
->
seeInElement
(
'#content-counts'
,
'1 Book'
)
->
seeInElement
(
'#content-counts'
,
'1 Chapter'
)
->
seeInElement
(
'#content-counts'
,
'1 Page'
);
}
public
function
test_profile_page_shows_recent_activity
()
{
$newUser
=
$this
->
getNewUser
();
$this
->
actingAs
(
$newUser
);
$entities
=
$this
->
createEntityChainBelongingToUser
(
$newUser
,
$newUser
);
Activity
::
add
(
$entities
[
'book'
],
'book_update'
,
$entities
[
'book'
]
->
id
);
Activity
::
add
(
$entities
[
'page'
],
'page_create'
,
$entities
[
'book'
]
->
id
);
$this
->
asAdmin
()
->
visit
(
'/user/'
.
$newUser
->
id
)
->
seeInElement
(
'#recent-activity'
,
'updated book'
)
->
seeInElement
(
'#recent-activity'
,
'created page'
)
->
seeInElement
(
'#recent-activity'
,
$entities
[
'page'
]
->
name
);
}
public
function
test_clicking_user_name_in_activity_leads_to_profile_page
()
{
$newUser
=
$this
->
getNewUser
();
$this
->
actingAs
(
$newUser
);
$entities
=
$this
->
createEntityChainBelongingToUser
(
$newUser
,
$newUser
);
Activity
::
add
(
$entities
[
'book'
],
'book_update'
,
$entities
[
'book'
]
->
id
);
Activity
::
add
(
$entities
[
'page'
],
'page_create'
,
$entities
[
'book'
]
->
id
);
$this
->
asAdmin
()
->
visit
(
'/'
)
->
clickInElement
(
'#recent-activity'
,
$newUser
->
name
)
->
seePageIs
(
'/user/'
.
$newUser
->
id
)
->
see
(
$newUser
->
name
);
}
}
Please
register
or
sign in
to post a comment