Added tests for profile pages
This commit is contained in:
parent
4d9726dbdd
commit
86fbc9a936
6 changed files with 104 additions and 9 deletions
|
@ -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 entitiy.
|
||||
* Adds a activity history with a message & without binding to a entity.
|
||||
* @param $activityKey
|
||||
* @param int $bookId
|
||||
* @param bool|false $extra
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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>
|
||||
|
|
0
storage/fonts/.gitignore
vendored
Normal file → Executable file
0
storage/fonts/.gitignore
vendored
Normal file → Executable file
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
80
tests/UserProfileTest.php
Normal file
80
tests/UserProfileTest.php
Normal file
|
@ -0,0 +1,80 @@
|
|||
<?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);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue