1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-31 15:24:31 +03:00

Added new page drafts and started image entity attaching

Closes #80.
This commit is contained in:
Dan Brown
2016-03-13 12:04:08 +00:00
parent ced8c8e497
commit 5283919d24
26 changed files with 403 additions and 84 deletions

View File

@ -88,8 +88,11 @@ class EntityTest extends TestCase
$this->asAdmin()
// Navigate to page create form
->visit($chapter->getUrl())
->click('New Page')
->seePageIs($chapter->getUrl() . '/create-page')
->click('New Page');
$draftPage = \BookStack\Page::where('draft', '=', true)->orderBy('created_at', 'desc')->first();
$this->seePageIs($draftPage->getUrl())
// Fill out form
->type($page->name, '#name')
->type($page->html, '#html')

View File

@ -1,7 +1,7 @@
<?php
class PageUpdateDraftTest extends TestCase
class PageDraftTest extends TestCase
{
protected $page;
protected $pageRepo;
@ -59,4 +59,33 @@ class PageUpdateDraftTest extends TestCase
->see('Admin has started editing this page');
}
public function test_draft_pages_show_on_homepage()
{
$book = \BookStack\Book::first();
$this->asAdmin()->visit('/')
->dontSeeInElement('#recent-drafts', 'New Page')
->visit($book->getUrl() . '/page/create')
->visit('/')
->seeInElement('#recent-drafts', 'New Page');
}
public function test_draft_pages_not_visible_by_others()
{
$book = \BookStack\Book::first();
$chapter = $book->chapters->first();
$newUser = $this->getNewUser();
$this->actingAs($newUser)->visit('/')
->visit($book->getUrl() . '/page/create')
->visit($chapter->getUrl() . '/create-page')
->visit($book->getUrl())
->seeInElement('.page-list', 'New Page');
$this->asAdmin()
->visit($book->getUrl())
->dontSeeInElement('.page-list', 'New Page')
->visit($chapter->getUrl())
->dontSeeInElement('.page-list', 'New Page');
}
}

View File

@ -392,14 +392,28 @@ class RolesTest extends TestCase
$baseUrl = $ownBook->getUrl() . '/page';
$this->checkAccessPermission('page-create-own', [
$baseUrl . '/create',
$ownChapter->getUrl() . '/create-page'
], [
$createUrl = $baseUrl . '/create';
$createUrlChapter = $ownChapter->getUrl() . '/create-page';
$accessUrls = [$createUrl, $createUrlChapter];
foreach ($accessUrls as $url) {
$this->actingAs($this->user)->visit('/')->visit($url)
->seePageIs('/');
}
$this->checkAccessPermission('page-create-own', [], [
$ownBook->getUrl() => 'New Page',
$ownChapter->getUrl() => 'New Page'
]);
$this->giveUserPermissions($this->user, ['page-create-own']);
foreach ($accessUrls as $index => $url) {
$this->actingAs($this->user)->visit('/')->visit($url);
$expectedUrl = \BookStack\Page::where('draft', '=', true)->orderBy('id', 'desc')->first()->getUrl();
$this->seePageIs($expectedUrl);
}
$this->visit($baseUrl . '/create')
->type('test page', 'name')
->type('page desc', 'html')
@ -421,14 +435,29 @@ class RolesTest extends TestCase
$book = \BookStack\Book::take(1)->get()->first();
$chapter = \BookStack\Chapter::take(1)->get()->first();
$baseUrl = $book->getUrl() . '/page';
$this->checkAccessPermission('page-create-all', [
$baseUrl . '/create',
$chapter->getUrl() . '/create-page'
], [
$createUrl = $baseUrl . '/create';
$createUrlChapter = $chapter->getUrl() . '/create-page';
$accessUrls = [$createUrl, $createUrlChapter];
foreach ($accessUrls as $url) {
$this->actingAs($this->user)->visit('/')->visit($url)
->seePageIs('/');
}
$this->checkAccessPermission('page-create-all', [], [
$book->getUrl() => 'New Page',
$chapter->getUrl() => 'New Page'
]);
$this->giveUserPermissions($this->user, ['page-create-all']);
foreach ($accessUrls as $index => $url) {
$this->actingAs($this->user)->visit('/')->visit($url);
$expectedUrl = \BookStack\Page::where('draft', '=', true)->orderBy('id', 'desc')->first()->getUrl();
$this->seePageIs($expectedUrl);
}
$this->visit($baseUrl . '/create')
->type('test page', 'name')
->type('page desc', 'html')