mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-02-16 17:12:58 +08:00
Migrated much test entity usage via find/replace
This commit is contained in:
parent
068a8a068c
commit
b56f7355aa
|
@ -46,7 +46,7 @@ class AuditLogTest extends TestCase
|
|||
{
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->activityService->add(ActivityType::PAGE_CREATE, $page);
|
||||
$activity = Activity::query()->orderBy('id', 'desc')->first();
|
||||
|
||||
|
@ -60,7 +60,7 @@ class AuditLogTest extends TestCase
|
|||
public function test_shows_name_for_deleted_items()
|
||||
{
|
||||
$this->actingAs($this->getAdmin());
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$pageName = $page->name;
|
||||
$this->activityService->add(ActivityType::PAGE_CREATE, $page);
|
||||
|
||||
|
@ -76,7 +76,7 @@ class AuditLogTest extends TestCase
|
|||
{
|
||||
$viewer = $this->getViewer();
|
||||
$this->actingAs($viewer);
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->activityService->add(ActivityType::PAGE_CREATE, $page);
|
||||
|
||||
$this->actingAs($this->getAdmin());
|
||||
|
@ -89,7 +89,7 @@ class AuditLogTest extends TestCase
|
|||
public function test_filters_by_key()
|
||||
{
|
||||
$this->actingAs($this->getAdmin());
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->activityService->add(ActivityType::PAGE_CREATE, $page);
|
||||
|
||||
$resp = $this->get('settings/audit');
|
||||
|
@ -102,7 +102,7 @@ class AuditLogTest extends TestCase
|
|||
public function test_date_filters()
|
||||
{
|
||||
$this->actingAs($this->getAdmin());
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->activityService->add(ActivityType::PAGE_CREATE, $page);
|
||||
|
||||
$yesterday = (Carbon::now()->subDay()->format('Y-m-d'));
|
||||
|
@ -126,11 +126,11 @@ class AuditLogTest extends TestCase
|
|||
$admin = $this->getAdmin();
|
||||
$editor = $this->getEditor();
|
||||
$this->actingAs($admin);
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->activityService->add(ActivityType::PAGE_CREATE, $page);
|
||||
|
||||
$this->actingAs($editor);
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$this->activityService->add(ActivityType::CHAPTER_UPDATE, $chapter);
|
||||
|
||||
$resp = $this->actingAs($admin)->get('settings/audit?user=' . $admin->id);
|
||||
|
@ -146,8 +146,7 @@ class AuditLogTest extends TestCase
|
|||
{
|
||||
config()->set('app.proxies', '*');
|
||||
$editor = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($editor)->put($page->getUrl(), [
|
||||
'name' => 'Updated page',
|
||||
|
@ -171,8 +170,7 @@ class AuditLogTest extends TestCase
|
|||
{
|
||||
config()->set('app.proxies', '*');
|
||||
$editor = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($editor)->put($page->getUrl(), [
|
||||
'name' => 'Updated page',
|
||||
|
@ -198,8 +196,7 @@ class AuditLogTest extends TestCase
|
|||
config()->set('app.proxies', '*');
|
||||
config()->set('app.env', 'demo');
|
||||
$editor = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($editor)->put($page->getUrl(), [
|
||||
'name' => 'Updated page',
|
||||
|
@ -222,8 +219,7 @@ class AuditLogTest extends TestCase
|
|||
config()->set('app.proxies', '*');
|
||||
config()->set('app.ip_address_precision', 2);
|
||||
$editor = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($editor)->put($page->getUrl(), [
|
||||
'name' => 'Updated page',
|
||||
|
|
|
@ -88,8 +88,7 @@ class WebhookCallTest extends TestCase
|
|||
'*' => Http::response('', 200),
|
||||
]);
|
||||
$webhook = $this->newWebhook(['active' => true, 'endpoint' => 'https://wh.example.com'], ['all']);
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$editor = $this->getEditor();
|
||||
|
||||
$this->runEvent(ActivityType::PAGE_UPDATE, $page, $editor);
|
||||
|
|
|
@ -32,8 +32,7 @@ class WebhookFormatTesting extends TestCase
|
|||
|
||||
public function test_page_create_and_update_events_show_revision_info()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asEditor()->put($page->getUrl(), ['name' => 'Updated page', 'html' => 'new page html', 'summary' => 'Update a']);
|
||||
|
||||
$data = $this->getWebhookData(ActivityType::PAGE_UPDATE, $page);
|
||||
|
|
|
@ -17,7 +17,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_index_endpoint_returns_expected_book()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$attachment = $this->createAttachmentForPage($page, [
|
||||
'name' => 'My test attachment',
|
||||
'external' => true,
|
||||
|
@ -37,8 +37,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_attachments_listing_based_upon_page_visibility()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$attachment = $this->createAttachmentForPage($page, [
|
||||
'name' => 'My test attachment',
|
||||
'external' => true,
|
||||
|
@ -66,8 +65,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_create_endpoint_for_link_attachment()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$details = [
|
||||
'name' => 'My attachment',
|
||||
|
@ -85,8 +83,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_create_endpoint_for_upload_attachment()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$file = $this->getTestFile('textfile.txt');
|
||||
|
||||
$details = [
|
||||
|
@ -106,8 +103,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_upload_limit_restricts_attachment_uploads()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
config()->set('app.upload_limit', 1);
|
||||
|
||||
|
@ -130,8 +126,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_name_needed_to_create()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$details = [
|
||||
'uploaded_to' => $page->id,
|
||||
|
@ -146,8 +141,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_link_or_file_needed_to_create()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$details = [
|
||||
'name' => 'my attachment',
|
||||
|
@ -165,8 +159,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_message_shown_if_file_is_not_a_valid_file()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$details = [
|
||||
'name' => 'my attachment',
|
||||
|
@ -182,8 +175,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_read_endpoint_for_link_attachment()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$attachment = $this->createAttachmentForPage($page, [
|
||||
'name' => 'my attachment',
|
||||
|
@ -216,8 +208,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_read_endpoint_for_file_attachment()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$file = $this->getTestFile('textfile.txt');
|
||||
|
||||
$details = [
|
||||
|
@ -259,8 +250,7 @@ class AttachmentsApiTest extends TestCase
|
|||
$this->actingAsApiAdmin();
|
||||
$editor = $this->getEditor();
|
||||
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->draft = true;
|
||||
$page->owned_by = $editor->id;
|
||||
$page->save();
|
||||
|
@ -280,8 +270,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_update_endpoint()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$attachment = $this->createAttachmentForPage($page);
|
||||
|
||||
$details = [
|
||||
|
@ -298,8 +287,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_update_link_attachment_to_file()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$attachment = $this->createAttachmentForPage($page);
|
||||
$file = $this->getTestFile('textfile.txt');
|
||||
|
||||
|
@ -318,8 +306,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_update_file_attachment_to_link()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$file = $this->getTestFile('textfile.txt');
|
||||
$this->call('POST', $this->baseEndpoint, ['name' => 'My file attachment', 'uploaded_to' => $page->id], [], ['file' => $file]);
|
||||
/** @var Attachment $attachment */
|
||||
|
@ -346,8 +333,7 @@ class AttachmentsApiTest extends TestCase
|
|||
public function test_delete_endpoint()
|
||||
{
|
||||
$this->actingAsApiAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$attachment = $this->createAttachmentForPage($page);
|
||||
|
||||
$resp = $this->deleteJson("{$this->baseEndpoint}/{$attachment->id}");
|
||||
|
|
|
@ -34,7 +34,7 @@ class ChaptersApiTest extends TestCase
|
|||
public function test_create_endpoint()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$details = [
|
||||
'name' => 'My API chapter',
|
||||
'description' => 'A chapter created via the API',
|
||||
|
@ -64,7 +64,7 @@ class ChaptersApiTest extends TestCase
|
|||
public function test_chapter_name_needed_to_create()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$details = [
|
||||
'book_id' => $book->id,
|
||||
'description' => 'A chapter created via the API',
|
||||
|
|
|
@ -35,7 +35,7 @@ class PagesApiTest extends TestCase
|
|||
public function test_create_endpoint()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$details = [
|
||||
'name' => 'My API page',
|
||||
'book_id' => $book->id,
|
||||
|
@ -67,7 +67,7 @@ class PagesApiTest extends TestCase
|
|||
public function test_page_name_needed_to_create()
|
||||
{
|
||||
$this->actingAsApiEditor();
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$details = [
|
||||
'book_id' => $book->id,
|
||||
'html' => '<p>A page created via the API</p>',
|
||||
|
|
|
@ -50,8 +50,8 @@ class RecycleBinApiTest extends TestCase
|
|||
{
|
||||
$admin = $this->getAdmin();
|
||||
|
||||
$page = Page::query()->first();
|
||||
$book = Book::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = $this->entities->book();
|
||||
$this->actingAs($admin)->delete($page->getUrl());
|
||||
$this->delete($book->getUrl());
|
||||
|
||||
|
@ -139,7 +139,7 @@ class RecycleBinApiTest extends TestCase
|
|||
|
||||
public function test_restore_endpoint()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin()->delete($page->getUrl());
|
||||
$page->refresh();
|
||||
|
||||
|
@ -163,7 +163,7 @@ class RecycleBinApiTest extends TestCase
|
|||
|
||||
public function test_destroy_endpoint()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin()->delete($page->getUrl());
|
||||
$page->refresh();
|
||||
|
||||
|
|
|
@ -38,8 +38,7 @@ class SearchApiTest extends TestCase
|
|||
|
||||
public function test_all_endpoint_returns_entity_url()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->update(['name' => 'name with superuniquevalue within']);
|
||||
$page->indexForSearch();
|
||||
|
||||
|
@ -52,8 +51,7 @@ class SearchApiTest extends TestCase
|
|||
|
||||
public function test_all_endpoint_returns_items_with_preview_html()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$book->update(['name' => 'name with superuniquevalue within', 'description' => 'Description with superuniquevalue within']);
|
||||
$book->indexForSearch();
|
||||
|
||||
|
|
|
@ -58,8 +58,7 @@ class AuthTest extends TestCase
|
|||
public function test_login_redirects_to_initially_requested_url_correctly()
|
||||
{
|
||||
config()->set('app.url', 'http://localhost');
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->get($page->getUrl())->assertRedirect(url('/login'));
|
||||
$this->login('admin@admin.com', 'password')
|
||||
|
|
|
@ -14,8 +14,7 @@ class ClearActivityCommandTest extends TestCase
|
|||
public function test_clear_activity_command()
|
||||
{
|
||||
$this->asEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
Activity::add(ActivityType::PAGE_UPDATE, $page);
|
||||
|
||||
$this->assertDatabaseHas('activities', [
|
||||
|
|
|
@ -36,7 +36,7 @@ class CopyShelfPermissionsCommandTest extends TestCase
|
|||
|
||||
public function test_copy_shelf_permissions_command_using_all()
|
||||
{
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
Bookshelf::query()->where('id', '!=', $shelf->id)->delete();
|
||||
$child = $shelf->books()->first();
|
||||
$editorRole = $this->getEditor()->roles()->first();
|
||||
|
|
|
@ -10,8 +10,7 @@ class RegenerateReferencesCommandTest extends TestCase
|
|||
{
|
||||
public function test_regenerate_references_command()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = $page->book;
|
||||
|
||||
$page->html = '<a href="' . $book->getUrl() . '">Book Link</a>';
|
||||
|
|
|
@ -10,7 +10,7 @@ class UpdateUrlCommandTest extends TestCase
|
|||
{
|
||||
public function test_command_updates_page_content()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<a href="https://example.com/donkeys"></a>';
|
||||
$page->save();
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ class BookShelfTest extends TestCase
|
|||
config()->set([
|
||||
'setting-defaults.user.bookshelves_view_type' => 'list',
|
||||
]);
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
$book = $shelf->books()->first();
|
||||
|
||||
$resp = $this->asEditor()->get('/shelves');
|
||||
|
@ -160,7 +160,7 @@ class BookShelfTest extends TestCase
|
|||
|
||||
public function test_shelf_view_has_sort_control_that_defaults_to_default()
|
||||
{
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
$resp = $this->asAdmin()->get($shelf->getUrl());
|
||||
$this->withHtml($resp)->assertElementExists('form[action$="change-sort/shelf_books"]');
|
||||
$this->withHtml($resp)->assertElementContains('form[action$="change-sort/shelf_books"] [aria-haspopup="true"]', 'Default');
|
||||
|
@ -373,8 +373,7 @@ class BookShelfTest extends TestCase
|
|||
|
||||
public function test_cancel_on_child_book_creation_returns_to_original_shelf()
|
||||
{
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
$resp = $this->asEditor()->get($shelf->getUrl('/create-book'));
|
||||
$this->withHtml($resp)->assertElementContains('form a[href="' . $shelf->getUrl() . '"]', 'Cancel');
|
||||
}
|
||||
|
|
|
@ -80,8 +80,7 @@ class BookTest extends TestCase
|
|||
|
||||
public function test_update()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
// Cheeky initial update to refresh slug
|
||||
$this->asEditor()->put($book->getUrl(), ['name' => $book->name . '5', 'description' => $book->description]);
|
||||
$book->refresh();
|
||||
|
@ -104,8 +103,7 @@ class BookTest extends TestCase
|
|||
|
||||
public function test_update_sets_tags()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$this->assertEquals(0, $book->tags()->count());
|
||||
|
||||
|
@ -167,15 +165,14 @@ class BookTest extends TestCase
|
|||
|
||||
public function test_cancel_on_edit_book_page_leads_back_to_book()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$resp = $this->asEditor()->get($book->getUrl('/edit'));
|
||||
$this->withHtml($resp)->assertElementContains('form a[href="' . $book->getUrl() . '"]', 'Cancel');
|
||||
}
|
||||
|
||||
public function test_next_previous_navigation_controls_show_within_book_content()
|
||||
{
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$chapter = $book->chapters->first();
|
||||
|
||||
$resp = $this->asEditor()->get($chapter->getUrl());
|
||||
|
@ -270,8 +267,7 @@ class BookTest extends TestCase
|
|||
|
||||
public function test_show_view_has_copy_button()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$resp = $this->asEditor()->get($book->getUrl());
|
||||
|
||||
$this->withHtml($resp)->assertElementContains("a[href=\"{$book->getUrl('/copy')}\"]", 'Copy');
|
||||
|
@ -279,8 +275,7 @@ class BookTest extends TestCase
|
|||
|
||||
public function test_copy_view()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$resp = $this->asEditor()->get($book->getUrl('/copy'));
|
||||
|
||||
$resp->assertOk();
|
||||
|
@ -338,8 +333,7 @@ class BookTest extends TestCase
|
|||
|
||||
public function test_copy_clones_cover_image_if_existing()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$bookRepo = $this->app->make(BookRepo::class);
|
||||
$coverImageFile = $this->getTestImage('cover.png');
|
||||
$bookRepo->updateCoverImage($book, $coverImageFile);
|
||||
|
@ -357,8 +351,7 @@ class BookTest extends TestCase
|
|||
/** @var Bookshelf $shelfA */
|
||||
/** @var Bookshelf $shelfB */
|
||||
[$shelfA, $shelfB] = Bookshelf::query()->take(2)->get();
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$shelfA->appendBook($book);
|
||||
$shelfB->appendBook($book);
|
||||
|
|
|
@ -11,8 +11,7 @@ class ChapterTest extends TestCase
|
|||
{
|
||||
public function test_create()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$chapter = Chapter::factory()->make([
|
||||
'name' => 'My First Chapter',
|
||||
|
@ -58,8 +57,7 @@ class ChapterTest extends TestCase
|
|||
|
||||
public function test_show_view_has_copy_button()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
|
||||
$resp = $this->asEditor()->get($chapter->getUrl());
|
||||
$this->withHtml($resp)->assertElementContains("a[href$=\"{$chapter->getUrl('/copy')}\"]", 'Copy');
|
||||
|
@ -67,8 +65,7 @@ class ChapterTest extends TestCase
|
|||
|
||||
public function test_copy_view()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
|
||||
$resp = $this->asEditor()->get($chapter->getUrl('/copy'));
|
||||
$resp->assertOk();
|
||||
|
@ -149,8 +146,7 @@ class ChapterTest extends TestCase
|
|||
|
||||
public function test_sort_book_action_visible_if_permissions_allow()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
|
||||
$resp = $this->actingAs($this->getViewer())->get($chapter->getUrl());
|
||||
$this->withHtml($resp)->assertLinkNotExists($chapter->book->getUrl('sort'));
|
||||
|
|
|
@ -14,8 +14,7 @@ class ConvertTest extends TestCase
|
|||
{
|
||||
public function test_chapter_edit_view_shows_convert_option()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
|
||||
$resp = $this->asEditor()->get($chapter->getUrl('/edit'));
|
||||
$resp->assertSee('Convert to Book');
|
||||
|
@ -50,8 +49,7 @@ class ConvertTest extends TestCase
|
|||
|
||||
public function test_convert_chapter_to_book_requires_permissions()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$user = $this->getViewer();
|
||||
|
||||
$permissions = ['chapter-delete-all', 'book-create-all', 'chapter-update-all'];
|
||||
|
@ -71,7 +69,7 @@ class ConvertTest extends TestCase
|
|||
|
||||
public function test_book_edit_view_shows_convert_option()
|
||||
{
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$resp = $this->asEditor()->get($book->getUrl('/edit'));
|
||||
$resp->assertSee('Convert to Shelf');
|
||||
|
@ -124,8 +122,7 @@ class ConvertTest extends TestCase
|
|||
|
||||
public function test_book_convert_to_shelf_requires_permissions()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$user = $this->getViewer();
|
||||
|
||||
$permissions = ['book-delete-all', 'bookshelf-create-all', 'book-update-all', 'book-create-all'];
|
||||
|
|
|
@ -23,8 +23,7 @@ class EntitySearchTest extends TestCase
|
|||
|
||||
public function test_bookshelf_search()
|
||||
{
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
|
||||
$search = $this->asEditor()->get('/search?term=' . urlencode($shelf->name) . ' {type:bookshelf}');
|
||||
$search->assertSee('Search Results');
|
||||
|
@ -232,7 +231,7 @@ class EntitySearchTest extends TestCase
|
|||
|
||||
public function test_ajax_entity_search_reflects_items_without_permission()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$baseSelector = 'a[data-entity-type="page"][data-entity-id="' . $page->id . '"]';
|
||||
$searchUrl = '/ajax/search/entities?permission=update&term=' . urlencode($page->name);
|
||||
|
||||
|
@ -318,7 +317,7 @@ class EntitySearchTest extends TestCase
|
|||
|
||||
public function test_search_works_on_updated_page_content()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asEditor();
|
||||
|
||||
$update = $this->put($page->getUrl(), [
|
||||
|
|
|
@ -15,7 +15,7 @@ class ExportTest extends TestCase
|
|||
{
|
||||
public function test_page_text_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asEditor();
|
||||
|
||||
$resp = $this->get($page->getUrl('/export/plaintext'));
|
||||
|
@ -26,7 +26,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_pdf_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asEditor();
|
||||
|
||||
$resp = $this->get($page->getUrl('/export/pdf'));
|
||||
|
@ -36,7 +36,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_html_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asEditor();
|
||||
|
||||
$resp = $this->get($page->getUrl('/export/html'));
|
||||
|
@ -47,7 +47,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_book_text_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = $page->book;
|
||||
$this->asEditor();
|
||||
|
||||
|
@ -60,7 +60,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_book_pdf_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = $page->book;
|
||||
$this->asEditor();
|
||||
|
||||
|
@ -71,7 +71,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_book_html_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = $page->book;
|
||||
$this->asEditor();
|
||||
|
||||
|
@ -85,7 +85,7 @@ class ExportTest extends TestCase
|
|||
public function test_book_html_export_shows_chapter_descriptions()
|
||||
{
|
||||
$chapterDesc = 'My custom test chapter description ' . Str::random(12);
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$chapter->description = $chapterDesc;
|
||||
$chapter->save();
|
||||
|
||||
|
@ -98,7 +98,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_chapter_text_export()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages[0];
|
||||
$this->asEditor();
|
||||
|
||||
|
@ -111,7 +111,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_chapter_pdf_export()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$this->asEditor();
|
||||
|
||||
$resp = $this->get($chapter->getUrl('/export/pdf'));
|
||||
|
@ -121,7 +121,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_chapter_html_export()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages[0];
|
||||
$this->asEditor();
|
||||
|
||||
|
@ -134,7 +134,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_html_export_contains_custom_head_if_set()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$customHeadContent = '<style>p{color: red;}</style>';
|
||||
$this->setSettings(['app-custom-head' => $customHeadContent]);
|
||||
|
@ -145,7 +145,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_html_export_does_not_break_with_only_comments_in_custom_head()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$customHeadContent = '<!-- A comment -->';
|
||||
$this->setSettings(['app-custom-head' => $customHeadContent]);
|
||||
|
@ -157,7 +157,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_html_export_use_absolute_dates()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$resp = $this->asEditor()->get($page->getUrl('/export/html'));
|
||||
$resp->assertSee($page->created_at->formatLocalized('%e %B %Y %H:%M:%S'));
|
||||
|
@ -168,7 +168,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_export_does_not_include_user_or_revision_links()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$resp = $this->asEditor()->get($page->getUrl('/export/html'));
|
||||
$resp->assertDontSee($page->getUrl('/revisions'));
|
||||
|
@ -178,7 +178,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_export_sets_right_data_type_for_svg_embeds()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
Storage::disk('local')->makeDirectory('uploads/images/gallery');
|
||||
Storage::disk('local')->put('uploads/images/gallery/svg_test.svg', '<svg></svg>');
|
||||
$page->html = '<img src="http://localhost/uploads/images/gallery/svg_test.svg">';
|
||||
|
@ -194,7 +194,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_image_containment_works_on_multiple_images_within_a_single_line()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
Storage::disk('local')->makeDirectory('uploads/images/gallery');
|
||||
Storage::disk('local')->put('uploads/images/gallery/svg_test.svg', '<svg></svg>');
|
||||
Storage::disk('local')->put('uploads/images/gallery/svg_test2.svg', '<svg></svg>');
|
||||
|
@ -210,7 +210,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_export_contained_html_image_fetches_only_run_when_url_points_to_image_upload_folder()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<img src="http://localhost/uploads/images/gallery/svg_test.svg"/>'
|
||||
. '<img src="http://localhost/uploads/svg_test.svg"/>'
|
||||
. '<img src="/uploads/svg_test.svg"/>';
|
||||
|
@ -235,7 +235,7 @@ class ExportTest extends TestCase
|
|||
$contents = file_get_contents(public_path('.htaccess'));
|
||||
config()->set('filesystems.images', 'local');
|
||||
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<img src="http://localhost/uploads/images/../../.htaccess"/>';
|
||||
$page->save();
|
||||
|
||||
|
@ -249,7 +249,7 @@ class ExportTest extends TestCase
|
|||
config()->set('filesystems.images', 'local_secure');
|
||||
file_put_contents($testFilePath, 'I am a cat');
|
||||
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<img src="http://localhost/uploads/images/../../logs/test.txt"/>';
|
||||
$page->save();
|
||||
|
||||
|
@ -276,7 +276,7 @@ class ExportTest extends TestCase
|
|||
public function test_page_export_with_deleted_creator_and_updater()
|
||||
{
|
||||
$user = $this->getViewer(['name' => 'ExportWizardTheFifth']);
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->created_by = $user->id;
|
||||
$page->updated_by = $user->id;
|
||||
$page->save();
|
||||
|
@ -329,7 +329,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_page_markdown_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$resp = $this->asEditor()->get($page->getUrl('/export/markdown'));
|
||||
$resp->assertStatus(200);
|
||||
|
@ -364,7 +364,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_chapter_markdown_export()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages()->first();
|
||||
$resp = $this->asEditor()->get($chapter->getUrl('/export/markdown'));
|
||||
|
||||
|
@ -430,8 +430,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_wkhtmltopdf_only_used_when_allow_untrusted_is_true()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
config()->set('snappy.pdf.binary', '/abc123');
|
||||
config()->set('app.allow_untrusted_server_fetching', false);
|
||||
|
@ -460,7 +459,7 @@ class ExportTest extends TestCase
|
|||
|
||||
public function test_html_exports_contain_body_classes_for_export_identification()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$resp = $this->asEditor()->get($page->getUrl('/export/html'));
|
||||
$this->withHtml($resp)->assertElementExists('body.export.export-format-html.export-engine-none');
|
||||
|
|
|
@ -15,7 +15,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_page_includes()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$secondPage = Page::query()->where('id', '!=', $page->id)->first();
|
||||
|
||||
$secondPage->html = "<p id='section1'>Hello, This is a test</p><p id='section2'>This is a second block of content</p>";
|
||||
|
@ -44,7 +44,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_saving_page_with_includes()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$secondPage = Page::query()->where('id', '!=', $page->id)->first();
|
||||
|
||||
$this->asEditor();
|
||||
|
@ -62,10 +62,8 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_page_includes_do_not_break_tables()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
/** @var Page $secondPage */
|
||||
$secondPage = Page::query()->where('id', '!=', $page->id)->first();
|
||||
$page = $this->entities->page();
|
||||
$secondPage = $this->entities->page();
|
||||
|
||||
$content = '<table id="table"><tbody><tr><td>test</td></tr></tbody></table>';
|
||||
$secondPage->html = $content;
|
||||
|
@ -80,10 +78,8 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_page_includes_do_not_break_code()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
/** @var Page $secondPage */
|
||||
$secondPage = Page::query()->where('id', '!=', $page->id)->first();
|
||||
$page = $this->entities->page();
|
||||
$secondPage = $this->entities->page();
|
||||
|
||||
$content = '<pre id="bkmrk-code"><code>var cat = null;</code></pre>';
|
||||
$secondPage->html = $content;
|
||||
|
@ -98,7 +94,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_page_includes_rendered_on_book_export()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$secondPage = Page::query()
|
||||
->where('book_id', '!=', $page->book_id)
|
||||
->first();
|
||||
|
@ -118,7 +114,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_content_scripts_removed_by_default()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$script = 'abc123<script>console.log("hello-test")</script>abc123';
|
||||
$page->html = "escape {$script}";
|
||||
$page->save();
|
||||
|
@ -141,7 +137,7 @@ class PageContentTest extends TestCase
|
|||
];
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
foreach ($checks as $check) {
|
||||
$page->html = $check;
|
||||
|
@ -177,7 +173,7 @@ class PageContentTest extends TestCase
|
|||
];
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
foreach ($checks as $check) {
|
||||
$page->html = $check;
|
||||
|
@ -206,7 +202,7 @@ class PageContentTest extends TestCase
|
|||
];
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
foreach ($checks as $check) {
|
||||
$page->html = $check;
|
||||
|
@ -230,7 +226,7 @@ class PageContentTest extends TestCase
|
|||
];
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
foreach ($checks as $check) {
|
||||
$page->html = $check;
|
||||
|
@ -255,7 +251,7 @@ class PageContentTest extends TestCase
|
|||
];
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
foreach ($checks as $check) {
|
||||
$page->html = $check;
|
||||
|
@ -273,7 +269,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_inline_on_attributes_removed_by_default()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$script = '<p onmouseenter="console.log(\'test\')">Hello</p>';
|
||||
$page->html = "escape {$script}";
|
||||
$page->save();
|
||||
|
@ -298,7 +294,7 @@ class PageContentTest extends TestCase
|
|||
];
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
foreach ($checks as $check) {
|
||||
$page->html = $check;
|
||||
|
@ -313,7 +309,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_content_scripts_show_when_configured()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
config()->push('app.allow_content_scripts', 'true');
|
||||
|
||||
$script = 'abc123<script>console.log("hello-test")</script>abc123';
|
||||
|
@ -339,7 +335,7 @@ class PageContentTest extends TestCase
|
|||
];
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
foreach ($checks as $check) {
|
||||
$page->html = $check;
|
||||
|
@ -358,7 +354,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_inline_on_attributes_show_if_configured()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
config()->push('app.allow_content_scripts', 'true');
|
||||
|
||||
$script = '<p onmouseenter="console.log(\'test\')">Hello</p>';
|
||||
|
@ -390,7 +386,7 @@ class PageContentTest extends TestCase
|
|||
public function test_duplicate_ids_fixed_on_page_save()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '<ul id="bkmrk-test"><li>test a</li><li><ul id="bkmrk-test"><li>test b</li></ul></li></ul>';
|
||||
$pageSave = $this->put($page->getUrl(), [
|
||||
|
@ -407,7 +403,7 @@ class PageContentTest extends TestCase
|
|||
public function test_anchors_referencing_non_bkmrk_ids_rewritten_after_save()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '<h1 id="non-standard-id">test</h1><p><a href="#non-standard-id">link</a></p>';
|
||||
$this->put($page->getUrl(), [
|
||||
|
@ -485,7 +481,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_page_text_decodes_html_entities()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($this->getAdmin())
|
||||
->put($page->getUrl(''), [
|
||||
|
@ -500,7 +496,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_markdown_table_rendering()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '| Syntax | Description |
|
||||
| ----------- | ----------- |
|
||||
|
@ -521,7 +517,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_markdown_task_list_rendering()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '- [ ] Item a
|
||||
- [x] Item b';
|
||||
|
@ -542,7 +538,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_markdown_strikethrough_rendering()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '~~some crossed out text~~';
|
||||
$this->put($page->getUrl(), [
|
||||
|
@ -560,7 +556,7 @@ class PageContentTest extends TestCase
|
|||
public function test_page_markdown_single_html_comment_saving()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '<!-- Test Comment -->';
|
||||
$this->put($page->getUrl(), [
|
||||
|
@ -579,7 +575,7 @@ class PageContentTest extends TestCase
|
|||
public function test_base64_images_get_extracted_from_page_content()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->put($page->getUrl(), [
|
||||
'name' => $page->name, 'summary' => '',
|
||||
|
@ -601,7 +597,7 @@ class PageContentTest extends TestCase
|
|||
public function test_base64_images_get_extracted_when_containing_whitespace()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$base64PngWithWhitespace = "iVBORw0KGg\noAAAANSUhE\tUgAAAAEAAAA BCA YAAAAfFcSJAAA\n\t ACklEQVR4nGMAAQAABQAB";
|
||||
$base64PngWithoutWhitespace = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQAB';
|
||||
|
@ -632,7 +628,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
foreach ($extensions as $extension) {
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->put($page->getUrl(), [
|
||||
'name' => $page->name, 'summary' => '',
|
||||
|
@ -647,7 +643,7 @@ class PageContentTest extends TestCase
|
|||
public function test_base64_images_get_extracted_from_markdown_page_content()
|
||||
{
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->put($page->getUrl(), [
|
||||
'name' => $page->name, 'summary' => '',
|
||||
|
@ -672,7 +668,7 @@ class PageContentTest extends TestCase
|
|||
$pcreRecursionLimit = ini_get('pcre.recursion_limit');
|
||||
|
||||
$this->asEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
ini_set('pcre.backtrack_limit', '500');
|
||||
ini_set('pcre.recursion_limit', '500');
|
||||
|
@ -701,7 +697,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_base64_images_within_markdown_blanked_if_not_supported_extension_for_extract()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->asEditor()->put($page->getUrl(), [
|
||||
'name' => $page->name, 'summary' => '',
|
||||
|
@ -713,7 +709,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_nested_headers_gets_assigned_an_id()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '<table><tbody><tr><td><h5>Simple Test</h5></td></tr></tbody></table>';
|
||||
$this->asEditor()->put($page->getUrl(), [
|
||||
|
@ -729,8 +725,7 @@ class PageContentTest extends TestCase
|
|||
|
||||
public function test_non_breaking_spaces_are_preserved()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$content = '<p> </p>';
|
||||
$this->asEditor()->put($page->getUrl(), [
|
||||
|
|
|
@ -85,8 +85,7 @@ class PageDraftTest extends TestCase
|
|||
{
|
||||
$admin = $this->getAdmin();
|
||||
$editor = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($editor)->put('/ajax/page/' . $page->id . '/save-draft', [
|
||||
'name' => $page->name,
|
||||
|
@ -120,8 +119,7 @@ class PageDraftTest extends TestCase
|
|||
{
|
||||
$admin = $this->getAdmin();
|
||||
$editor = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($admin)->put('/ajax/page/' . $page->id . '/save-draft', [
|
||||
'name' => $page->name,
|
||||
|
@ -140,8 +138,7 @@ class PageDraftTest extends TestCase
|
|||
|
||||
public function test_draft_pages_show_on_homepage()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$resp = $this->asAdmin()->get('/');
|
||||
$this->withHtml($resp)->assertElementNotContains('#recent-drafts', 'New Page');
|
||||
|
||||
|
@ -152,8 +149,7 @@ class PageDraftTest extends TestCase
|
|||
|
||||
public function test_draft_pages_not_visible_by_others()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$chapter = $book->chapters->first();
|
||||
$newUser = $this->getEditor();
|
||||
|
||||
|
@ -171,8 +167,7 @@ class PageDraftTest extends TestCase
|
|||
public function test_page_html_in_ajax_fetch_response()
|
||||
{
|
||||
$this->asAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->getJson('/ajax/page/' . $page->id)->assertJson([
|
||||
'html' => $page->html,
|
||||
|
@ -181,8 +176,7 @@ class PageDraftTest extends TestCase
|
|||
|
||||
public function test_updating_page_draft_with_markdown_retains_markdown_content()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$this->asEditor()->get($book->getUrl('/create-page'));
|
||||
/** @var Page $draft */
|
||||
$draft = Page::query()->where('draft', '=', true)->where('book_id', '=', $book->id)->firstOrFail();
|
||||
|
@ -207,8 +201,7 @@ class PageDraftTest extends TestCase
|
|||
|
||||
public function test_slug_generated_on_draft_publish_to_page_when_no_name_change()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$this->asEditor()->get($book->getUrl('/create-page'));
|
||||
/** @var Page $draft */
|
||||
$draft = Page::query()->where('draft', '=', true)->where('book_id', '=', $book->id)->firstOrFail();
|
||||
|
|
|
@ -58,8 +58,7 @@ class PageEditorTest extends TestCase
|
|||
public function test_empty_markdown_still_saves_without_error()
|
||||
{
|
||||
$this->setSettings(['app-editor' => 'markdown']);
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$this->asEditor()->get($book->getUrl('/create-page'));
|
||||
$draft = Page::query()->where('book_id', '=', $book->id)
|
||||
|
@ -108,8 +107,7 @@ class PageEditorTest extends TestCase
|
|||
|
||||
public function test_switching_from_html_to_clean_markdown_works()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
|
||||
$page->save();
|
||||
|
||||
|
@ -121,8 +119,7 @@ class PageEditorTest extends TestCase
|
|||
|
||||
public function test_switching_from_html_to_stable_markdown_works()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
|
||||
$page->save();
|
||||
|
||||
|
@ -134,8 +131,7 @@ class PageEditorTest extends TestCase
|
|||
|
||||
public function test_switching_from_markdown_to_wysiwyg_works()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '';
|
||||
$page->markdown = "## A Header\n\nSome content with **bold** text!";
|
||||
$page->save();
|
||||
|
@ -180,8 +176,7 @@ class PageEditorTest extends TestCase
|
|||
|
||||
public function test_page_editor_type_switch_does_not_work_without_change_editor_permissions()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
|
||||
$page->save();
|
||||
|
||||
|
@ -193,8 +188,7 @@ class PageEditorTest extends TestCase
|
|||
|
||||
public function test_page_save_does_not_change_active_editor_without_change_editor_permissions()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
|
||||
$page->editor = 'wysiwyg';
|
||||
$page->save();
|
||||
|
|
|
@ -10,8 +10,7 @@ class PageRevisionTest extends TestCase
|
|||
{
|
||||
public function test_revision_links_visible_to_viewer()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$html = $this->withHtml($this->asViewer()->get($page->getUrl()));
|
||||
$html->assertLinkExists($page->getUrl('/revisions'));
|
||||
|
@ -143,8 +142,7 @@ class PageRevisionTest extends TestCase
|
|||
|
||||
public function test_revision_deletion()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->createRevisions($page, 2);
|
||||
$beforeRevisionCount = $page->revisions->count();
|
||||
|
||||
|
@ -208,8 +206,7 @@ class PageRevisionTest extends TestCase
|
|||
|
||||
public function test_revision_restore_action_only_visible_with_permission()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->createRevisions($page, 2);
|
||||
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -227,8 +224,7 @@ class PageRevisionTest extends TestCase
|
|||
|
||||
public function test_revision_delete_action_only_visible_with_permission()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->createRevisions($page, 2);
|
||||
|
||||
$viewer = $this->getViewer();
|
||||
|
|
|
@ -12,8 +12,7 @@ class PageTest extends TestCase
|
|||
{
|
||||
public function test_create()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = Page::factory()->make([
|
||||
'name' => 'My First Page',
|
||||
]);
|
||||
|
@ -39,7 +38,7 @@ class PageTest extends TestCase
|
|||
|
||||
public function test_page_view_when_creator_is_deleted_but_owner_exists()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$user = $this->getViewer();
|
||||
$owner = $this->getEditor();
|
||||
$page->created_by = $user->id;
|
||||
|
@ -55,7 +54,7 @@ class PageTest extends TestCase
|
|||
public function test_page_creation_with_markdown_content()
|
||||
{
|
||||
$this->setSettings(['app-editor' => 'markdown']);
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$this->asEditor()->get($book->getUrl('/create-page'));
|
||||
$draft = Page::query()->where('book_id', '=', $book->id)
|
||||
|
@ -83,7 +82,7 @@ class PageTest extends TestCase
|
|||
|
||||
public function test_page_delete()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->assertNull($page->deleted_at);
|
||||
|
||||
$deleteViewReq = $this->asEditor()->get($page->getUrl('/delete'));
|
||||
|
@ -103,8 +102,7 @@ class PageTest extends TestCase
|
|||
|
||||
public function test_page_full_delete_removes_all_revisions()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->revisions()->create([
|
||||
'html' => '<p>ducks</p>',
|
||||
'name' => 'my page revision',
|
||||
|
@ -221,8 +219,7 @@ class PageTest extends TestCase
|
|||
|
||||
public function test_old_page_slugs_redirect_to_new_pages()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
// Need to save twice since revisions are not generated in seeder.
|
||||
$this->asAdmin()->put($page->getUrl(), [
|
||||
|
@ -244,8 +241,7 @@ class PageTest extends TestCase
|
|||
|
||||
public function test_page_within_chapter_deletion_returns_to_chapter()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages()->first();
|
||||
|
||||
$this->asEditor()->delete($page->getUrl())
|
||||
|
@ -264,8 +260,7 @@ class PageTest extends TestCase
|
|||
public function test_recently_updated_pages_view_shows_updated_by_details()
|
||||
{
|
||||
$user = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->actingAs($user)->put($page->getUrl(), [
|
||||
'name' => 'Updated title',
|
||||
|
|
|
@ -33,7 +33,7 @@ class SortTest extends TestCase
|
|||
|
||||
public function test_page_move_into_book()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$currentBook = $page->book;
|
||||
$newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
|
||||
|
||||
|
@ -55,7 +55,7 @@ class SortTest extends TestCase
|
|||
|
||||
public function test_page_move_into_chapter()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$currentBook = $page->book;
|
||||
$newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
|
||||
$newChapter = $newBook->chapters()->first();
|
||||
|
@ -93,7 +93,7 @@ class SortTest extends TestCase
|
|||
|
||||
public function test_page_move_requires_create_permissions_on_parent()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$currentBook = $page->book;
|
||||
$newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
|
||||
$editor = $this->getEditor();
|
||||
|
@ -118,7 +118,7 @@ class SortTest extends TestCase
|
|||
|
||||
public function test_page_move_requires_delete_permissions()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$currentBook = $page->book;
|
||||
$newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
|
||||
$editor = $this->getEditor();
|
||||
|
@ -145,7 +145,7 @@ class SortTest extends TestCase
|
|||
|
||||
public function test_chapter_move()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$currentBook = $chapter->book;
|
||||
$pageToCheck = $chapter->pages->first();
|
||||
$newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
|
||||
|
@ -173,7 +173,7 @@ class SortTest extends TestCase
|
|||
|
||||
public function test_chapter_move_requires_delete_permissions()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$currentBook = $chapter->book;
|
||||
$newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
|
||||
$editor = $this->getEditor();
|
||||
|
@ -200,7 +200,7 @@ class SortTest extends TestCase
|
|||
|
||||
public function test_chapter_move_requires_create_permissions_in_new_book()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$currentBook = $chapter->book;
|
||||
$newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
|
||||
$editor = $this->getEditor();
|
||||
|
|
|
@ -102,8 +102,7 @@ class TagTest extends TestCase
|
|||
|
||||
public function test_tags_index_shows_tag_name_as_expected_with_right_counts()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
|
||||
$page->tags()->create(['name' => 'Category', 'value' => 'OtherTestContent']);
|
||||
|
||||
|
@ -120,8 +119,7 @@ class TagTest extends TestCase
|
|||
$html->assertElementContains('a[title="Assigned to Shelves"]', '0');
|
||||
$html->assertElementContains('a[href$="/tags?name=Category"]', '2 unique values');
|
||||
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$book->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
|
||||
$resp = $this->asEditor()->get('/tags');
|
||||
$this->withHtml($resp)->assertElementContains('a[title="Total tag usages"]', '3');
|
||||
|
@ -131,8 +129,7 @@ class TagTest extends TestCase
|
|||
|
||||
public function test_tag_index_can_be_searched()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
|
||||
|
||||
$resp = $this->asEditor()->get('/tags?search=cat');
|
||||
|
@ -148,8 +145,7 @@ class TagTest extends TestCase
|
|||
|
||||
public function test_tag_index_search_will_show_mulitple_values_of_a_single_tag_name()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->tags()->create(['name' => 'Animal', 'value' => 'Catfish']);
|
||||
$page->tags()->create(['name' => 'Animal', 'value' => 'Catdog']);
|
||||
|
||||
|
@ -160,8 +156,7 @@ class TagTest extends TestCase
|
|||
|
||||
public function test_tag_index_can_be_scoped_to_specific_tag_name()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
|
||||
$page->tags()->create(['name' => 'Category', 'value' => 'OtherTestContent']);
|
||||
$page->tags()->create(['name' => 'OtherTagName', 'value' => 'OtherValue']);
|
||||
|
@ -178,8 +173,7 @@ class TagTest extends TestCase
|
|||
|
||||
public function test_tags_index_adheres_to_page_permissions()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->tags()->create(['name' => 'SuperCategory', 'value' => 'GreatTestContent']);
|
||||
|
||||
$resp = $this->asEditor()->get('/tags');
|
||||
|
@ -216,7 +210,7 @@ class TagTest extends TestCase
|
|||
|
||||
public function test_tag_classes_are_escaped()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->tags()->create(['name' => '<>']);
|
||||
$resp = $this->asEditor()->get($page->getUrl());
|
||||
$resp->assertDontSee('tag-name-<>', false);
|
||||
|
|
|
@ -27,7 +27,7 @@ class ErrorTest extends TestCase
|
|||
{
|
||||
$this->actingAs($this->getViewer());
|
||||
$handler = $this->withTestLogger();
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
// Ensure we're seeing errors
|
||||
Log::error('cat');
|
||||
|
|
|
@ -13,7 +13,7 @@ class FavouriteTest extends TestCase
|
|||
{
|
||||
public function test_page_add_favourite_flow()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$editor = $this->getEditor();
|
||||
|
||||
$resp = $this->actingAs($editor)->get($page->getUrl());
|
||||
|
@ -36,7 +36,7 @@ class FavouriteTest extends TestCase
|
|||
|
||||
public function test_page_remove_favourite_flow()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$editor = $this->getEditor();
|
||||
Favourite::query()->forceCreate([
|
||||
'user_id' => $editor->id,
|
||||
|
@ -62,8 +62,7 @@ class FavouriteTest extends TestCase
|
|||
|
||||
public function test_favourite_flow_with_own_permissions()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$user = User::factory()->create();
|
||||
$book->owned_by = $user->id;
|
||||
$book->save();
|
||||
|
@ -115,8 +114,7 @@ class FavouriteTest extends TestCase
|
|||
$resp = $this->actingAs($editor)->get('/');
|
||||
$this->withHtml($resp)->assertElementNotExists('#top-favourites');
|
||||
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->favourites()->save((new Favourite())->forceFill(['user_id' => $editor->id]));
|
||||
|
||||
$resp = $this->get('/');
|
||||
|
@ -126,8 +124,7 @@ class FavouriteTest extends TestCase
|
|||
|
||||
public function test_favourites_list_page_shows_favourites_and_has_working_pagination()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$editor = $this->getEditor();
|
||||
|
||||
$resp = $this->actingAs($editor)->get('/favourites');
|
||||
|
|
|
@ -141,7 +141,7 @@ class EntityProvider
|
|||
*/
|
||||
public function newPage(array $input = ['name' => 'test page', 'html' => 'My new test page']): Page
|
||||
{
|
||||
$book = Book::query()->first();
|
||||
$book = $this->book();
|
||||
$pageRepo = app(PageRepo::class);
|
||||
$draftPage = $pageRepo->getNewDraftPage($book);
|
||||
$this->addToCache($draftPage);
|
||||
|
|
|
@ -81,8 +81,7 @@ class HomepageTest extends TestCase
|
|||
|
||||
public function test_custom_homepage_cannot_be_deleted_from_parent_deletion()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->setSettings([
|
||||
'app-homepage' => $page->id,
|
||||
'app-homepage-type' => 'page',
|
||||
|
@ -161,7 +160,7 @@ class HomepageTest extends TestCase
|
|||
$this->setSettings(['app-homepage-type' => 'bookshelves']);
|
||||
$this->asEditor();
|
||||
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
$book = $shelf->books()->first();
|
||||
|
||||
// Ensure initially visible
|
||||
|
|
|
@ -18,7 +18,7 @@ class OpenGraphTest extends TestCase
|
|||
|
||||
public function test_page_tags()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$resp = $this->asEditor()->get($page->getUrl());
|
||||
$tags = $this->getOpenGraphTags($resp);
|
||||
|
||||
|
@ -29,7 +29,7 @@ class OpenGraphTest extends TestCase
|
|||
|
||||
public function test_chapter_tags()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$resp = $this->asEditor()->get($chapter->getUrl());
|
||||
$tags = $this->getOpenGraphTags($resp);
|
||||
|
||||
|
@ -40,7 +40,7 @@ class OpenGraphTest extends TestCase
|
|||
|
||||
public function test_book_tags()
|
||||
{
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$resp = $this->asEditor()->get($book->getUrl());
|
||||
$tags = $this->getOpenGraphTags($resp);
|
||||
|
||||
|
@ -60,7 +60,7 @@ class OpenGraphTest extends TestCase
|
|||
|
||||
public function test_shelf_tags()
|
||||
{
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
$resp = $this->asEditor()->get($shelf->getUrl());
|
||||
$tags = $this->getOpenGraphTags($resp);
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ class EntityOwnerChangeTest extends TestCase
|
|||
{
|
||||
public function test_changing_page_owner()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$user = User::query()->where('id', '!=', $page->owned_by)->first();
|
||||
|
||||
$this->asAdmin()->put($page->getUrl('permissions'), ['owned_by' => $user->id]);
|
||||
|
@ -22,7 +22,7 @@ class EntityOwnerChangeTest extends TestCase
|
|||
|
||||
public function test_changing_chapter_owner()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$user = User::query()->where('id', '!=', $chapter->owned_by)->first();
|
||||
|
||||
$this->asAdmin()->put($chapter->getUrl('permissions'), ['owned_by' => $user->id]);
|
||||
|
@ -31,7 +31,7 @@ class EntityOwnerChangeTest extends TestCase
|
|||
|
||||
public function test_changing_book_owner()
|
||||
{
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$user = User::query()->where('id', '!=', $book->owned_by)->first();
|
||||
|
||||
$this->asAdmin()->put($book->getUrl('permissions'), ['owned_by' => $user->id]);
|
||||
|
@ -40,7 +40,7 @@ class EntityOwnerChangeTest extends TestCase
|
|||
|
||||
public function test_changing_shelf_owner()
|
||||
{
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
$user = User::query()->where('id', '!=', $shelf->owned_by)->first();
|
||||
|
||||
$this->asAdmin()->put($shelf->getUrl('permissions'), ['owned_by' => $user->id]);
|
||||
|
|
|
@ -41,8 +41,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_bookshelf_view_restriction()
|
||||
{
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
|
||||
$this->actingAs($this->user)
|
||||
->get($shelf->getUrl())
|
||||
|
@ -61,8 +60,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_bookshelf_update_restriction()
|
||||
{
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
|
||||
$this->actingAs($this->user)
|
||||
->get($shelf->getUrl('/edit'))
|
||||
|
@ -82,8 +80,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_bookshelf_delete_restriction()
|
||||
{
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
|
||||
$this->actingAs($this->user)
|
||||
->get($shelf->getUrl('/delete'))
|
||||
|
@ -103,8 +100,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_book_view_restriction()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$bookPage = $book->pages->first();
|
||||
$bookChapter = $book->chapters->first();
|
||||
|
||||
|
@ -134,8 +130,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_book_create_restriction()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$bookUrl = $book->getUrl();
|
||||
$resp = $this->actingAs($this->viewer)->get($bookUrl);
|
||||
|
@ -181,8 +176,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_book_update_restriction()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$bookPage = $book->pages->first();
|
||||
$bookChapter = $book->chapters->first();
|
||||
|
||||
|
@ -209,8 +203,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_book_delete_restriction()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$bookPage = $book->pages->first();
|
||||
$bookChapter = $book->chapters->first();
|
||||
|
||||
|
@ -236,8 +229,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_chapter_view_restriction()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$chapterPage = $chapter->pages->first();
|
||||
|
||||
$chapterUrl = $chapter->getUrl();
|
||||
|
@ -256,8 +248,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_chapter_create_restriction()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
|
||||
$chapterUrl = $chapter->getUrl();
|
||||
$resp = $this->actingAs($this->user)->get($chapterUrl);
|
||||
|
@ -285,8 +276,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_chapter_update_restriction()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$chapterPage = $chapter->pages->first();
|
||||
|
||||
$chapterUrl = $chapter->getUrl();
|
||||
|
@ -308,8 +298,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_chapter_delete_restriction()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$chapterPage = $chapter->pages->first();
|
||||
|
||||
$chapterUrl = $chapter->getUrl();
|
||||
|
@ -332,8 +321,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_page_view_restriction()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$pageUrl = $page->getUrl();
|
||||
$this->actingAs($this->user)->get($pageUrl)->assertOk();
|
||||
|
@ -349,8 +337,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_page_update_restriction()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$pageUrl = $page->getUrl();
|
||||
$resp = $this->actingAs($this->user)
|
||||
|
@ -371,8 +358,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_page_delete_restriction()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$pageUrl = $page->getUrl();
|
||||
$this->actingAs($this->user)
|
||||
|
@ -436,8 +422,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_restricted_pages_not_visible_in_book_navigation_on_pages()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages->first();
|
||||
$page2 = $chapter->pages[2];
|
||||
|
||||
|
@ -449,8 +434,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_restricted_pages_not_visible_in_book_navigation_on_chapters()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages->first();
|
||||
|
||||
$this->setRestrictionsForTestRoles($page, []);
|
||||
|
@ -461,8 +445,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_restricted_pages_not_visible_on_chapter_pages()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages->first();
|
||||
|
||||
$this->setRestrictionsForTestRoles($page, []);
|
||||
|
@ -474,8 +457,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_restricted_chapter_pages_not_visible_on_book_page()
|
||||
{
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$this->actingAs($this->user)
|
||||
->get($chapter->book->getUrl())
|
||||
->assertSee($chapter->pages->first()->name);
|
||||
|
@ -491,8 +473,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_bookshelf_update_restriction_override()
|
||||
{
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
|
||||
$this->actingAs($this->viewer)
|
||||
->get($shelf->getUrl('/edit'))
|
||||
|
@ -510,8 +491,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_bookshelf_delete_restriction_override()
|
||||
{
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
|
||||
$this->actingAs($this->viewer)
|
||||
->get($shelf->getUrl('/delete'))
|
||||
|
@ -529,8 +509,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_book_create_restriction_override()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$bookUrl = $book->getUrl();
|
||||
$resp = $this->actingAs($this->viewer)->get($bookUrl);
|
||||
|
@ -571,8 +550,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_book_update_restriction_override()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$bookPage = $book->pages->first();
|
||||
$bookChapter = $book->chapters->first();
|
||||
|
||||
|
@ -598,8 +576,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_book_delete_restriction_override()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$bookPage = $book->pages->first();
|
||||
$bookChapter = $book->chapters->first();
|
||||
|
||||
|
@ -626,8 +603,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_page_visible_if_has_permissions_when_book_not_visible()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$bookChapter = $book->chapters->first();
|
||||
$bookPage = $bookChapter->pages->first();
|
||||
|
||||
|
@ -667,8 +643,7 @@ class EntityPermissionsTest extends TestCase
|
|||
|
||||
public function test_can_create_page_if_chapter_has_permissions_when_book_not_visible()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$this->setRestrictionsForTestRoles($book, []);
|
||||
$bookChapter = $book->chapters->first();
|
||||
$this->setRestrictionsForTestRoles($bookChapter, ['view']);
|
||||
|
|
|
@ -11,7 +11,7 @@ class ExportPermissionsTest extends TestCase
|
|||
{
|
||||
public function test_page_content_without_view_access_hidden_on_chapter_export()
|
||||
{
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$page = $chapter->pages()->firstOrFail();
|
||||
$pageContent = Str::random(48);
|
||||
$page->html = '<p>' . $pageContent . '</p>';
|
||||
|
@ -39,7 +39,7 @@ class ExportPermissionsTest extends TestCase
|
|||
|
||||
public function test_page_content_without_view_access_hidden_on_book_export()
|
||||
{
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$page = $book->pages()->firstOrFail();
|
||||
$pageContent = Str::random(48);
|
||||
$page->html = '<p>' . $pageContent . '</p>';
|
||||
|
|
|
@ -520,8 +520,7 @@ class RolesTest extends TestCase
|
|||
|
||||
public function test_chapter_create_all_permissions()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$this->checkAccessPermission('chapter-create-all', [
|
||||
$book->getUrl('/create-chapter'),
|
||||
], [
|
||||
|
@ -603,10 +602,8 @@ class RolesTest extends TestCase
|
|||
|
||||
public function test_page_create_own_permissions()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$chapter = $this->entities->chapter();
|
||||
|
||||
$entities = $this->entities->createChainBelongingToUser($this->user);
|
||||
$ownBook = $entities['book'];
|
||||
|
@ -652,10 +649,8 @@ class RolesTest extends TestCase
|
|||
|
||||
public function test_page_create_all_permissions()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$chapter = $this->entities->chapter();
|
||||
$createUrl = $book->getUrl('/create-page');
|
||||
|
||||
$createUrlChapter = $chapter->getUrl('/create-page');
|
||||
|
@ -806,8 +801,7 @@ class RolesTest extends TestCase
|
|||
public function test_image_delete_own_permission()
|
||||
{
|
||||
$this->giveUserPermissions($this->user, ['image-update-all']);
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$image = Image::factory()->create([
|
||||
'uploaded_to' => $page->id,
|
||||
'created_by' => $this->user->id,
|
||||
|
@ -826,8 +820,7 @@ class RolesTest extends TestCase
|
|||
{
|
||||
$this->giveUserPermissions($this->user, ['image-update-all']);
|
||||
$admin = $this->getAdmin();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$image = Image::factory()->create(['uploaded_to' => $page->id, 'created_by' => $admin->id, 'updated_by' => $admin->id]);
|
||||
|
||||
$this->actingAs($this->user)->json('delete', '/images/' . $image->id)->assertStatus(403);
|
||||
|
@ -845,8 +838,7 @@ class RolesTest extends TestCase
|
|||
public function test_role_permission_removal()
|
||||
{
|
||||
// To cover issue fixed in f99c8ff99aee9beb8c692f36d4b84dc6e651e50a.
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$viewerRole = Role::getRole('viewer');
|
||||
$viewer = $this->getViewer();
|
||||
$this->actingAs($viewer)->get($page->getUrl())->assertOk();
|
||||
|
|
|
@ -17,11 +17,11 @@ class PublicActionTest extends TestCase
|
|||
public function test_app_not_public()
|
||||
{
|
||||
$this->setSettings(['app-public' => 'false']);
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$this->get('/books')->assertRedirect('/login');
|
||||
$this->get($book->getUrl())->assertRedirect('/login');
|
||||
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->get($page->getUrl())->assertRedirect('/login');
|
||||
}
|
||||
|
||||
|
@ -93,8 +93,7 @@ class PublicActionTest extends TestCase
|
|||
$this->app->make(JointPermissionBuilder::class)->rebuildForRole($publicRole);
|
||||
user()->clearPermissionCache();
|
||||
|
||||
/** @var Chapter $chapter */
|
||||
$chapter = Chapter::query()->first();
|
||||
$chapter = $this->entities->chapter();
|
||||
$resp = $this->get($chapter->getUrl());
|
||||
$resp->assertSee('New Page');
|
||||
$this->withHtml($resp)->assertElementExists('a[href="' . $chapter->getUrl('/create-page') . '"]');
|
||||
|
@ -118,7 +117,7 @@ class PublicActionTest extends TestCase
|
|||
|
||||
public function test_content_not_listed_on_404_for_public_users()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$page->fill(['name' => 'my testing random unique page name'])->save();
|
||||
$this->asAdmin()->get($page->getUrl()); // Fake visit to show on recents
|
||||
$resp = $this->get('/cats/dogs/hippos');
|
||||
|
@ -162,8 +161,7 @@ class PublicActionTest extends TestCase
|
|||
public function test_public_view_then_login_redirects_to_previous_content()
|
||||
{
|
||||
$this->setSettings(['app-public' => 'true']);
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$resp = $this->get($book->getUrl());
|
||||
$resp->assertSee($book->name);
|
||||
|
||||
|
@ -175,8 +173,7 @@ class PublicActionTest extends TestCase
|
|||
public function test_access_hidden_content_then_login_redirects_to_intended_content()
|
||||
{
|
||||
$this->setSettings(['app-public' => 'true']);
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$this->entities->setPermissions($book);
|
||||
|
||||
$resp = $this->get($book->getUrl());
|
||||
|
|
|
@ -40,7 +40,7 @@ class CrossLinkParserTest extends TestCase
|
|||
|
||||
public function test_similar_page_and_book_reference_links_dont_conflict()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = $page->book;
|
||||
|
||||
$html = '
|
||||
|
|
|
@ -97,7 +97,7 @@ class ReferencesTest extends TestCase
|
|||
{
|
||||
/** @var Page $page */
|
||||
/** @var Page $pageB */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$pageB = Page::query()->where('id', '!=', $page->id)->first();
|
||||
$this->createReference($pageB, $page);
|
||||
|
||||
|
@ -109,8 +109,7 @@ class ReferencesTest extends TestCase
|
|||
|
||||
public function test_reference_page_shows_empty_state_with_no_references()
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->asEditor()
|
||||
->get($page->getUrl('/references'))
|
||||
|
@ -124,7 +123,7 @@ class ReferencesTest extends TestCase
|
|||
/** @var Book $book */
|
||||
$pageA = Page::query()->first();
|
||||
$pageB = Page::query()->where('id', '!=', $pageA->id)->first();
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
|
||||
foreach ([$pageA, $pageB] as $page) {
|
||||
$page->html = '<a href="' . $book->getUrl() . '">Link</a>';
|
||||
|
@ -200,8 +199,8 @@ class ReferencesTest extends TestCase
|
|||
{
|
||||
/** @var Page $page */
|
||||
/** @var Book $book */
|
||||
$page = Page::query()->first();
|
||||
$book = Book::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = $this->entities->book();
|
||||
|
||||
$bookUrl = $book->getUrl();
|
||||
$markdown = '
|
||||
|
|
|
@ -16,7 +16,7 @@ class RecycleBinTest extends TestCase
|
|||
{
|
||||
public function test_recycle_bin_routes_permissions()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$editor = $this->getEditor();
|
||||
$this->actingAs($editor)->delete($page->getUrl());
|
||||
$deletion = Deletion::query()->firstOrFail();
|
||||
|
@ -57,7 +57,7 @@ class RecycleBinTest extends TestCase
|
|||
|
||||
public function test_recycle_bin_view()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = Book::query()->whereHas('pages')->whereHas('chapters')->withCount(['pages', 'chapters'])->first();
|
||||
$editor = $this->getEditor();
|
||||
$this->actingAs($editor)->delete($page->getUrl());
|
||||
|
@ -74,7 +74,7 @@ class RecycleBinTest extends TestCase
|
|||
|
||||
public function test_recycle_bin_empty()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$book = Book::query()->where('id', '!=', $page->book_id)->whereHas('pages')->whereHas('chapters')->with(['pages', 'chapters'])->firstOrFail();
|
||||
$editor = $this->getEditor();
|
||||
$this->actingAs($editor)->delete($page->getUrl());
|
||||
|
|
|
@ -64,7 +64,7 @@ class ThemeTest extends TestCase
|
|||
};
|
||||
Theme::listen(ThemeEvents::COMMONMARK_ENVIRONMENT_CONFIGURE, $callback);
|
||||
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$content = new PageContent($page);
|
||||
$content->setNewMarkdown('# test');
|
||||
|
||||
|
@ -199,7 +199,7 @@ class ThemeTest extends TestCase
|
|||
|
||||
public function test_event_activity_logged()
|
||||
{
|
||||
$book = Book::query()->first();
|
||||
$book = $this->entities->book();
|
||||
$args = [];
|
||||
$callback = function (...$eventArgs) use (&$args) {
|
||||
$args = $eventArgs;
|
||||
|
@ -218,7 +218,7 @@ class ThemeTest extends TestCase
|
|||
{
|
||||
/** @var Page $page */
|
||||
/** @var Page $otherPage */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$otherPage = Page::query()->where('id', '!=', $page->id)->first();
|
||||
$otherPage->html = '<p id="bkmrk-cool">This is a really cool section</p>';
|
||||
$page->html = "<p>{{@{$otherPage->id}#bkmrk-cool}}</p>";
|
||||
|
@ -324,8 +324,7 @@ class ThemeTest extends TestCase
|
|||
{
|
||||
$bodyStartStr = 'garry-fought-against-the-panther';
|
||||
$bodyEndStr = 'garry-lost-his-fight-with-grace';
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$this->usingThemeFolder(function (string $folder) use ($bodyStartStr, $bodyEndStr, $page) {
|
||||
$viewDir = theme_path('layouts/parts');
|
||||
|
|
|
@ -73,7 +73,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_file_upload()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$admin = $this->getAdmin();
|
||||
$fileName = 'upload_test_file.txt';
|
||||
|
@ -101,7 +101,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_file_upload_does_not_use_filename()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$fileName = 'upload_test_file.txt';
|
||||
|
||||
$upload = $this->asAdmin()->uploadFile($fileName, $page->id);
|
||||
|
@ -115,7 +115,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_file_display_and_access()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$fileName = 'upload_test_file.txt';
|
||||
|
||||
|
@ -136,7 +136,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_attaching_link_to_page()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->asAdmin();
|
||||
|
||||
|
@ -173,7 +173,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_attachment_updating()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
|
||||
$attachment = $this->createAttachment($page);
|
||||
|
@ -197,7 +197,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_file_deletion()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$fileName = 'deletion_test.txt';
|
||||
$this->uploadFile($fileName, $page->id);
|
||||
|
@ -219,7 +219,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_attachment_deletion_on_page_deletion()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$fileName = 'deletion_test.txt';
|
||||
$this->uploadFile($fileName, $page->id);
|
||||
|
@ -247,7 +247,7 @@ class AttachmentTest extends TestCase
|
|||
{
|
||||
$admin = $this->getAdmin();
|
||||
$viewer = $this->getViewer();
|
||||
$page = Page::query()->first(); /** @var Page $page */
|
||||
$page = $this->entities->page(); /** @var Page $page */
|
||||
$this->actingAs($admin);
|
||||
$fileName = 'permission_test.txt';
|
||||
$this->uploadFile($fileName, $page->id);
|
||||
|
@ -269,7 +269,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_data_and_js_links_cannot_be_attached_to_a_page()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
|
||||
$badLinks = [
|
||||
|
@ -310,7 +310,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_file_access_with_open_query_param_provides_inline_response_with_correct_content_type()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$fileName = 'upload_test_file.txt';
|
||||
|
||||
|
@ -329,7 +329,7 @@ class AttachmentTest extends TestCase
|
|||
|
||||
public function test_html_file_access_with_open_forces_plain_content_type()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
|
||||
$attachment = $this->createUploadAttachment($page, 'test_file.html', '<html></html><p>testing</p>', 'text/html');
|
||||
|
@ -346,7 +346,7 @@ class AttachmentTest extends TestCase
|
|||
{
|
||||
config()->set('filesystems.attachments', 'local_secure_restricted');
|
||||
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$fileName = 'upload_test_file.txt';
|
||||
|
||||
$upload = $this->asAdmin()->uploadFile($fileName, $page->id);
|
||||
|
|
|
@ -15,7 +15,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_image_upload()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
|
@ -39,7 +39,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_image_display_thumbnail_generation_does_not_increase_image_size()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
|
@ -63,7 +63,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_image_display_thumbnail_generation_for_apng_images_uses_original_file()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
|
@ -125,7 +125,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_image_usage()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$editor = $this->getEditor();
|
||||
$this->actingAs($editor);
|
||||
|
||||
|
@ -145,7 +145,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_php_files_cannot_be_uploaded()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
|
@ -167,7 +167,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_php_like_files_cannot_be_uploaded()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
|
@ -184,7 +184,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_files_with_double_extensions_will_get_sanitized()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
|
@ -219,7 +219,7 @@ class ImageTest extends TestCase
|
|||
];
|
||||
foreach ($badNames as $name) {
|
||||
$galleryFile = $this->getTestImage($name);
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$badPath = $this->getTestImagePath('gallery', $name);
|
||||
$this->deleteImage($badPath);
|
||||
|
||||
|
@ -244,7 +244,7 @@ class ImageTest extends TestCase
|
|||
config()->set('filesystems.images', 'local_secure');
|
||||
$this->asEditor();
|
||||
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$expectedPath = storage_path('uploads/images/gallery/' . date('Y-m') . '/my-secure-test-upload.png');
|
||||
|
||||
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
|
||||
|
@ -292,7 +292,7 @@ class ImageTest extends TestCase
|
|||
config()->set('filesystems.images', 'local_secure');
|
||||
$this->asEditor();
|
||||
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$expectedPath = storage_path('uploads/images/gallery/' . date('Y-m') . '/my-secure-test-upload.png');
|
||||
|
||||
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
|
||||
|
@ -332,8 +332,7 @@ class ImageTest extends TestCase
|
|||
config()->set('filesystems.images', 'local_secure_restricted');
|
||||
$this->asEditor();
|
||||
$galleryFile = $this->getTestImage('my-secure-restricted-test-upload.png');
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
|
||||
$upload->assertStatus(200);
|
||||
|
@ -357,8 +356,7 @@ class ImageTest extends TestCase
|
|||
config()->set('filesystems.images', 'local_secure_restricted');
|
||||
$this->asEditor();
|
||||
$galleryFile = $this->getTestImage('my-secure-restricted-thumb-test-test.png');
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
|
||||
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
|
||||
$upload->assertStatus(200);
|
||||
|
@ -412,7 +410,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_image_delete()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$imageName = 'first-image.png';
|
||||
$relPath = $this->getTestImagePath('gallery', $imageName);
|
||||
|
@ -434,7 +432,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_image_delete_does_not_delete_similar_images()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$imageName = 'first-image.png';
|
||||
|
||||
|
@ -459,7 +457,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_image_manager_delete_button_only_shows_with_permission()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->asAdmin();
|
||||
$imageName = 'first-image.png';
|
||||
$relPath = $this->getTestImagePath('gallery', $imageName);
|
||||
|
@ -539,7 +537,7 @@ class ImageTest extends TestCase
|
|||
|
||||
public function test_deleted_unused_images()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ trait UsesImages
|
|||
protected function uploadGalleryImage(Page $page = null, ?string $testDataFileName = null)
|
||||
{
|
||||
if ($page === null) {
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
}
|
||||
|
||||
$imageName = $testDataFileName ?? 'first-image.png';
|
||||
|
|
|
@ -150,7 +150,7 @@ class UserManagementTest extends TestCase
|
|||
|
||||
public function test_delete_with_new_owner_id_changes_ownership()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$owner = $page->ownedBy;
|
||||
$newOwner = User::query()->where('id', '!=', $owner->id)->first();
|
||||
|
||||
|
|
|
@ -132,8 +132,7 @@ class UserPreferencesTest extends TestCase
|
|||
public function test_shelf_view_type_change()
|
||||
{
|
||||
$editor = $this->getEditor();
|
||||
/** @var Bookshelf $shelf */
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$shelf = $this->entities->shelf();
|
||||
setting()->putUser($editor, 'bookshelf_view_type', 'list');
|
||||
|
||||
$resp = $this->actingAs($editor)->get($shelf->getUrl())->assertSee('Grid View');
|
||||
|
@ -155,7 +154,7 @@ class UserPreferencesTest extends TestCase
|
|||
public function test_update_code_language_favourite()
|
||||
{
|
||||
$editor = $this->getEditor();
|
||||
$page = Page::query()->first();
|
||||
$page = $this->entities->page();
|
||||
$this->actingAs($editor);
|
||||
|
||||
$this->patch('/settings/users/update-code-language-favourite', ['language' => 'php', 'active' => true]);
|
||||
|
|
Loading…
Reference in New Issue
Block a user