X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/eded8abdedf71ce6fca552a310e04d0cbe9c3827..refs/pull/2227/head:/tests/Entity/ExportTest.php
diff --git a/tests/Entity/ExportTest.php b/tests/Entity/ExportTest.php
index b1dab094f..5a94adac9 100644
--- a/tests/Entity/ExportTest.php
+++ b/tests/Entity/ExportTest.php
@@ -1,7 +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()
@@ -24,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()
@@ -35,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()
@@ -48,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()
@@ -59,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()
@@ -72,7 +76,92 @@ 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()
+ {
+ $chapter = Chapter::first();
+ $page = $chapter->pages[0];
+ $this->asEditor();
+
+ $resp = $this->get($chapter->getUrl('/export/plaintext'));
+ $resp->assertStatus(200);
+ $resp->assertSee($chapter->name);
+ $resp->assertSee($page->name);
+ $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.txt"');
+ }
+
+ public function test_chapter_pdf_export()
+ {
+ $chapter = Chapter::first();
+ $this->asEditor();
+
+ $resp = $this->get($chapter->getUrl('/export/pdf'));
+ $resp->assertStatus(200);
+ $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $chapter->slug . '.pdf"');
+ }
+
+ public function test_chapter_html_export()
+ {
+ $chapter = Chapter::first();
+ $page = $chapter->pages[0];
+ $this->asEditor();
+
+ $resp = $this->get($chapter->getUrl('/export/html'));
+ $resp->assertStatus(200);
+ $resp->assertSee($chapter->name);
+ $resp->assertSee($page->name);
+ $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(';
}
}
\ No newline at end of file
)