Created Content
{{ $assetCounts['books'] }} {{ str_plural('Book', $assetCounts['books']) }}
@@ -65,7 +65,7 @@
@endif
-
+
Recent Activity
@include('partials/activity-list', ['activity' => $activity])
diff --git a/storage/fonts/.gitignore b/storage/fonts/.gitignore
old mode 100644
new mode 100755
diff --git a/tests/TestCase.php b/tests/TestCase.php
index 24685321f..4b8578a43 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -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;
+ }
}
diff --git a/tests/UserProfileTest.php b/tests/UserProfileTest.php
new file mode 100644
index 000000000..170e7eed1
--- /dev/null
+++ b/tests/UserProfileTest.php
@@ -0,0 +1,80 @@
+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);
+ }
+
+}