X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/253132afdf54b9200bcf33c95c0414798a3554d5..refs/pull/2393/head:/tests/Entity/ExportTest.php diff --git a/tests/Entity/ExportTest.php b/tests/Entity/ExportTest.php index 7fa485f20..e022f92f5 100644 --- a/tests/Entity/ExportTest.php +++ b/tests/Entity/ExportTest.php @@ -1,8 +1,11 @@ -get($page->getUrl('/export/plaintext')); $resp->assertStatus(200); $resp->assertSee($page->name); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $page->slug . '.txt'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $page->slug . '.txt"'); } public function test_page_pdf_export() @@ -25,7 +28,7 @@ class ExportTest extends TestCase $resp = $this->get($page->getUrl('/export/pdf')); $resp->assertStatus(200); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $page->slug . '.pdf'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $page->slug . '.pdf"'); } public function test_page_html_export() @@ -36,7 +39,7 @@ class ExportTest extends TestCase $resp = $this->get($page->getUrl('/export/html')); $resp->assertStatus(200); $resp->assertSee($page->name); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $page->slug . '.html'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $page->slug . '.html"'); } public function test_book_text_export() @@ -49,7 +52,7 @@ class ExportTest extends TestCase $resp->assertStatus(200); $resp->assertSee($book->name); $resp->assertSee($page->name); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $book->slug . '.txt'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $book->slug . '.txt"'); } public function test_book_pdf_export() @@ -60,7 +63,7 @@ class ExportTest extends TestCase $resp = $this->get($book->getUrl('/export/pdf')); $resp->assertStatus(200); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $book->slug . '.pdf'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $book->slug . '.pdf"'); } public function test_book_html_export() @@ -73,7 +76,21 @@ class ExportTest extends TestCase $resp->assertStatus(200); $resp->assertSee($book->name); $resp->assertSee($page->name); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $book->slug . '.html'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $book->slug . '.html"'); + } + + public function test_book_html_export_shows_chapter_descriptions() + { + $chapterDesc = 'My custom test chapter description ' . Str::random(12); + $chapter = Chapter::query()->first(); + $chapter->description = $chapterDesc; + $chapter->save(); + + $book = $chapter->book; + $this->asEditor(); + + $resp = $this->get($book->getUrl('/export/html')); + $resp->assertSee($chapterDesc); } public function test_chapter_text_export() @@ -86,7 +103,7 @@ class ExportTest extends TestCase $resp->assertStatus(200); $resp->assertSee($chapter->name); $resp->assertSee($page->name); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.txt'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.txt"'); } public function test_chapter_pdf_export() @@ -96,7 +113,7 @@ class ExportTest extends TestCase $resp = $this->get($chapter->getUrl('/export/pdf')); $resp->assertStatus(200); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.pdf'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.pdf"'); } public function test_chapter_html_export() @@ -109,7 +126,42 @@ class ExportTest extends TestCase $resp->assertStatus(200); $resp->assertSee($chapter->name); $resp->assertSee($page->name); - $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.html'); + $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.html"'); + } + + public function test_page_html_export_contains_custom_head_if_set() + { + $page = Page::first(); + + $customHeadContent = ""; + $this->setSettings(['app-custom-head' => $customHeadContent]); + + $resp = $this->asEditor()->get($page->getUrl('/export/html')); + $resp->assertSee($customHeadContent); + } + + public function test_page_html_export_use_absolute_dates() + { + $page = Page::first(); + + $resp = $this->asEditor()->get($page->getUrl('/export/html')); + $resp->assertSee($page->created_at->toDayDateTimeString()); + $resp->assertDontSee($page->created_at->diffForHumans()); + $resp->assertSee($page->updated_at->toDayDateTimeString()); + $resp->assertDontSee($page->updated_at->diffForHumans()); + } + + public function test_page_export_sets_right_data_type_for_svg_embeds() + { + $page = Page::first(); + $page->html = ''; + $page->save(); + + $this->asEditor(); + $this->mockHttpFetch(''); + $resp = $this->get($page->getUrl('/export/html')); + $resp->assertStatus(200); + $resp->assertSee('